2014-01-10 5 views
21

Ich habe eine Auswahl aus einer Gerrit-Rezension in meiner Branche ausgewählt. In gerrit code review, ich habe zwei Patch-Sets und ich habe einen gepickten Patch vorher, also jetzt möchte ich den zweiten Patch-Set machen, aber es gibt Konflikte, wie kann ich Git zwingen, alle Änderungen zu akzeptieren? Danke!force git, um die Änderungen von cherry-pick zu übernehmen

Antwort

45

Sie können ihm sagen, immer die Änderungen lieber die begehen Sie sind Rosinenpickerei:

git cherry-pick commitish --strategy-option theirs 

commitish kann ein SHA-1-Hash sein, verpflichten oder ein branch-name für die neueste Commit, dass Zweig, branch-name~1 für vor dem Commit, dass usw.

Wenn Sie die Rückseite, Gebrauch machen wollen:

git cherry-pick commitish --strategy-option ours 

der Kurz f oder --strategy-option ist -X (oberen Fall X).

0

könnte man es Brute mit so etwas erzwingen:

git show cb1e6a:path/to/filename > path/to/filename 
git add path/to/filename 
git commit 

aber ich bin sicher, dass es ein einfacherer Weg.

0

Wenn Sie bereits in Konfliktzustand sind, tun einfach

# add only conflicting files here 
git checkout --theirs path/to/file 
git add path/to/file 
git cherry-pick --continue 
0

git cherry-pick -X theirs <commit-hash-you-want-to-force-cherry-pick-from>

Meine übliche Workflow wie folgt:

Ich bin auf dem Master Unter der Annahme, und ich habe nur ein Commit gemacht.

  1. Ich nehme den Commit-Hash von diesem Commit.
  2. Dann check-out auf die Branche, die ich solche Commit haben möchte.
  3. Dann führen Sie den obigen Befehl, z. git cherry-pick -X theirs 5cf3412
Verwandte Themen