Jak zobaczyć zmiany w zatwierdzeniu Git?
Kiedy robię git diff COMMIT
widzę zmiany pomiędzy tym commitem a głową (o ile wiem), ale chciałbym zobaczyć zmiany, które zostały wprowadzone przez ten commit.
Nie znalazłem żadnych oczywistych opcji w diff/log, które dałyby mi to wyjście.
16 answers
Aby zobaczyć różnicę dla konkretnego COMMIT
hash:
git diff COMMIT~ COMMIT
pokaże Ci różnicę pomiędzy przodkiem COMMIT
a COMMIT
. Zobacz strony podręcznika dla git diff aby dowiedzieć się więcej o komendzie i gitrevisions o notacji ~
i jej przyjaciołach.
Alternatywnie, git show COMMIT
zrobi coś bardzo podobnego. (Dane commita, w tym jego diff-ale nie dla commitów scalających.) Patrz strona Man git show .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-28 15:45:25
Jak wspomniano w " skrót dla Diffa git commit z jego rodzicem?", można również użyć git diff
z:
git diff COMMIT^!
Lub
git diff-tree -p COMMIT
Z git show, musisz (aby skupić się tylko na Diffie) zrobić:
git show --color --pretty=format:%b $COMMIT
Parametr COMMIT
jest / align = "left" / :
A commit objectlub object, które mogą być rekurencyjnie przeniesione do obiektu commit. Poniżej znajdują się wszystkie commit-ishe: obiekt commit, obiekt znacznika , który wskazuje na obiekt zatwierdzania, obiekt znacznika, który wskazuje na obiekt zatwierdzania, itp.
Zobacz gitrevision "określanie zmian" , aby odwołać się do commit-ish.
Zobacz także " co oznacza Tree-ish w Git?".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:56
Możesz również wypróbować ten prosty sposób:
git show <COMMIT>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-02 23:07:03
git show
pokazuje zmiany wprowadzone w ostatnim zatwierdzeniu.
Odpowiednik git show HEAD
.
git show HEAD~1
/ align = "left" /
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-16 01:50:15
Najpierw uzyskaj ID zatwierdzenia używając
git log #to list all
Lub
git log -p -1 #last one commit id
Copy commit id.
Teraz używamy dwóch metod do wyświetlania zmian z określonego commita,
Metoda 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012
Metoda 2:
git show commit_id
For example: git show 1c6a600a
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 20:34:10
Ze strony man dla git-diff(1):
git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>
Użyj trzeciego w środku:
git diff [options] <parent-commit> <commit>
Również z tej samej strony podręcznika, na dole, w sekcji przykłady :
$ git diff HEAD^ HEAD <3>
Porównaj wersję przed ostatnim zatwierdzeniem i ostatnim zatwierdzeniem.
Co prawda jest to sformułowane trochę myląco, byłoby mniej mylące jak
Porównaj najnowszy commit z commitem przed nim.
Poniższe wydaje się wykonywać zadanie; używam go, aby pokazać, co zostało wniesione przez połączenie.
git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 20:30:38
Inna możliwość:
git log -p COMMIT -1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-16 14:49:39
git difftool COMMIT^ <commit hash>
Jest również możliwe, jeśli skonfigurowałeś swój difftool.
Zobacz jak skonfigurować difftool Lub stronę podręcznika tutaj
Dodatkowo możesz użyć git diff-tree --no-commit-id --name-only -r <commit hash>
, aby zobaczyć, które pliki zostały zmienione/zatwierdzone w haśle give commit
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:50
git show <commit_sha>
To pokaże ci, co jest w tym commicie. Myślę, że można to zrobić, umieszczając spację między dwoma commit shas.
git show <beginning_sha> <ending_sha>
Co jest bardzo pomocne, jeśli często zmieniasz ustawienia, ponieważ dzienniki funkcji będą w jednym rzędzie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-22 14:46:12
Aby zobaczyć autora i czas przez commit użyj git show COMMIT
. Co spowoduje coś takiego:
commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <[email protected]>
Date: Fri Jul 24 17:46:42 2015 -0700
Merge remote-tracking branch 'origin/your-feature'
Jeśli chcesz zobaczyć, które pliki zostały zmienione, uruchom następujące wartości z linii scalania powyżej git diff --stat a2a2894 3a1ba8f
.
Jeśli chcesz zobaczyć rzeczywiste różnice, Uruchom git --stat a2a2894 3a1ba8f
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-27 22:20:05
Używam Git w wersji 2.6.1.okna.1 Na Windows 10, więc potrzebowałem drobnej modyfikacji odpowiedzi Nevika (tylda zamiast Careta):
git diff COMMIT~ COMMIT
Inną opcją jest zacytowanie karetki:
git diff "COMMIT^" COMMIT
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 20:33:09
Możesz użyć git diff HEAD HEAD^1
, aby zobaczyć diff z commitem nadrzędnym.
Jeśli chcesz zobaczyć tylko listę plików, Dodaj opcję --stat
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-27 02:52:59
Ta komenda da ci Git parent commit-hash:
git log -n 2 <commit-hash>
Potem git diff-tool <commit-hash> <parent-commit-hash>
Przykład:
bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3
commit 7f65b9a9d3820525766fcba285b3c678e889fe3b
Author: souparno <[email protected]>
Date: Mon Jul 25 13:17:07 2016 +0530
CSS changed to maintain the aspect ratio of the channel logos and to fit them properly.
commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f
Author: souparno <[email protected]>
Date: Mon Jul 25 11:28:09 2016 +0530
The ratio of the height to width of the channel images are maintained.
Po tym
git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 20:32:33
Podoba mi się poniższe polecenie, aby porównać konkretny commit i jego ostatni commit:
git diff <commit-hash>^-
Przykład:
git diff cd1b3f485^-
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 20:34:50
W przypadku sprawdzenia zmiany źródła w graficznym widoku,
$gitk (Mention your commit id here)
Na przykład:
$gitk HEAD~1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-11 08:26:30