web-dev-qa-db-de.com

Wie kann man "ihre" Änderungen in der Mitte widersprüchlicher Git-Rebase erreichen?

Ich habe widersprüchliche Zweige, Branch2 von Branch1 verzweigt.

Sagen wir mal beim Umbasieren branch2 bei aktuellem branch1, während ich Konflikte löse, entscheide ich mich, einige (nicht alle) von "ihren" (d. h. branch1) Dateien wie sie sind. Wie mache ich das?

Ich habe es versucht:

git checkout branch1:foo/bar.Java
fatal: reference is not a tree: TS-modules-tmp:foo/bar.Java

git checkout refs/heads/branch1:foo/bar.Java
fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.Java
322
Ondra Žižka

Sie möchten verwenden:

git checkout --ours foo/bar.Java
git add foo/bar.Java

Wenn Sie eine Verzweigung feature_x Auf master zurücksetzen (dh git rebase master Ausführen, während sie sich in der Verzweigung feature_x Befindet), bezieht sich ours auf master und theirs bis feature_x.

Wie in den Git-Rebase-Dokumenten :

Beachten Sie, dass eine Neuzusammenführung funktioniert, indem jedes Commit aus dem Arbeitszweig über dem Zweig erneut abgespielt wird. Wenn ein Zusammenführungskonflikt auftritt, handelt es sich bei der als uns gemeldeten Seite daher um die bisher umbasierte Reihe, beginnend mit <upstream>, und bei der anderen um den Arbeitszweig. Mit anderen Worten, die Seiten werden getauscht.

Für weitere Details lies diesen Thread .

455
iGEL

Wenn Sie eine bestimmte Datei aus einem anderen Zweig ziehen möchten, tun Sie dies einfach

git checkout branch1 -- filenamefoo.txt

Dadurch wird eine Version der Datei aus einem Zweig in den aktuellen Baum gezogen

1
Adrian Cornish