Git 사용시 장점중 하나가 branch를 사용한 편한 버전 관리와 이슈 해결이라고 생각한다.
branch는 git의 HEAD가 위치한 부분에서 새로운 분기점을 만드는 기능인데
branch를 만들면 언제든지 쉽게 파일들을 해당 버전으로 변경 할 수 있다.
ex)운영용branch, 개발용branch, 이슈해결용branch
일단 branch의 생성 방법은 branch를 만들 커밋 지점으로 이동 후
1.> git branch branch_name 2.> git checkout -b branch_name
이렇게 두가지방법이 있다.
1번의 경우 현 커밋 시점에서 branch_name을 가진 branch를 생성만 하는것이고
2번의 경우는 branch를 생성과 함께 해당 branch로 이동하는 것이다.
checkout 의 경우에는 git의 HEAD위치를 변경 시키는 명령어 인데
기본적으로 branch_name을 입력하면 해당 branch로 이동,
또는 commit hash를 이용해 자신이 원하는 commit 지점으로 이동할수 있다.
위의 branch 생성 예제의 1번으로 branch를 생성 후 해당 branch로 이동하는 방법은
> git checkout branch_name
으로 이동할 수 있다.
> git log 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
> git checkout dcee2 Note: checking out 'dcee'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b <new-branch-name> HEAD is now at dcee2ae... update
park@park-PC MINGW64 ~/git/gittest ((dcee2ae...))
이렇게 HEAD가 이동된 상태에서 branch를 생성하게 되면 현재 위치의 commit 시점에서 새로운 branch가 생성된다.
이슈가 발생했을때 이런식으로 원하는 커밋시점으로 돌아가 branch를 만들면 해당 부분만 수정이 가능하고 빠르게 merge할 수 있다.
branch를 생성후 작업을 하다가 작업이 완료되어 master branch로 합쳐야 할 경우는 우선 master branch로 이동 후
> git checkout master > git merge branch_name Updating 4578f2c..b782127 Fast-forward test.txt | 1 + 1 file changed, 1 insertion(+)
처럼 하면 된다.
현재 branch에서 branch_name을 가져온다고 생각하면 될것 같다.
자세한 사항은
요기 참조