#git merge
이제 새로운 브랜치에서 작업하던 내용이 완성되었다면 master와 합쳐서
실제로 사용할 수 있게 해야한다. 이때 사용하는 명령어가
git merge [합칠브랜치명] 이다. 새로운 브랜치이름이 hj라고 가정하면
항상 merge전에 git branch 로 현재 HEAD가 master인지 확인 한 후
git merge hj 를 하게되면 합쳐지게 된다.
confilct
하지만 모든 merge가 순조롭게 되는 것은 아니다.
가끔 branch 간에 충돌이 나는 경우가 있는데 그 경우를 알아보자.
git reset HEAD~1 로 master branch를 뒤로 돌려보자.
이제는 branch 두개가 각자 다른갈래로 갈라진다.
이제 git merge hj를 하면 충돌이 일어난다는 것을 볼 수 있다.
또한 충돌나는 파일 또한 자동으로 변경된다.
<<<<<<< HEAD
원 내용
============
브랜치 내용
>>>>>>>>>>hj
이 부분을 직접 정상적으로 바꿔주고 add 후 commit 해준다.
이제 갈라졌던 두 브랜치가 하나의 commit으로 다시 합쳐진다.
git tag
commit에 태그를 붙이는 기능을 한다. 태그란 꼬리표로 commit에게 별명을
지어주는 것이다. 특정 기능을 가진 commit에 git tag -a v1.0.0 이라고
적어준다.
그러면 git cherry-pick v1.0.0으로 선택할 수 있는 것이다.
태그 삭제는 git tag -d 태그명 이다.
git fetch
git pull은 서버의 변경점을 클라이언트로 내려받는 명령어 이다.
그런데 사실 git pull은 두개의 단계로 구성되어있다.
git fetch와 git merge이다.
git pull을 하는 순간 내부적으로는 저 두개의 명령어가 호출되는데
git fetch는 서버의 변경점을 별개의 브랜치로 만드는 것이고,
git merge 는 그 브랜치를 합치는 것이다.
git fetch 명령어만 실행하면 merge하지 않고 FETCH_HEAD 라는
별개의 브랜치에서 변경점을 확인할 수 있다.
git stash, gi unstash
stash는 알아두면 굉장히 편한 명령어 이다.
현재 변경점을 저장할 수 있다.