728x90
반응형

GitHub 충돌있는 경우 로컬에서 충돌 해결하기

파일을 pull request 했는데 충돌이 있는 경우 github에서 파일을 바로 변경해서 해결할 수도 있지만 안정성을 위해 추천하지 않음

local에서 충돌을 해결하고 다시 push 하기

 


나의 경우 충돌외에도 복잡한 문제가 있었음🥲

아래의 문제가 있는 경우 번호 찾아가면 해결방법이 있음

👆 작업을 오래해서 다른 팀원들의 변경 파일이 많았음(4~8번)

✌️ 충돌 간단하게 해결하려고 github(remote) 파일 직접 수정(10번)

👌 local에서 수정한 파일 존재(9~11번)


 

충돌 이후 과정 정리

보통 브랜치를 새로 만들어서 작업하고 합치려고 할때 이러한 경우가 발생할 것임(팀원들의 코드 수정 등으로 인해)

내 브랜치에 충돌난 브랜치 pull 받은 뒤 충돌 해결하고 다시 push 하면 끝! 이지만 내가 파일을 수정했다거나 pull 받아보니 변경된 파일이 많아서 push가 안되는 경우들이 발생할 수 있음

충돌을 로컬에서 해결하고 싶은 간단한 경우라면 1~3번 + 12번만 따라하면 됨

 

1. 충돌 해결을 위해 충돌난 브랜치 pull

git pull origin [dev]

 

2. 충돌 해결

local 파일에 충돌이 뜨면서 ide에 에러가 잡히면 해당 파일 수정해주기

 

3. 상태 확인

내가 수정하지 않은 파일이 change 됐다고 뜬다면 내가 브랜치 따서 작업하는 동안 다른 팀원이 dev에 merge한 것 (dev 브랜치와 내 브랜치가 일치하지 않는 경우임)

git status

만약 수정된 파일이 없고 내가 로컬에서 수정한 파일도 없다면 바로 12번 실행!


4. 이전 커밋으로 되돌리기

status 확인하여 잘 되돌아 갔는지 확인

git reset .
git status

 

5. 내가 local에 변경한 파일이 있다면 add하기

모든 파일이 이전 상태로 돌아갔기에 내가 변경한 파일만 따로 add 하기

git add [파일 경로]

 

6. 임시 저장 커밋 생성

임시 저장하는 용도이기에 커밋 메시지는 임시 저장으로 함

git commit -m "임시 저장"

 

7. 내 브랜치 변경사항 모두 날리고 이전 커밋으로 돌아가기

git checkout .
git status

 

만약 남아있는 파일이 있다면?

더보기

저장소에 포함되지 않은 파일 삭제하기

git clean -df

 

8. 이전 커밋 번호 복사해서 그 커밋으로 되돌아가기

⭐️ 커밋 번호는 바로 이전 커밋이 아닌 pr한 커밋 번호를 복사해야함 ⭐️

git log  -> 커밋 번호 복사
git reset [복사한 커밋번호]

 


9. 변경 파일 임시저장소에 저장

git stash

 

10. 내 브랜치 pull 

내가 브랜치 파일을 로컬이 아닌 깃헙 리모트에서 직접 수정했기에 pull 받아서 local과 remote 맞추기

git pull origin [내 브랜치명]

 

11. 임시 저장소에 있던 파일 가져오기

git stash pop

 


 

12. dev 브랜치에 push 하기

git add [파일 경로]
git commit -m "커밋 메시지"
git push origin [dev]
반응형
복사했습니다!