- Merge
- Conflict
main 브랜치와 dev 브랜치가 있는 상황이라고 가정하자
main 브랜치에서 txt파일에 my name is eunbi라고 쓰고 저장 -> 커밋
dev라는 브랜치를 만들고 txt파일을 my name is eunbi are you?로 수정 -> 커밋
덮어쓰지 않고 한 줄을 더 추가해주는 명령 - >>
cat >> test.txt
are you?
git config --global -e
Git merge 설정 추가
[merge]
tool = vscode
[mergetool "vscode"]
cmd = "code --wait $MERGED"
Merge는 현재 위치한 branch에 다른 branch를 병합하는 명령이다.
main 브랜치에 dev 브랜치를 병합하기:
main 브랜치로 이동 후,
git merge dev
dev 브랜치에서 추가해줬던 are you?가 합쳐져서
main 브랜치에서 확인할 수 있다.
로그 확인~~
(HEAD -> main, dev)
-> main 브랜치에 modify 1이 있는 것을 확인할 수 있다.
dev2 브랜치를 만들고
main 에서 파일 수정하고 커밋하고
dev2 브랜치에서도 같은 파일을 수정하고 커밋한 다음
merge를 하면,
양쪽이 같은 파일의 같은 부분을 수정했기 때문에, 어떻게 합쳐야 할지 모르니까
충돌이 발생한다.
<해결법>
직접 서로 다른 부분을 수정해줘서 같게 만들어주어야 충돌을 해결하고 merge할 수 있다.
git mergetool
difftool이랑 같은 기능이다.
main브랜치에는 zero로 수정되어 있고
dev2에는 base로 수정되어 있는데,
둘 중 더 적절한 코드를 선택하여
그 부분만 남기고 지워주면 된다.(Diff 표시 부분도 삭제)
base부분만 남기고 지워준 후 저장하였다.
git add test.txt
git commit
Commit message 가 뜬다
저장 후 닫아주면 완료