ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git과 Github 정리
    우아한테크캠프 2018. 7. 10. 21:45

    로컬 저장소 사용을 위한 Git



    git branch와 git checkout

    git branch와 git checkout을 한 번에 실행하는 방법 : git checkout -b '브랜치이름'


    git merge

    브랜치 병합 : git merge (해당 브랜치를 가져와서 병합)

    ex) 기준이 되는 브랜치(master)에서 git merge를 수행한다. 이렇게 해야만 master 브랜치가 변경된다.



    실제 프로젝트에서 발생할 수 있는 상황들

    1. 불필요한 파일을 무시하는 법

    touch .gitignore

    ※ .gitignore파일을 운영체제나 IDE에 맞춰 자동으로 생성해주는 웹사이트 (https://www.gitignore.io/)


    2. merge할 때, 충돌 해결하는 법 (수동으로 해결)

    <<<<<<< HEAD (현재 브랜치를 헤드(HEAD)브랜치라고 한다.)

    System.out.println("Master");

    ==============

    System.out.println("Step1");

    >>>>>>> step1


    3. 커밋한 내역을 보는 법

    git log




    원격 저장소 사용을 위한 Git



    용어 정리

    fork : 다른 사람의 저장소를 복사

    pull request : 포크한 저장소를 수정한 다음, 다시 원본 저장소에 merge해 달라는 요청



    git clone : 원격 저장소 내용을 로컬 저장소로 복사

    git remote : 로컬 저장소를 원격 저장소와 연결

    ex. git  remote  add  저장소별칭  https://github.com/사용자이름/원격저장소이름.git







    git 고급



    git tag

    git revert

    git reset

    git rebase




    우아한 Git 지식 확인 테스트 제출: ( 7 ) 조

    * 토론후 답안을 작성해서 제출하세요.


    0. git과 github에 관한 유용한 문제를 한 문제 제출하고 답을 기술해 보세요.

    HEAD의 이동이력을 보고 싶을 때 명령어는?

    $ git reflog


    1. 다음 개념을 설명하시오

    (1) 워킹 트리(워킹 디렉토리) : 현재 작업하고 있는 위치의 디렉토리

    (2) 스테이지 : 커밋에 포함하고 싶은 변경사항을 관리하는 공간

        스테이지를 두는 이유? 워킹 트리 안에 있는 커밋이 필요 없는 파일들을 커밋에 포함하지 않을 수 있음

    (3) 로컬 저장소 : 내 컴퓨터(로컬) 안에 존재하는 저장소. 즉 오프라인 환경에서도 사용이 가능하다.

    (4) 원격 저장소 : 온라인 상에 존재하는 저장소. 온라인 환경에서만 사용이 가능하다.


    2. 커밋 객체의 구성요소에 대해 설명하시오.

    author, committer, commit message, 부모에 대한 참조, 파일의 트리 구조,


    3. 워킹트리에서 “git branch woowa” 명령을 수행하였다.

    (1) 이 때 내 PC의 용량은 얼마 증가하는가? 이유는?

    가리키는 커밋의 주소(40글자의 SHA-1 체크섬) + 줄바꿈(1byte)

    (2) 이 명령이 수행한 행동을 설명하시오.

    woowa브랜치를 생성하고 HEAD가 가르키는 커밋을 가리키도록 하는 것


    4. 명령어를 작성해 봅시다.

    (1) 스테이지에 있는 Hello.java 의 변경사항을 스테이지에서만 내리는 명령은?

    git reset (--mixed) Hello.java

    (2) 워킹트리의 Hello.java의 변경사항을 완전히 취소하는 명령은?

    git reset --hard (브랜치명)

    (3) C1 <— C2 <— C3 세 개의 커밋이 있다.

    C3 커밋은 남겨두고 C2의 커밋의 내용으로 되돌리고 싶다. 한 명령으로 이를 해결하려면?

    git revert C2


    6. 형우는 아래 깃 명령을 수행하였더니 결과가 다음과 같았다.

    $ git rebase master

    C1 <— C2 (master) <— C3’ <—- C4’ (*b1)

    그런데 내용을 살펴봤더니 머지를 잘못해서 명령을 수행하기 이전으로 돌아가고 싶다.

    이전상태를 그림으로 그리고 원복하는 절차를 기술하시오.






    git reset --hard C4의주소

    '우아한테크캠프' 카테고리의 다른 글

    우아한테크캠프 Day08  (0) 2018.07.12
    우아한테크캠프 Day07  (0) 2018.07.11
    우아한테크캠프 Day06  (0) 2018.07.09
    우아한테크캠프 Day05  (0) 2018.07.09
    우아한테크캠프 Day04  (0) 2018.07.05

    댓글

Designed by Tistory.