'git diff' несовместим между CLI и другими клиентами - PullRequest
2 голосов
/ 08 апреля 2011

Я пытаюсь получить список измененных / добавленных / удаленных / и т.д. файлы для коммита в моем Git-репозитории. Когда я запускаю следующее в оболочке, это вывод:

Indragie$ /usr/bin/git diff --name-status 0836
D       INPopoverController.h
D       INPopoverController.m
D       INPopoverControllerDefines.h
D       INPopoverWindow.h
D       INPopoverWindow.m
D       INPopoverWindowFrame.h
D       Images/blue_progress_slice.png
M       Images/next.png
M       Images/pause.png
M       Images/play.png
M       Images/previous.png
D       Images/progress_left_cap.png

Когда я проверяю список изменений в Xcode (или любом другом стороннем Git-клиенте), я вижу это:

Xcode diff http://cl.ly/2i3P3s0m0i3I10110h3E/Screen_Shot_2011-04-07_at_8.59.18_PM.png

Очевидно, что это просто отрывки из больших списков, но дело в том, что они не одинаковы вообще. Я проверил, что хэш SHA1 коммита, на который я смотрю, одинаков как в git CLI, так и в Xcode. Я новичок в git, так что может быть что-то довольно очевидное, я делаю что-то не так, но даже после пролистывания справочных страниц и руководств по git, я не могу понять, в чем дело. Любая помощь приветствуется.

1 Ответ

3 голосов
/ 08 апреля 2011

Вы уверены, что смотрите на одно и то же?

git diff <commit-id> покажет вам различия между вашим текущим рабочим деревом и деревом во время этого коммита, а не изменения, внесенные этим коммитом.

git show покажет вам только изменения этого коммита.

...