22

Miałem mały konflikt w pliku nagłówkowym .h w projekcie, nad którym pracuję. Ten projekt jest śledzony w Git.Czyszczenie po konflikcie git merge?

Na szczęście konflikt był bardzo prosty do rozwiązania. Kiedyś

git mergetool

i wybraliśmy domyślne (opendiff), który wydawał się być FileMerge na moim Macu. Wprowadziłem odpowiednie zmiany, zapisałem plik i zamknąłem.

Git następnie zapytał mnie, czy scalanie był udany, powiedziałem tak:

Was the merge successful? [y/n] y

Ale teraz mam:

> 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 

Które z tych dodatkowych plików konfliktowych śmieci zostały stworzone przez FileMerge, a które przez Git?

Co ważniejsze: Jak mogę je usunąć?

Odpowiedz

39

Możesz po prostu usunąć je tak, jak każdy inny plik. Na przykład:

rm MyHeader.h.orig 

Alternatywnie, jeśli nie ma żadnych innych plików Nieśledzone, następnie po popełnić z

git commit -a 

możesz oczyścić repozytorium z

git clean -n 
git clean -f 

git clean -n powie co git clean -f zrobi, więc możesz być pewny, że tego chcesz.

+0

Dzięki -' git clean -n/-f' był od dawna bardzo ważny. Możesz także określić ścieżkę na końcu, jeśli chcesz wyczyścić tylko podfolder. –

+0

Czasami * .orig znajduje się w pliku **. Gitignore **. W tym przypadku należy przejść do pracy na sucho, w tym do plików zignorowanych: 'git clean -nx */*. Orig', sprawdź, a następnie usuń' git clean -fx */*. Orig'. Kredyt trafia do: http://travisjeffery.com/b/2011/12/keeping-your-git-repo-clean-of-orig-files/ –

7

Jeśli są to jedyne nieśledzone pliki, można je usunąć za pomocą git clean. Uruchom go z flagą -n, aby zobaczyć, co zostanie usunięte, a jeśli jesteś tego pewien, uruchom go pod numerem . Nie używaj go, jeśli masz nietknięte pliki, które chcesz zachować!

+1

Uwaga: "jeśli są to jedyne nieśledzone pliki". Bądź ostrożny z 'git clean', ponieważ możesz łatwo stracić pliki, które nie są pod kontrolą wersji! Polecam po prostu usunięcie ich ręcznie. –

+0

Albo, mam nawyk używania wzorca plików, takich jak: 'git clean -f * .orig' –

1

Najpierw dokonaj scalenia.

Po upewnieniu się, że wszystko jest w porządku, po prostu usuń te dodatkowe pliki ręcznie (na przykład za pomocą rm <filename>).

Powiązane problemy