티스토리 뷰

프로그래밍 공부/Github

Github : Git pull 후, 충돌(Conflict) 발생 시

마음 따뜻한 개발자, 나른한 하루 2019. 11. 2. 21:26

해당 글은 https://blog.naver.com/kbs4674/221174678439 로 부터 게시글이 이전되었습니다.

 

Git pull을 하는데 갑자기 Conflict 에러가 발생했습니다!

 

 이럴 때는 의외로 간단한 해결방법이 있는데 바로 코드 병합(Merge) 입니다.

 

 

  • Git 충돌 (refusing to merge unrelated histories) 해결 : merge

이 방법은 서로 다른 코드간의 충돌 발생 시, 충돌되는 두 코드 중 하나를 선택해서 이용하는 방법이 되겠습니다.

 

1. 일단 자신의 코드를 스냅샷을 찍고, Commit을 찍습니다.

이 작업은 현재의 Commit과 Github 저장소의 Commit 과의 대조 후 어느 부분이 문제인지 찾아내기 위함입니다.

git add .
git commit -m "[작업 내용]"

 

2. 아래 명령어를 입력하세요.

git merge --allow-unrelated-histories [remote 이름]/[브랜치]
git merge --allow-unrelated-histories origin/master

 

3. 2번 과정의 명령어를 치면 충돌이 일어난 부분에 대해 알려줍니다.

우리는 그저 충돌의 원인이 되는 파일들로 이동해서 하나하나 고쳐주면 됩니다.

저는 좀 많네요(...)

대표적으로 저는 저 중,  /config/environments/production.rb  파일을 고쳐보겠습니다.

 

4. 충돌이 일어나는 원인의 파일에 가면 다음과 같이 보여집니다.

HEAD는  git pull  되기 전, 내가 가지고 있던 코드로서 과거본이라고 보면 되고,

origin/master은  git pull  후, 새로 반영된 코드로서 최신본이라고 보면 됩니다.

둘 중에 어느 코드를 사용할지 고른 후, 안 쓸 코드에 대해서는 지우면 됩니다.

(저는 최신 코드를 선택하겠습니다.)

저장하고 나가고, 다시  git pull  을 해주면 됩니다~

 

5. 마지막으로 Commit 기록을 찍어내서 자신의 서버 내 Commit을 최신화로 업데이트 해주세요.

git add .
git commit -m "[작업 내용]"

 

 

  • Git 충돌 (refusing to merge unrelated histories) 해결 : stash

위 방법 말고도

stash

stash 라는 해결방법 또한 존재합니다.

stash는 '책갈피' 개념으로 생각하면 되는 개념으로서, 지금의 코드를 만들어내긴 했는데 뭔가 오류가 생기게 됩니다.

하지만 그렇다고 코드를 날려버리기엔 아까울 때, 백업 및 책갈피 개념으로서 이 명령어를 쓰면 딱 좋을겁니다.

 참고  이 명령어를 쓰게되면 HEAD상태(commit 최신본)으로 되돌아가게 됩니다.

 

git stash

 단순히 위 명령어만 치면은 과거 코드본 상태인 HEAD 상태로 되돌아가게 되는것이 확인됩니다!

 

stash에 저장했던 과거의 코드를 열람 및 가져오고 싶나요?

1) 열람

git stash list

 

2) stash 당시 작업내역에 대해 백업해뒀던 코드 가져오기

git stash pop

pop은 stash 리스트 중 마지막 stash만 가져옵니다!

 

 

  • 자료 참고

1. Merge [클릭]

2. Stash [클릭]

 

깃허브 깃헙 Github git 루비온 레일즈 ruby on rails ROR

댓글
댓글쓰기 폼
공지사항
Total
148,739
Today
105
Yesterday
430
링크
«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
글 보관함