gitdiff jest bardziej funkcjonalny niż standardowy unix diff. Często chcę to zrobić, a ponieważ to pytanie jest wysoko oceniane w Google, chcę, aby ta odpowiedź się pojawiła.
Pokazuje, jak używać git do porównywania plików, w których co najmniej jeden z nich nie znajduje się w repozytorium, używając --no-index:
git diff --no-index file1.txt file2.txt
Nie ma znaczenia, który z nich jest śledzony przez git, a który nie - jeden lub oba mogą zostać prześledzone, np .:
$ date > x
$ sleep 2
$ date > y
$ git diff --color-words --no-index x y
diff --git a/x b/y
index 6b10c7c..70f036c 100644
--- a/x
+++ a/y
@@ -1 + 1 @@
Wed Jun 10 10:57:45|10:57:47 EDT 2013
Koloru nie można tutaj pokazać, więc w przykładzie oddzieliłem zmiany pionową kreską.
Jeśli chcesz, aby to zachowanie było domyślne, możesz dodać alias do swojego .bashrcpliku (lub cokolwiek innego):alias diff="git diff --no-index"
przeciwdziałanie
1
Do Twojej wiadomości: W Git dla Windows był błąd (# 2123) polegający na tym, że „--no-index” nie było przestrzegane. Zostało to naprawione w Git dla systemu Windows w wersji 2.21.0 (26 lutego 2019 r.).
StackzOfZtuff
Co oznacza wiersz „index 6b10c7c..70f036c 100644”? Porównuję 2 binaria, różnią się, ale to jedyny wiersz z różnicą ...
Lukas Salich
cześć @LukasSalich wygląda na to, że format linii może być udokumentowany przez git (np .: git-scm.com/docs/diff-format ) plik diff gita nie próbuje porównywać plików binarnych afaik, więc zgaduję, że ta linia oznacza, że się różnią , dwa SHA, na których zidentyfikowano zmianę, a następnie uprawnienia do pliku.
Kyle Burton,
3
diff -u
da podobne, zunifikowane wyjście kontekstowe do diff gita.
--patience
flagi? Czy znasz diff (1), który to potrafi?Odpowiedzi:
git
diff jest bardziej funkcjonalny niż standardowy unixdiff
. Często chcę to zrobić, a ponieważ to pytanie jest wysoko oceniane w Google, chcę, aby ta odpowiedź się pojawiła.To pytanie: jak używać
git diff --color-words
poza repozytorium Git?Pokazuje, jak używać git do porównywania plików, w których co najmniej jeden z nich nie znajduje się w repozytorium, używając
--no-index
:Nie ma znaczenia, który z nich jest śledzony przez git, a który nie - jeden lub oba mogą zostać prześledzone, np .:
Koloru nie można tutaj pokazać, więc w przykładzie oddzieliłem zmiany pionową kreską.
źródło
.bashrc
pliku (lub cokolwiek innego):alias diff="git diff --no-index"
diff -u
da podobne, zunifikowane wyjście kontekstowe do diff gita.
źródło
git diff --word-diff
).Po prostu użyj polecenia diff:
źródło