2009-10-05 4 views
3

죄송합니다. 이것은 매우 간단한 질문입니다. GIT에서 마커의 의미를 병합합니다.GIT 병합 마커 읽기

>>>>>>> next-release:db/schema.rb 

동반자가없는 경우는 무엇입니까?

======= 

또한 GIT에 다른 버전을 선택하도록 알리는 방법이 있습니까? 자세한 내용은 git checkout man page를 참조

  • git checkout --ours -- path/to/file
  • git checkout --theirs -- path/to/file

:

답변

5

당신이 중 하나를 사용할 수 있습니다 (병합되지 경로의) 다른 이상 한 버전을 선택 Git 말씀합니다.

병합 마커에 관해서; 필자는 ">>>>"를 "===="및 "< < < <"없이 추가 한 것을 본 적이 없습니다. 이 문제가 수동으로 충돌을 해결하지 못했다고 확신합니까?

태그 next-release:db/schema.rb은 단순히 파일 "db/schema.rb"가 "next-release"브랜치에 있음을 나타냅니다.

+0

멋진 +1 감사합니다. 그것은 내가 이전에 병합했던이 문제를 가지고 있었기 때문에 이전의 갈등에서 그대로 남았을 수도 있습니다. 그리고 나는 그것을 어떻게 해결했는지 모르겠습니다. –

+0

약간의 연구가 당신이 정확하다는 것을 나타냅니다, 고마워요! –

+0

'--ours'와'--theirs'는 훌륭한 팁입니다. 나는 man 페이지를 강박 적으로 읽음으로써 옵션을 찾고 때때로 그 옵션을 잊어 버리는 경우가 있습니다. – Cascabel

0

rebase 중에 병합 충돌이 발생하는 경우이 스레드에서 언급했듯이주의해야합니다.

병합 충돌을 해결할 때 혼란 스럽습니다. 과거
내가 사용할 수 있습니다

git checkout --theirs -- <filename> 

은 그들의 버전을 체크 아웃하지만 지금은해야 할 :

git checkout --ours -- <filename> 

이 그들의 버전을 체크 아웃 할 수 있습니다.

"Why is the meaning of “ours” and “theirs” reversed"을 선택하면 리베이스 할 때 옵션이 취소되는 이유를 확인할 수 있습니다.

"How can I discard remote changes and mark a file as “resolved”?"에서 언급했듯이 체크 아웃 옵션과 파일 이름 사이에 '-'를 사용하는 것을 잊지 마십시오.

파일 이름이 브랜치 또는 태그의 이름과 일치하면 파일 이름을 확인하는 대신 해당 리비전을 체크하고 싶다고 생각합니다. checkout 명령의 첫 x 째 형식.

관련 문제