Kiedy robię rozwiązywanie konfliktu scalania z Kdiff3 (i innym narzędziem scalania, którego próbowałem) zauważyłem, że po rozwiązaniu *.orig
plik jest tworzony. Czy istnieje sposób, aby nie utworzyć tego dodatkowego pliku?
źródło
Kiedy robię rozwiązywanie konfliktu scalania z Kdiff3 (i innym narzędziem scalania, którego próbowałem) zauważyłem, że po rozwiązaniu *.orig
plik jest tworzony. Czy istnieje sposób, aby nie utworzyć tego dodatkowego pliku?
Możliwe rozwiązanie z git config
:
git config --global mergetool.keepBackup false
Po scaleniu oryginalny plik ze znacznikami konfliktu można zapisać jako plik z
.orig
rozszerzeniem.
Jeśli ta zmienna jest ustawiona na,false
ten plik nie jest zachowywany.
Domyślnietrue
(tzn. Przechowuj pliki kopii zapasowej).
Alternatywą jest brak dodawania lub ignorowania tych plików, jak sugerowano w tym artykule gitguru ,
git mergetool
zapisuje wersję pliku z konfliktem scalania z.orig
przyrostkiem „ ”.
Pamiętaj, aby go usunąć przed dodaniem i zatwierdzeniem scalenia lub dodaniem*.orig
do swojego.gitignore
.
Berik sugeruje w komentarzach, aby użyć:
find . -name \*.orig
find . -name \*.orig -delete
Charles Bailey radzi w swojej odpowiedzi, aby był świadomy wewnętrznych ustawień narzędzia różnicowego, które mogą również generować pliki kopii zapasowych, bez względu na ustawienia git.
.bak
jak wspomniano w jego instrukcji ).Musisz więc zresetować również te ustawienia.
git config --global mergetool.keepBackup false
, Rozwiązany dla P4Merge w Mavericks 10.9.2. Dzięki :)keepBackup = false
under[mergetool]
, a nie under[mergetool "BeyondCompare4"]
lub innego skonfigurowanego wizualnego narzędzia do scalania.Musisz być ostrożny z używaniem,
kdiff3
ponieważ podczas gdygit mergetool
można skonfigurować zapisywanie.orig
pliku podczas scalania, domyślnym zachowaniemkdiff3
jest również zapisywanie.orig
pliku kopii zapasowej niezależnie odgit mergetool
.Musisz upewnić się, że
mergetool
kopia zapasowa jest wyłączona:a także ustawienia kdiff3 są ustawione tak, aby nie tworzyć kopii zapasowej:
źródło
Configure/Options => Directory Merge => Backup Files (*.orig)
naprawdę pomógł pozbyć się wszystkich dziwnych protokołów io-slave, klauncher «» i nie mógł stworzyć błędów .orig. dziękujęgit config --global mergetool.keepBackup false
trzeba ustawić?Aby być jasnym, poprawne polecenie git to:
Obie pozostałe odpowiedzi zawierają literówki w wierszu poleceń, które spowodują, że się nie powiedzie lub nie będzie działać poprawnie.
źródło
Opcję zapisania pliku .orig można wyłączyć, konfigurując KDiff3
źródło
Używam tego do czyszczenia wszystkich plików z rozszerzeniem „.orig”:
Jeśli jesteś przestraszonym kotem :) możesz zostawić ostatnią część wyłączoną, aby ją wymienić (lub zrezygnować,
-r
jeśli chcesz zatwierdzić każde usunięcie):źródło
Po prostu używam polecenia
sprawdź, czy na liście znajdują się tylko pliki, które chcę usunąć
źródło
Poza poprawnymi odpowiedziami oferowanymi jako rozwiązania długoterminowe, możesz użyć git, aby usunąć wszystkie niepotrzebne pliki raz dla ciebie za pomocą
git clean -f
polecenia, ale użyjgit clean --dry-run
najpierw, aby upewnić się, że nie wydarzy się nic niezamierzonego.Ma to tę zaletę, że usuwa przetestowane wbudowane funkcje Git zamiast skryptów specyficznych dla systemu operacyjnego / powłoki.
źródło
Lub po prostu dodaj
* .orig
do twojego globalnego gitignore
źródło
Powinno to również działać w przypadku Beyond Compare (jako scaletool)
źródło
Windows:
Win/Users/HOME/.gitconfig
zestawie plikówmergetool.keepTemporaries=false
git/libexec/git-core/git-mergetool
, w funkcjicleanup_temp_files()
dodajrm -rf -- "$MERGED.orig"
w bloku else.źródło