2010-08-09 4 views
17

나는 git fetch을 작성한 다음 git pull --rebase을 작성했습니다. 원격 지점에서 로컬 지점으로 변경 사항을 병합하려고합니다. 병합 충돌이 있습니다. 그래서 저는 git reset --hard을했습니다.내가 어떻게 풀릴 수 있습니까? -베이스하지만 모든 원격 변경을 복용?

제 질문은 git pull에게 충돌이있을 때마다 원격 변경을 요청할 수 있습니까? 맨 페이지가 정상적으로라고하더라도,

git pull --rebase -s recursive -X ours 

하지만 (내가 1.7.0.4을 사용하고 있습니다) 작동하지 않습니다

+0

일단도 가져올 수 있으며, 수동으로 (예를 들어'자식 fetch'와'자식 -X 그들의 기원/foo'을 리베이스) – Whymarrh

답변

24

나는 당신이 원하는 것은이라고 생각합니다. 이 문제는 mentioned here 문제로 인한 것 같습니다. 예상대로 작동

git pull -s recursive -X theirs 

을,하지만 당신은 대신 병합를 얻을 수을 리베이스 것 :

대신 사용할 수 있습니다.

--rebase를 사용할 때 'theirs'가 아니라 'ours'에 유의하십시오. git-rebase 맨 페이지에서 :

[CLIP] ... 리베이스 병합은 업스트림 브랜치 맨 위에있는 작업 분기의 각 커밋을 재생하여 작동합니다. 이 때문에 병합 충돌이 일어 났을 때, 우리 측으로보고 된 측은 업스트림으로 시작하여 지금까지 리베이스 된 시리즈이며, 그것들은 작동중인 지점입니다. 즉, 측면이 서로 바뀝니다. ... [CLIP]

+0

나는'자식 당겨 경우 리베이스 --rebase 상류 devel', '재귀 재귀'가 중복되지 않을까? 맨 페이지를 제대로 이해하면 대안이 문어 병합 전략이되지만, 2 개 이상의 분기가 결합 된 경우에만 필요합니다. 필자의 경우, Github에 동기화 된'fork/devel'의 작업 복사본은'upstream/devel'과'/devel'인데, 입니다. 따라서,'git pull --rebase --strategy-option theirs'를 사용하면 아무런 반응이 없으면 사용할 것입니다. – CoDEmanX

관련 문제