2014-09-08 6 views
3

Git은 병합이 충돌하는 지점을 푸시하지 못하게합니다. 현재 상황에는 ~ 15 개의 충돌하는 파일이 있으며 그 중 일부는 내 코드이고 다른 일부는 다른 사람의 코드입니다. 코드를 변경 한 사람은 해당 특정 파일을 병합하는 것이 바람직합니다. 병합을 완료하려면 어떻게해야합니까? 우리 모두가 같은 컴퓨터에 앉아서, 또는 TMUX를 통해 같은 터미널에서 어떻게 각 사람이 자신의 책임있는 파일의 병합을 수행 할 수있는 것보다 다른git에서 여러 사용자와 코드 병합을 관리하는 방법은 무엇입니까?

Unmerged paths: 
    both modified: foo.py  # This I should fix 
    both modified: bar.py  # This Jeff Atwood should fix 
    both added:  bin/baz.py # This Joel Spolsky should fix 
    both added:  bin/buzz.py # This I should fix 

? 나는 bar.py에 대해 아무것도 모르며 Jeff는 어떻게 foo.py이 작동하는지에 대해 아무것도 모릅니다.

답변

2

This gist 나는 당신이 원하는 것을 믿습니다. 기본적으로 --no-ff --no-commit과 병합하고 충돌을 해결 한 다음 reset head을 병합 취소 한 다음 add 원하는 항목 만 제거합니다.

+0

고맙습니다. 감사합니다. 아래쪽에는 각 개발자가 충돌을 해결할 파일을 어떻게 병합 할 수 있는지 보여주는 주석이 있습니다. 요지의 내용보다 바람직 할 수 있습니다. – dotancohen

+0

'git checkout mergeFrom move to files to move'명령을 사용하면 병합하지 않고 내용을 자신의 것으로 대체 할 수 있습니다. – Amadan

+0

병합이 필요한 파일 목록이 만들어지면 (git merge somebranch,'git merge --abort') 각 사용자가 작업 할 파일을 병합 할 수 있기를 바랬습니다. – dotancohen

-2

충돌을 해결할 수있는 도구가 있으며 충돌을 해결 한 후 해당 특정 파일을 병합 할 수 있습니다. "git mergetool" 명령을 사용하여 파일 간의 차이점을 확인하고 유지할 파일을 선택하십시오. 이 문서는 git-mergetool입니다.

모든 충돌을 해결 한 후에 분기를 병합 할 수 있습니다.

+0

Samwise에게 감사드립니다. mergetool은 필자의 책임 인 파일을 병합하는 데 도움이 될 것입니다 (foo.py, bin/buzz.py). 그러나, 그것은 병합되지 않은 파일 (bar.py, bin/baz.py)을 밀어 넣지 못하게하고 그것들을 합칠 수 없다. – dotancohen

+0

그는 foo.py와 bin/buzz.py에만있는 모든 충돌을 해결하고 싶지 않습니다. – Amadan

+0

이 답변은 다른 개발자가 코딩 한 파일의 충돌을 해결하는 방법을 알지 못하는 것에 대한 OP의 우려를 해결하지 못하기 때문에 주제를 벗어난 것입니다 ... – Jubobs