Git

[Git] Your branch and 'origin/master' have diverged,....

햄습햄 2021. 10. 27. 14:39

Your branch and 'origin/master' have diverged,....

 

GitHub에 올렸던 파일을 GitHub에서 직접 삭제했다.

그리고 로컬에서 파일을 수정하여 다시 올리는 과정에서 push가 되지 않았다.

새로운 branch를 생성해서 merge도 시도해 보고, 커밋을 되돌리기도 해 보고, 파일을 지워보는 등 다양한 시도를 했지만, 처리가 되지 않았다. 

이 과정에서 해당 문구가 계속해서 발생하여 확인해 보았다.

 


처리 방법

 

먼저, git fetch origin을 친다.

그리고 git reset --hard origin/master를 친다.

(--hard 옵션을 이용하면 파일 수정 전 상태로 작업 트리를 되돌린다.

명령어 치고 나서 파일이 삭제되는 현상을 겪고 싶지 않았다.

그러므로 파일 수정을 했다면 reset 명령 전에 해당 파일을 따로 빼놓던지, branch를 새로 만들어서 파일을 옮겨 놓는 방법 등을 고려해 봐야 한다.)

 

 

제대로 됐는지 확인해 보기 위해 git log와 gir status를 입력한다.

git log)

HEAD가 master를 가리키고, origin/master가 같은 위치에 있는 걸로 보아 로컬과 GitHub에 있는 커밋이 최신 버전으로 같음을 알 수 있다.

 

git status)

또한 이전처럼 로컬과 원격 브랜치가 분기되었다는 등의 내용은 발생하지 않고, 둘 다 최신 상태임을 알 수 있다.

 

 

처음에 push 하려던 파일을 추가해서 커밋한다.

커밋 후, log를 확인하니 로컬의 master와 원격 저장소의 origin/master가 다름을 알 수 있다.

 

 

그리고 커밋한 내용을 push 하면 오류 없이 잘 처리된다.

 

 

마지막으로 제대로 처리됐는지 확인한다.

git log)

로그를 다시 한 번 확인해 보면 로컬과 원격이 각각 최신 버전임을 알 수 있다.

 

GitHub)

push 한 파일이 깃허브에 제대로 올라온 것을 알 수 있다.

 

 

참고: stackoverflow

https://stackoverflow.com/questions/19864934/git-your-branch-and-origin-master-have-diverged-how-to-throw-away-local-com

 

git: Your branch and 'origin/master' have diverged - how to throw away local commits?

I have the following message in git: # Your branch and 'origin/master' have diverged, # and have 3 and 8 different commits each, respectively. # (use "git pull" to merge the remote branch into ...

stackoverflow.com

'Git' 카테고리의 다른 글

[Git] 깃 명령어  (0) 2021.10.15