2013-12-15 2 views
-2

이 엉망이라면 나올 수 없다. 나는 dev에 돌아갈 수 없다 ... 나는 master에 대해 잊고 모든 dev를 master로 합병하기를 원한다.Git와 나는 충돌로 인해 병합 할 수 없다.

git merge --no-ff development 
Auto-merging servers/bidder_server.py 
CONFLICT (content): Merge conflict in servers/bidder_server.py 
Automatic merge failed; fix conflicts and then commit the result. 

저는 지금 마스터에 대해 신경 쓰지 않습니다. 나는 모든 주인이 주인이되고 싶다. 클린 마스터를 지우는 방법은?

+0

"마스터는 신경 쓰지 않습니다."#FiveWordTechHorrors – zerkms

+0

Repo를 독점적으로 사용하고 있습니까? – krlmlr

+1

그런 다음 마스터로 가서 dev 브랜치로 마스터 브랜치를 다시 설정하십시오. – Stony

답변

1

먼저, 나는 당신이 할 수있는대로 병합을 완료해야한다고 생각합니다. 가비지 파일을 남기지 마시고 병합을 마칩니다.

그런 다음 git log 또는 git reflog을보고 되돌릴 적절한 커밋을 찾음으로써 커밋 내역을 살펴볼 수 있습니다. 임시 스테이징 영역으로 사용할 새 분기를 만드는 것이 좋습니다.

되돌리려면 git reset --hard <commit>을 사용하십시오. 브랜치에서 볼 수있는 것이 마스터에서 사용하기에 적합하면 마스터로 전환 한 후 동일한 명령을 사용하십시오. 그런 다음 dev를 마스터로 병합 할 수 있습니다.

+0

작동하지 않음 git reset --hard HEAD는 이제 c796a13에 있습니다. – Tampa

+0

git commit -m 't' # 분기 마스터에 있음 커밋 할 것이 없습니다 디렉토리 클린) – Tampa

+0

git merge --no-ff 개발 자동 병합 서버/bidder_server.py 충돌 (내용) : 서버/bidder_server.py에서 충돌이 발생합니다. 자동 병합에 실패했습니다. 충돌을 수정 한 다음 결과를 커밋하십시오. – Tampa

0

master의 변경 사항을 완전히 무시하지 않고 무시하려면 the ours merge strategy을 사용할 수 있습니다.

이렇게하면 머리 수가 모두 결정되지만 병합 된 트리는 항상 현재 분기 헤드의 트리이므로 다른 모든 분기의 모든 변경 사항을 무시합니다. 그것은 사이드 브랜치의 오래된 개발 이력을 대체하기 위해 사용됩니다. 이것은 재귀 병합 전략에 대한 -Xours 옵션과 다릅니다.

는 병합 결과 트리 development을 일치하는 커밋 만들 developmentmaster 병합을 사용합니다.

git checkout development 
git merge -s ours master 

그런 다음 두 분기가 병합 커밋을 참조하므로 master으로 병합하십시오.

git checkout master 
git merge development 
관련 문제