2011-12-05 12 views
57

git diff w rzeczywistości uruchamia diff na całym kodzie źródłowym, w jaki sposób mogę to zrobić w określonym katalogu, aby można było zobaczyć modyfikacje plików znajdujących się pod nim.Jak zmienić plik git na konkretny katalog

+0

http://stackoverflow.com/a/12123669/1815624 'git diff master..yourbranch ścieżka/do/folder' – CrandellWS

Odpowiedz

60

Podaj ścieżkę (MójFolder w tym przypadku) i po prostu uruchomić:

git diff myfolder/

+11

chciałbym użyć' git diff - myfolder' aby zminimalizować niejasność do git. Ogólna notacja dla git diff (i wielu poleceń git) to 'git diff [commit-ish] - [path]' gdzie commit-ish domyślnie HEAD (gdzie jesteś teraz) i '[path]' domyślnie git katalog główny, ale może to być wszystko, co jest związane z bieżącym katalogiem. Bez '--', git odgadnie, co masz na myśli,' [commit-ish] 'lub' [path] '. W niektórych przypadkach powoduje to, że git mówi, że notacja jest "niejednoznaczna". Jeżeli dobrze pamiętam. – L0LN1NJ4

+2

To nic nie drukuje, gdy próbuję metody w odpowiedzi i metody w komentarzu. – ray

+0

@ray, co oznacza, że ​​nie ma różnic między drzewem roboczym a ostatnim zatwierdzeniem –

5

Należy dokonać nawyk patrzenia na dokumentacji rzeczy jak ta. Jest to bardzo przydatne i bardzo szybko poprawi twoje umiejętności. Oto odnośny bit kiedy robisz git help diff

git diff [options] [--no-index] [--] <path> <path> 

Dwa <path> s to co trzeba zmienić, aby katalogów w pytaniu.

22

Jeśli porównujesz różne gałęzie, musisz użyć --, aby oddzielić wersję git od ścieżki systemu plików. Na przykład, z dwóch lokalnych oddziałów, master i bryan-working:

$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/ 

lub z lokalnego oddziału do zdalnego:

$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/ 
+10

Tylko jedna klauzula jest potrzebna po wylistowaniu obu gałęzi, jak w: git diff branch1 branch2 - path/to/dir – emery

Powiązane problemy