Führen Sie einen Git-Pull durch, um lokale Änderungen zu überschreiben

7

Ok, es gab sicherlich Posts dafür, aber ich habe tatsächlich eine Commit gemacht, weil ich dachte, es sei das Richtige.

Also, ich habe zwei Repos, eine Entwicklung und eine Produktion. Ich musste etwas in der Produktion bearbeiten, weil es ein dringender Bugfix war, und jetzt habe ich 3 Dateien, die in der Produktion neuer sind als in der Entwicklung. Also, was ich getan habe, war auf die Produktion der 3 Dateien zu verpflichten und versuchte einen Zug, aber es sagte mir, es gab Merge-Fehler. Ich habe versucht, die neuen Dateien auf den Entwicklungsserver zu kopieren und einzufügen und es erneut zu versuchen. Jetzt bin ich sicher, dass das, was ich brauche, auf der Entwicklung basiert (seit ich kopiert und eingefügt habe), also wie kann ich ziehen und die widersprüchlichen Dateien überschreiben?

Danke, Andre

---- Bearbeite bis zu @Seths Antwort

Ok, ich denke, ich muss meine Frage neu formulieren :) Ich habe 3 Repos. Ein Entwickler, einer in GitHub und eine Produktion. Normalerweise, um die Produktion zu aktualisieren, mache ich einfach einen Push von dev zu github, git pull origin master (von github zur Produktion) und es funktioniert. Leider habe ich Dateien in der Produktion ohne Verstecken geändert. Wie erzwinge ich das Überschreiben statt Zusammenführen beim Versuch, einen Zug zu ziehen?

    
Andre 06.06.2011, 20:18
quelle

2 Antworten

22

Wenn Sie Ihren lokalen Zweig foo vollständig durch den Inhalt des entfernten Zweigs Herkunft / foo ersetzen möchten

%Vor%

Wenn Sie etwas anderes machen möchten, bitte formulieren Sie Ihre Frage um. Allerdings könnte ich die Produktion git Repo als Remote hinzufügen und die Zusammenführung der Live-Änderungen anstelle von was auch immer Sie versucht haben.

    
Seth Robertson 06.06.2011, 20:25
quelle
1

Sie müssen von der Produktion zuerst zu github wechseln.

%Vor%

Die Macht wird sicherstellen, dass github hat, was Produktion hat.

Hier sind die Möglichkeiten, was Sie tun können:

Sie müssen die Änderungen im Deploy-Repo in Ihr Entwicklungs-Repo holen. An diesem Punkt werden Sie sehen, dass der Verlauf verzweigt ist (über git log --all --graph oder gitk --all ).

%Vor%

Sie können jetzt rebasen oder zusammenführen, um die letzten Änderungen nach den im Produktionsrepo vorgenommenen Änderungen zu erhalten. Dadurch können Sie Änderungen an Ihrem Deploy-Repo zu einem späteren Zeitpunkt vornehmen.

Die Konflikte gibt es aus einem bestimmten Grund. Schau sie dir an und löse sie, füge hinzu und begehe.

Wenn Sie möchten, dass die Konflikte gelöst werden, indem Sie das nehmen, was auf der Produktionsseite ist, können Sie die "rekursive ihre" Strategie verwenden:

%Vor%

Wenn Sie von Ihrer Seite keine Änderungen vornehmen möchten, führen Sie eine normale Zusammenführung durch. Wenn Sie jedoch bei den Konflikten gestoppt werden, rufen Sie die andere Seite der Zusammenführung auf, fügen Sie sie hinzu und stellen Sie sie fest.

%Vor%

Nun werden die nachfolgenden Push-to-Githubs aus der Entwicklung und die Pulls aus Github in der Produktion funktionieren.

Sie könnten den Zweig zurücksetzen, aber das setzt voraus, dass Sie keine Änderungen am Entwicklungsrepo vornehmen möchten.

%Vor%

Hoffe, das hilft.

    
Adam Dymitruk 06.06.2011 21:17
quelle

Tags und Links