git - diff bieżących zmian przed zatwierdzeniem


106

Zmieniłem kilka plików w repozytorium git, ale jeszcze ich nie zatwierdziłem.

Mogę uzyskać listę zmian, po prostu wywołując git status. Ale jak oprócz nazw plików uzyskać listę wierszy lub zmienionych treści ?

Początkowo myślałem o użyciu git diff , ale wydaje się, że jest to przydatne tylko do porównywania już zatwierdzonych zmian.

Zwykle po prostu to robię meld ., ale w tym przypadku jestem połączony z zewnętrznym serwerem przez ssh.

Odpowiedzi:


153

git diffdomyślnie pokazuje różnicę między katalogiem roboczym a indeksem ( obszar pomostowy dla następnego zatwierdzenia).

Jeśli już dodałeś ( przygotowałeś ) zmiany do obszaru przemieszczania , git diff --stagedwykonuje zadanie. Obszar pomostowy to dane, z których zostanie utworzone następne zatwierdzenie git commit.

PS Dobra lektura (IMO) dla początkujących użytkowników Git:


Czy etap nie dotyczy tylko plików, które nie zostały jeszcze dodane? Pomyślałem, że musisz użyć flagi z pamięci podręcznej.
pbond

4
@peterbond man git-diffmówi--staged is a synonym of --cached
Mischa Arefiev

2
@peterbond Technicznie wystawiony oznacza dodany do obszaru przejściowego, który nie jest jeszcze zatwierdzeniem. Wyjaśniłem to w edycji.
Mischa Arefiev

1
@Mischa Dokumentacja mówi, że domyślnym zachowaniem dla git diffjest obliczenie różnicy między katalogiem roboczym a indeksem , a nieHEAD
Axel

Nie przyszło mi do głowy wywołać git diff bez parametrów. Dzięki!
kikito

10

W takich przypadkach używam:

git diff HEAD *

To pokaże zmiany od ostatniego zatwierdzenia. Chociaż w jakiś sposób działa szybciej z

git diff .

lub

git diff

Aby zobaczyć zmiany we wcześniej git addedytowanych plikach, użyj stagedflagi:

git diff --staged
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.