22

Ich hatte einen kleinen Konflikt in einer .h Header-Datei in einem Projekt, an dem ich arbeite. Dieses Projekt wird in Git nachverfolgt.Aufräumen nach einem konflikthaften Git fusionieren?

Glücklicherweise war der Konflikt sehr einfach zu lösen. Ich benutzte

git mergetool

und entschied sich für die Standard (opendiff) schien FileMerge auf meinem Mac zu sein. Ich habe die entsprechenden Änderungen vorgenommen, die Datei gespeichert und geschlossen.

Git fragte mich dann, ob die Zusammenführung erfolgreich war, sagte ich ja:

Was the merge successful? [y/n] y

Aber jetzt, ich habe:

> git st 
# On branch develop 
# Changes to be committed: 
# modified: MyHeader.h 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# MyHeader.h.BACKUP.52920.h 
# MyHeader.h.BASE.52920.h 
# MyHeader.h.LOCAL.52920.h 
# MyHeader.h.REMOTE.52920.h 
# MyHeader.h.orig 

Welche dieser zusätzlichen Junk-Konflikt-Dateien erstellt wurden FileMerge, und welche von Git?

Und noch wichtiger: Wie entferne ich sie?

Antwort

39

Sie können sie einfach wie jede andere Datei löschen. Zum Beispiel:

rm MyHeader.h.orig 

Alternativ kann, wenn es keine andere untracked Dateien sind, dann, nachdem Sie mit

git commit -a 

begehen können Sie Ihren Repository reinigen mit

git clean -n 
git clean -f 

git clean -n werden Ihnen sagen, was git clean -f wird tun, damit Sie sicher sein können, dass es das ist, was Sie wollen.

+0

Danke -' git clean -n/-f' war schon lange der richtige Weg. Sie können am Ende auch einen Pfad angeben, wenn Sie nur die Bereinigung für einen Unterordner ausführen möchten. –

+0

Manchmal * .orig ist in der **. Gitignore ** Datei. In diesem Fall ist der Weg zum Trockenlaufen einschließlich ignorierter Dateien: 'git clean -nx */*. Orig', check und dann' git clean -fx */*. Orig' löschen. Kredit geht an: http://travisjeffery.com/b/2011/12/keeping-your-git-repo-clean-of-orig-files/ –

7

Wenn es sich um die einzigen nicht verdeckten Dateien handelt, können Sie sie mit git clean löschen. Führen Sie es einmal mit dem -n Flag aus, um zu sehen, was gelöscht wird, wenn Sie sicher sind, führen Sie es mit -f. Verwenden Sie es nicht, wenn Sie nicht verfolgte Dateien behalten möchten!

+1

Hinweis: "Wenn sie die einzigen nicht aufgezeichneten Dateien sind". Seien Sie sehr vorsichtig mit 'git clean', da Sie leicht die Dateien verlieren könnten, die nicht unter Versionskontrolle stehen! Ich würde empfehlen, sie nur manuell zu entfernen. –

+0

Oder ich habe mir angewöhnt, ein Dateimuster zu verwenden, wie zum Beispiel: 'git clean -f * .orig' –

1

Zuerst begehen Sie Ihre Zusammenführung.

Sobald Sie zufrieden sind, dass alles in Ordnung ist, entfernen Sie einfach diese zusätzlichen Dateien manuell (z. B. mit rm <filename>).

Verwandte Themen