So stoppen Sie eine Zusammenführung (wieder einmal …)

Lesezeit: 3 Minuten

So stoppen Sie eine Zusammenfuhrung wieder einmal
jww

Wie kann ich definitiv verhindern, dass Git versucht, zusammenzuführen? ich noch nie möchte, dass es zusammengeführt wird.

Aus Wie man Git dazu bringt, eine abgebrochene Zusammenführung zu respektieren, die nicht angefordert wurde?, weiß ich, dass das Tool meine Stornierung nicht respektiert, indem es den Editor beendet, den es startet, ohne mich zu fragen. Also jetzt habe ich nur kill -9 der Terminalprozess.

Wenn ich in eine Situation komme, in der Git zusammenführen möchte, möchte ich immer die Serverkopie der Quelldatei. Ich werde die Datei einfach lokal löschen und sie dann erneut vom Server abrufen.


Im Moment macht Git mich mit diesem Stück Güte fertig:

Sie haben Ihre Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert).
Bitte bestätigen Sie Ihre Änderungen, bevor Sie sie zusammenführen können.

Natürlich die git reset HEAD <file> funktioniert nicht.

Und hier ist das Beste: Sie sind die genau gleiche Datei. Es gibt Nein Unterschiede zwischen ihnen. Ich nehme eine Änderung vor, ich teste sie auf 8 bis 12 verschiedenen Plattformen (Kopieren mit scp), und dann checke ich es nach dem Testen in einer dieser Boxen ein. Aber von Sag Git, dass es aufhören soll, mich zu Konflikten aufzufordern, wenn keine wirklich existieren?, Ich weiß, dass das Tool zu dumm ist, um Intelligenz in diesem Bereich zu zeigen.


Wenn Sie sich fragen, gibt es eine Reihe von Quellen. Sie sind die Quellen des Projekts, die sich auf dem Remote-Server befinden. Ich möchte, dass Git nur auscheckt (klont), aktualisiert (pullt), mir mitteilt, was sich geändert hat (diff) und eincheckt (push). Ich benötige keine weiteren Funktionen des Tools.

1647180493 122 So stoppen Sie eine Zusammenfuhrung wieder einmal
VonC

Sie könnten einen benutzerdefinierten Merge-Treiber für ‘*‘ (alle Dateien) in a .gitattributesmit einer keepTheir Skript.

echo * merge=keepTheir > dirWithCopyMerge\.gitattributes
git config merge.keepTheir.name "always keep theirduring merge"
git config merge.keepTheir.driver "keepTheir.sh %O %A %B"

keepTheir.sh wäre:

mv -f $3 $2
exit 0

Ich muss die Serverkopie einer Datei abrufen (und möglicherweise Änderungen eintragen). Unter Subversion würde ich svn update verwenden

Einfach: verwenden git fetch (was keine Zusammenführung auslöst) und dann git checkout:

git checkout origin/master -- path/to/file

(Siehe „git: wie man eine einzelne Datei vom Remote-Origin-Master aktualisiert (auscheckt)“)

  • @jww normalerweise a git merge --abort reicht aus, um die Verschmelzung zu stoppen.

    – VonC

    21. Juli 2015 um 10:53 Uhr

  • Es startet den Prozess automatisch, wenn ich a mache git pull. Ich mache nie ein git merge. Ich habe noch nie erteilte den Befehl.

    – jww

    21. Juli 2015 um 10:59 Uhr


  • @jww git pull ist git fetch + git merge, also macht das Sinn.

    – VonC

    21. Juli 2015 um 11:00 Uhr

  • Danke VonC. Also sollte ich mich dann vielleicht zurückziehen. Ich muss die Serverkopie einer Datei abrufen (und möglicherweise Änderungen eintragen). Unter Subversion würde ich verwenden svn update. Als ich es in der Vergangenheit recherchierte, wurde mir gesagt, ich solle es verwenden git pull. Aber es scheint git pull möglicherweise das falsche Werkzeug für den Job. Was sollte ich verwenden, um die Serverkopie einer Datei zu erhalten (und möglicherweise Änderungen zu melden)?

    – jww

    21. Juli 2015 um 11:45 Uhr

  • @jww Ich habe meine Antwort aktualisiert, um Git Pull nicht zu verwenden.

    – VonC

    21. Juli 2015 um 11:49 Uhr

Fügen Sie dies zu Ihrem hinzu .git/config

[merge "keepTheir"]
   name = always keep their during merge
   driver = cp -f %B %A 

und fügen Sie dies in Ihre ein .gitattributes

public/dist/app.min.css merge=keepTheir

997990cookie-checkSo stoppen Sie eine Zusammenführung (wieder einmal …)

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

Privacy policy