티스토리 뷰
해당 글은 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
'프로그래밍 공부 > Github' 카테고리의 다른 글
Github : SSH-Keygen (Git 작업 시 계정정보를 영구적으로 되묻지 않음.) (0) | 2019.11.03 |
---|---|
Github : Git작업 시 '한시적으로' 계정 확인하지 않기 / .bashrc 파일 설명 (0) | 2019.11.03 |
Github : .gitignore (0) | 2019.11.02 |
Github : Github에 Commit 후 Push 시 나타나는 이슈 (0) | 2019.11.02 |
Github : 첫 시작, 저장소에 자료 보내기 (push) (0) | 2019.11.02 |