더북(TheBook)

가지치기 상태를 확인합니다. 현재 작업 중인 가지는 master입니다.

shinjaehun@losttemple:~/gittest$ git branch -v
* master     7fa9dcc Added content02.txt
  iss01       d0c5408 Added issue01

그림으로 나타내면 다음과 같습니다. master가 새로운 커밋 7fa9dcc를 가리키고 있으며 iss01 가지는 master와 별도로 진행 중인 상태입니다(그림 11-5).

그림 11-5 master에서 새로운 커밋 추가

iss01, 즉 ‘content01.txt’ 파일을 수정하는 작업을 마무리하고자 합니다. iss01 가지로 이동(git checkout iss01)해서 ‘content01.txt’ 파일을 추가로 수정하고 커밋합니다.

shinjaehun@losttemple:~/gittest$ git checkout iss01 
Switched to branch 'iss01'
shinjaehun@losttemple:~/gittest$ echo 'I cant stand it anymore.' >> content01.txt
shinjaehun@losttemple:~/gittest$ git add content01.txt
shinjaehun@losttemple:~/gittest$ git commit -m 'Finished issue01'
[iss01 4a21606] Finished issue01
1 file changed, 1 insertion(+)

그림을 통해 살펴보면 iss01 가지가 ‘content01.txt’를 수정한 커밋 4a21606을 가리키고 있습니다(그림 11-6).

그림 11-6 iss01 가지에 커밋 추가

새로 변경한 내용을 기본 작업 흐름인 master에 합쳐 반영합니다. iss01의 변경 내용을 반영하기 위해 master로 이동해서 git merge 명령으로 iss01 가지를 병합합니다.

shinjaehun@losttemple:~/gittest$ git checkout master
Switched to branch 'master'
shinjaehun@losttemple:~/gittest$ git merge iss01
Merge made by the 'recursive' strategy.
 content01.txt | 2 ++
 1 file changed, 2 insertions(+)

iss01은 master에 병합(merge)되었습니다. git은 양쪽 가지에서 변경된 부분을 찾아 하나로 합치게 됩니다(그림 11-7).

그림 11-7 iss01을 master에 병합

수정한 내용을 반영해서 불필요해진 iss01은 -d 옵션으로 삭제할 수 있습니다. git branch -v로 확인하면 깔끔하게 정리된 상태를 확인할 수 있습니다.

shinjaehun@losttemple:~/gittest$ git branch -d iss01
Deleted branch iss01 (was 4a21606).
shinjaehun@losttemple:~/gittest$ git branch -v
* master 185a3b3 Merge branch 'iss01'

git log로 지금까지 작업 내용을 살펴보면 각 커밋이 순서대로 쌓여 있습니다. master와 iss01에서 각각 수정했던 내용이 모두 반영되어 하나로 합쳐진 상태입니다.

shinjaehun@losttemple:~/gittest$ git log
commit 185a3b33d88f720a2028d9c2202cf795a9a6bc71
Merge: 7fa9dcc 4a21606
Author: Shin Jaehun 
Date: Sat Jul 5 13:12:18 2014 +0900

    Merge branch 'iss01'

commit 4a216061f29f8eea45b54804b1c83ce32b9bde4a
Author: Shin Jaehun 
Date: Sat Jul 5 13:12:02 2014 +0900

    Finished issue01

commit 7fa9dcccd06bc023b9f88ef8371bc877cd679512
Author: Shin Jaehun 
Date: Sat Jul 5 13:04:36 2014 +0900

    Added content02.txt

commit d0c54087f893588dfcfc5a5ea8eb71e59f679497
Author: Shin Jaehun 
Date: Sat Jul 5 13:02:42 2014 +0900

    Added issue01

commit 963be7b057008d4e62000e03b99bc45f477f0f08
Author: Shin Jaehun 
Date: Sat Jul 5 13:00:19 2014 +0900

    Edited content01.txt

commit 7d866c71f79b96a1c5a9dd9987f794c73d9e41cd
Author: Shin Jaehun 
Date: Sat Jul 5 12:57:37 2014 +0900

    Added content01.txt
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.