Jak szczegółowo pokazać niezaangażowane zmiany w Git i niektóre różnice w Git

202

Jak wyświetlić niezatwierdzone zmiany w Git?

I STFW'ed , a te polecenia nie działają:

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git status
On branch teyan/psservice
Your branch is up-to-date with 'origin/teyan/psservice'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   psservice.c
        modified:   psservice.vcxproj.filters


teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
TD_Yan
źródło

Odpowiedzi:

370

Jak wyświetlić niezatwierdzone zmiany w Git

Polecenie, którego szukasz, to git diff.

git diff - Pokaż zmiany między zatwierdzeniami, zatwierdzaniem i działającym drzewem itp


Oto niektóre z dostępnych opcji, których możesz użyć

git diff(brak parametrów)
Wydrukuj różnice między katalogiem roboczym a indeksem.

git diff --cached:
Wydrukuj różnice między indeksem a HEAD (bieżące zatwierdzenie).

git diff HEAD:
Wydrukuj różnice między katalogiem roboczym a HEAD.

git diff --name-only
Pokaż tylko nazwy zmienionych plików.

git diff --name-status
Pokaż tylko nazwy i status zmienionych plików.

git diff --color-words
Różnica między słowami zamiast linii po linii.

Oto próbka danych wyjściowych dla git diff --color-words:

wprowadź opis zdjęcia tutaj


wprowadź opis zdjęcia tutaj

CodeWizard
źródło
2
Gdy na końcu zobaczysz znak dwukropka, oznacza to, że git pokazał pierwszą stronę - naciśnij klawisz Enter, aby przejść przez inne zmiany (tak jak w przypadku pliku kota | więcej)
wskaźnik NULL
42

Zainscenizowałeś już zmiany (prawdopodobnie przez uruchomienie git add), więc aby uzyskać ich różnicę, musisz uruchomić:

git diff --cached

(Zwykły git diffpokaże tylko zmiany nieetapowane).

Na przykład: Przykład użycia pamięci podręcznej git diff

Aasmund Eldhuset
źródło
0

Dla mnie jedyne, co zadziałało, to

git diff HEAD

w tym pliki git diff --cachedpomostowe pokazuje tylko pliki pomostowe.

Aleksandar Pavić
źródło