2013-10-03 11 views
29

Miałem nieśledzony plik, który nie pojawiał się w pliku git diff i kiedy dodałem go do obszaru "zmiany do zatwierdzenia", nadal nie pojawia się w pliku git diff. Pojawiam się z git status -v, kiedy robię różnicę w stosunku do HEAD.Plik nie jest wyświetlany w git diff po dodaniu git. Skąd mam wiedzieć, że zostanie popełnione?

Nadal jestem bardzo nowy w git, więc czy ktoś może mi powiedzieć, czy plik zostanie zatwierdzony, nawet jeśli nie pojawi się w zwykłym pliku różnicowym, ponieważ został dodany do obszaru przemieszczania?

Odpowiedz

39

Jeśli chcesz zobaczyć wystawił zmian w diff, można nadal korzystać z git diff, wystarczy zdać --staged flag

[email protected]:~/dummy_repo$ echo "Hello, world" > hello.txt 
[email protected]:~/dummy_repo$ git status 
# On branch master 
# 
# Initial commit 
# 
# Untracked files: 
# hello.txt 
nothing added to commit but untracked files present 
[email protected]:~/dummy_repo$ git add hello.txt 
[email protected]:~/dummy_repo$ git diff 
[email protected]:~/dummy_repo$ git diff --staged 
diff --git a/hello.txt b/hello.txt 
new file mode 100644 
index 0000000..76d5293 
--- /dev/null 
+++ b/hello.txt 
@@ -0,0 +1 @@ 
+Hello, world 

Jeśli tylko zależy, które pliki są zainscenizowane, możesz oczywiście wykonać polecenie git status, ale git diff --staged --name-only nada każdej z etapów nazwę pliku w osobnej linii.

+2

uwaga, że ​​git diff --staged * only * pokazuje dodane pliki, a nie inne zmiany ... – rogerdpack

4

Jak widzieliście. to pokazuje się w git status, więc tak, zostanie zatwierdzone, gdy będziesz to robił git commit.

może okazać się pomocne, aby użyć narzędzia do wizualnego git takich jak gitx (Mac) lub gitg (Linux),

Ma ładne panele, aby pokazać, wystawił, nie wystawił itp

enter image description here

Mój zrzut ekranu wydaje się być oszczędny, ponieważ obecnie nie mam żadnych zmian w tym stanie.

1

Jeśli wpisałeś "git add __", plik zostanie dołączony do następnego zatwierdzenia. To zatwierdzenie zostanie przekazane na serwer po uruchomieniu "git push".

+0

Co dobrego jest ta odpowiedź? Co powiesz, jeśli z jakiegoś powodu chcesz po prostu wziąć łatkę ręczną? (nie zadajesz sobie trudu, dlaczego chciałbyś? istnieją setki powodów, dla których chciałbym) – Stephen

+0

@ Stephen, to jest odpowiedź, którą napisałem 2 lata temu, a więc zgaduję, co myślę proces był wtedy. Stanowisko OP kończy się pytaniem "Czy ktoś mógłby mi powiedzieć, czy plik zostanie zatwierdzony, nawet jeśli nie pojawi się w zwykłym pliku różnicowym, ponieważ został dodany do obszaru przemieszczania?". Jest to bezpośrednia odpowiedź na to pytanie. – tom

21

Aby zobaczyć wszystkie zmiany w drzewie roboczych od ostatniego popełnić w tym nowe pliki używać:

git diff HEAD 

Zobacz więcej przykładów tutaj: git-diff

Powiązane problemy