반응형
1. git merge
git merge의 경우 지난 포스팅에서 봤듯이 작업된 branch의 내용을 다른 branch로 통합 시키는 작업이다.
이때 아래 처럼 그냥 git merge branch_name 을 할 경우, 특별히 충돌이 나지 않는다면 commit log를 따로 작성하지 않고,
통합당하는 branch의 마지막 commit log를 가지고 온다.
2. git log
(branch_name)> git commit -m "commit log" (branch_name)> git checkout master (master)> git merge branch_name Updating 4578f2c..b782127 Fast-forward test.txt | 1 + 1 file changed, 1 insertion(+) (master)> git log commit f03082b487479dca7366130c978b9658e27666f2 Author: ParkMinkyu <niee@naver.com> Date: Thu Dec 7 13:41:18 2017 +0900 commit log이렇게 하지 않고 merge시에 merge로그를 확실하게 남기고 싶은경우 --no-ff 옵션을 사용하면 log를 입력 할 수 있다.
(master)> git merge --no-ff branch_name "에디터가 뜨면 log 기록 기본적으로 Merge branch 'branch_name' 으로 설정되어 있음." (master)> git log commit b562ec6eccd33603807ac322bec95aaa727a5828 (HEAD -> master) Merge: f03082b 1855049 Author: ParkMinkyu <niee@naver.com> Date: Thu Dec 7 13:42:45 2017 +0900 Merge branch 'branch_name'
git log명령어는 기본적으로 지금 HEAD가 위치한 branch의 commit log만을 텍스트 형식으로 보여준다.
때문에 지금까지 기록된 모든 log 를 확인하고 싶다면 -g 또는 --walk-reflogs 옵션을 사용하면 된다.
이경우는 commit log뿐 아니라 commit,checkout, merge등 사용했던 모든 이력이 출력된다.
3. git reflog
> git log -g > git log --walk-reflogslog를 시각적으로 확인하고 싶으면 --graph 옵션을 사용하면 된다.
> git log --graph * commit b78212753c6fe9af32d003e89184e2bdd508dfd8 (HEAD -> add) | Author: ParkMinkyu <niee@naver.com> | Date: Mon Dec 4 16:34:25 2017 +0900 | | test | * commit 4578f2c3d02066696d498f03fc12e2cddc97dfc9 |\ Merge: dcee2ae d7aca3c | | Author: ParkMinkyu <niee@naver.com> | | Date: Mon Dec 4 09:50:29 2017 +0900 | | | | merging | | | * commit d7aca3c0165f44b1cfad7272abd8d27d54fe79c5 | | Author: ParkMinkyu <niee@naver.com> | | Date: Mon Dec 4 09:48:56 2017 +0900 | | | | 123 -> 567 | | | | * | commit dcee2aeb4eaffafbcfe6b3000d0ed412f9c11dd5 |/ Author: ParkMinkyu <niee@naver.com> | Date: Mon Dec 4 09:47:16 2017 +0900 | | update | * commit d231e706475513c4444f53fa2e506e162a29666a | Author: ParkMinkyu <niee@naver.com> | Date: Mon Dec 4 09:43:43 2017 +0900 | | test | * commit d21fdf138265b893bde8f620055abb903b6de3e6 | Author: ParkMinkyu <niee@naver.com> | Date: Mon Dec 4 09:42:44 2017 +0900 | | 1 | * commit 617032242253d0beed97e8cd06e9ca645c939563 Author: ParkMinkyu <niee@naver.com> Date: Mon Dec 4 09:41:17 2017 +0900 init
마지막으로 reflog의 경우는 git log -g와 유사하지만 다른점은 메세지가 좀더 간략하게 표시되어 한눈에 알아보기 쉽워 해당 위치로의 checkout이 편해진다.
하지만 Git GC가 이전 상태를 제거하면 표시되지 않는다.
> git reflog b782127 (HEAD -> add) HEAD@{0}: checkout: moving from master to add b562ec6 (master) HEAD@{1}: merge lineupdate: Merge made by the 'recursive' strategy. f03082b HEAD@{2}: checkout: moving from lineupdate to master 1855049 (lineupdate) HEAD@{3}: commit: update more f03082b HEAD@{4}: checkout: moving from master to lineupdate f03082b HEAD@{5}: merge lineupdate: Fast-forward b782127 (HEAD -> add) HEAD@{6}: checkout: moving from lineupdate to master f03082b HEAD@{7}: commit: 12-07 update b782127 (HEAD -> add) HEAD@{8}: merge add: Fast-forward d7aca3c HEAD@{9}: checkout: moving from add to lineupdate b782127 (HEAD -> add) HEAD@{10}: checkout: moving from master to add b782127 (HEAD -> add) HEAD@{11}: merge add: Fast-forward 4578f2c HEAD@{12}: checkout: moving from add to master
반응형