2009-04-01 3 views
4

В $ VCS Я использую $VCS diff -c $N для просмотра изменений, внесенных в ревизию $N (то есть, diff -r $N..$N+1).Как я могу «diff -c» с git?

Как я могу сделать то же самое с git?

+0

Dang, я хотел бы «принять» оба ответа - но так как я выбрал, я дам пункты к Bombe (VonC, я надеюсь, что вы можете жить без 15-ти респондентов). –

+0

Хахаха ... хороший дурак! Отлично сработано. Ну ... Хммм ... Хорошо, шутка закончилась. ДАВАЙТЕ МЕНЯ НАЗАД МЕНЯ, ЧТОБЫ ПРЕРЫВАТЬСЯ! ... ... Да, не шутка, тогда. О, ну, я думаю, я буду жить без них;) – VonC

+0

(Серьезно, я рад, что вы выбрали ответ Бомбе: его команда намного более «точна», чем моя. Я тоже ее поддержал.) – VonC

ответ

8
# git show -p SHA1_COMMIT 
+0

Хороший улов. +1. Я всегда забывал о git-шоу. – VonC

+0

Я обычно предпочитаю его, потому что мне нужно только ввести (или вставить) один идентификатор фиксации. :) – Bombe

6
git diff SHA1_COMMIT^ SHA1_COMMIT 

С SHA1_COMMIT будучи SHA1 фиксации, вы хотите, чтобы проверить.
Это «git diff» Сравним:

  • версия до фиксации ссылается этот SHA1 и
  • коммит ссылается сказал SHA1.

Как уже упоминалось в source code of the builtin-diff.c, синтаксис разобран является:

static const char builtin_diff_usage[] = 
"git diff <options> <rev>{0,2} -- <path>*" 
+0

Технически они только нужно быть «готовыми» объектами. Таким образом, вы также можете сказать «git diff HEAD ~ 2 HEAD» или «git diff HEAD origin/master». –

+0

@ Пат, вы правы. Был получен ответ на специфику вопроса («см. Только изменения, внесенные в ревизию $ N»), но вы действительно можете указать любые две коммиты. – VonC

Смежные вопросы