git merge 충돌, 덮어쓰기

2023. 2. 28. 20:37GIT

충돌을 가정하기 위해 새로 배운 명렁어

- git echo 'HI' > 1

  : 1이라는 파일에 Hi

 

- git echo 'bye' > 1

  : >는 Hi를 bye로 덮어쓴다.

 

- git echo 'bye >> 1

 : >> 는 HiBye로 추가가 된다.

 

- git cat 1

  : 1이라는 파일 확인하기

  : Hi를 볼 수 있다.


만약, branch main 에서 파일 1에 'hi'라고 기록한 후 커밋을 했다고 가정을 해보자

전으로 돌아가서 branch bugFix가 1에 'bye'라고 기록한다.

 

그리고 main과 bugFix를 병합하려고 하면 충돌이 발생한다.

같은 파일을 서로 다르게 가지고 있기 때문이다.

 

이럴 경우는

그냥 다시 git echo로 파일 1을 수정해서 커밋해주면 자동 병합이 된다.

 

git init
touch 0 && git add . && git commit -m "C0"

#branch를 생성하면서 바로 bugFix branch로 checkout
git checkout -b bugFix

# &&를 통해 여러 명령어를 한 줄에 입력 가능!
echo '안녕' > 1 && git add . && git commit -m "C1"

# merge 하고 싶은 기준이 되는 branch로 이동
git checkout main
echo '잘가' > 1 && git add . && git commit -m "C2"

# main branch에서 bugFix branch 합치기
# 같은 곳이 수정되었기 때문에 아래 이미지와 같은 오류 발생
git merge bugFix

# conflict 부분 수정 해주기
echo '안녕잘가' > 1

# 이후 다시 commit 해주기
git add .
git commit -m "C3, 병합"
git log --graph --all --oneline