CH11
Merge and Conflict
Git Merge
• 현재 위치한 버전에 다른 버전을 병합하는 작업
• Branch 를 병합하거나
• Push Pull 할때도 일어난
git merge <branch_name>
dev -> main
get merge dev
remote push 배포
remote fetch
merge 결과
conflict
• 두 Branch 에서 같은 버전의 같은 부분을 수정하는 경우, Auto Merge 가 불가능한 상황에서 발생
• 개발자가 직접 해결해야 한다
<<<<<<<< HEAD
print("Hello, cat!”)
========
print("Hello, dog!")
HEAD
• Conflict Message 와 Git Status 로 파악할 수 있다
• Merge 과정에서 충돌 발생시 가운데 =======를 기준으로 충돌 부분을 보여주는데 이를 기준으로 코드 수정
vi 파일
dd 줄 제거
print("Hello, dog!")
HEAD
Push 동작 중 Conflict 상황이 발생하면,
• Push 가 실패함
• Pull 을 해서 Conflict 에러를 확인 할 수있음
Pull 동작 중 Conflict 상황잉 발생하면,
• Fetch 만 되고 Merge 가 실패한 Conflict 상태가 됨
• Conflict 를 해결하면 Merge Commit 이 완료됨
그래서, 바로 Push 하지말고 항상 Pull 먼저 하는 습관이 좋다!!
git tag
특정 버전에 Tag 를 달아놓을 필요가 있을 때 사용
git tag <tag_name>
git tag v0.3
목록 확인
git tag
Tag 생성하기 - 특정 버전
git tag <tag_name> <commit_id>
checkout 통해 git tag 할 수 있다.
Tag 배포하기 - Remote
git push origin <tag_name>

Tag 상세보기
git show <tag_name>
Tag 삭제하기 - Local
git tag —delete <tag_name>
Tag 삭제하기 - Remote
git push origin —delete <tag_name>
README
• 프로젝트에 대한 설명, 사용방법, 라이센스, 설치법과 같은 부분에 대해 기술하는 파일