Ich versuche, Code von meinem GitHub-Repo auf meinen Server zu ziehen, aber der Pull schlägt weiterhin aufgrund von Zusammenführungskonflikten fehl. Ich möchte keine der Änderungen beibehalten, die seit dem letzten Abruf auf meinem lokalen Server aufgetreten sind.
Gibt es eine Möglichkeit, Git zu zwingen, mit einer beliebigen Version in GitHub zu überschreiben, anstatt mich über Konflikte zu stören?
Antworten:
Wenn Sie die lokal vorgenommenen Commits wirklich verwerfen möchten , dh sie nie wieder in der Historie haben möchten, fragen Sie nicht, wie Sie ziehen sollen - Pull bedeutet Zusammenführen, und Sie müssen nicht zusammenführen. Alles was Sie tun müssen ist Folgendes:
Ich persönlich würde empfehlen, zuerst einen Backup-Zweig an Ihrem aktuellen HEAD zu erstellen, damit Sie den Überblick nicht verlieren, wenn Sie feststellen, dass dies eine schlechte Idee ist.
Wenn Sie andererseits diese Commits beibehalten und den Eindruck erwecken möchten, dass Sie mit dem Ursprung zusammengeführt wurden, und die Zusammenführung nur die Versionen vom Ursprung fernhält, können Sie die
ours
Zusammenführungsstrategie verwenden:quelle
Sie können entweder die Antwort über den doppelten Link verwenden, auf den nvm zeigt.
Oder Sie können Konflikte mithilfe ihrer Änderungen lösen (einige Ihrer Änderungen werden jedoch möglicherweise beibehalten, wenn sie nicht mit der Remote-Version in Konflikt stehen):
quelle
X
Die Option wird zum Zusammenführen der Strategie übergeben, was nurrecursive
beim Zusammenführen von zwei Köpfen der Fall ist , sodass sich Ihr Befehl beschwert"Could not find merge strategy 'theirs'. Available strategies are: octopus ours recursive resolve subtree."
- es ist eine Schande, daX
dies in der Konfiguration festgelegt werden kann (z. B.git config pull.twohead theirs
), abers
nicht.