Git führt ihre Schritte zusammen

Lesezeit: 2 Minuten

Benutzer-Avatar
Dominic Bou-Samra

Ich habe es mit ziemlich vielen Binärdateien zu tun, die von einem Programm generiert wurden. Das automatische Zusammenführen funktioniert bei diesen Dateien nicht gut. Was ich beim Zusammenführen gerne tun würde, ist buchstäblich die eine oder andere Kopie zu nehmen. Es ist nicht ideal, aber ich denke, es ist der beste Ansatz.

Mein Verständnis ist jetzt, dass ich Folgendes tun sollte, wenn ich eine Datei aus dem Zweig nehmen möchte, aus dem ich zusammenführe, und unsere Version vollständig verwerfen möchte:

git merge <branchname>
git checkout --theirs <filename>
git add <filename>
git commit

Ist das richtig, oder übersehe ich etwas?

Ich würde es gerne tun, ohne .gitignore zu verwenden

  • Ich suche schon seit einiger Zeit, wie ich daraus resultierende Konflikte lösen kann git merge -X theirs upstream/master “beide hinzugefügt”. git checkout --theirs . war das Richtige! Vielen Dank.

    – Sam Habiel

    31. März 2015 um 21:08 Uhr

Benutzer-Avatar
Cascabel

Wenn Ihr Ziel tatsächlich darin besteht, die eine oder andere Version beizubehalten, dann sollten Sie Folgendes verwenden:

git checkout <--theirs|--ours> <path>
git add <path>

Natürlich ist es, wie Sie sagen, nicht ideal. Wenn es eine Möglichkeit gibt, dies zu vermeiden, sollten Sie dies tun. Wenn Sie können, versuchen Sie, Workflow-Gewohnheiten anzunehmen, die es vermeiden, diese Dateien in divergierenden Zweigen zu ändern, die später zusammengeführt werden müssen. Wenn die Dateien aus nachverfolgten Inhalten generiert werden, möchten Sie sie wahrscheinlich wirklich ignorieren – wenn Sie gute Gründe haben, dies nicht zu tun, möchten Sie sie möglicherweise stattdessen aus den zusammenführbaren nachverfolgten Inhalten generieren, sofern dies möglich ist.

Erkunden Sie also alle anderen Optionen, bevor Sie dies tun, aber wenn Sie müssen, haben Sie es richtig gemacht.

  • Soll es “Beides modifiziert” bleiben, bevor ich es hinzufüge? Ich mache das, aber es generiert eine neue Datei mit TH am Ende: S

    – Dominic Bou-Samra

    15. April 2011 um 1:29 Uhr

  • Bearbeiten: Ja, es benachrichtigt Sie nicht über die Tatsache, dass Sie ihre/unsere nehmen. Einfach zur Kasse gehen und dann hinzufügen.

    – Dominic Bou-Samra

    15. April 2011 um 1:57 Uhr

Sehen Sie sich die Verwendung von .gitignore an, um generierte Dateien zu ignorieren. Möglicherweise müssen Sie auch git rm ausführen.

  • Dies ist wahr … vorausgesetzt, dass die Binärdateien vom Programm direkt aus Dingen generiert werden, die verfolgt werden. Das OP ist wahrscheinlich nicht in dieser Situation.

    – Kaskabel

    15. April 2011 um 1:20 Uhr

  • Eine andere Lösung besteht darin, diese Dateien zu markieren .gitattributes damit git die verwenden kann binary Strategie zum Zusammenführen (dh den Inhalt der Dateien nicht zusammenführen). So bekommen Sie bei widersprüchlichen Änderungen immer wieder Konflikte, die Sie dann selbst lösen können.

    – Florian Kastellane

    10. Juli 2018 um 15:43 Uhr

1225630cookie-checkGit führt ihre Schritte zusammen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy