2016-03-07 14 views
5

Często wpadam na to, na przykład, kiedy dokonałem jakiejś zmiany, popełniłem błąd, a następnie albo trzeba znaleźć coś, co tam zrobiłem, aby dowiedzieć się, co robić dalej, albo upewnić się, że nie dodałem niczego niezamierzonego do zatwierdzenie przed przekazaniem go do zdalnego.Czy krótszy sposób zapisu git diff HEAD^HEAD?

Wprawdzie diff HEAD^ HEAD jest wystarczająco szybki, aby wpisać (git diTABH^ HTAB), ale nadal czuje się jak nie powinno być lepszy sposób.

Jak najłatwiej zobaczyć wszystkie zmiany dokonane w ostatnim zatwierdzeniu?

Odpowiedz

9

Wypróbuj git show. Bez innych opcji pokazuje różnicę ostatniego zatwierdzenia.

git show $something pokazuje zawartość $something w sposób przyjazny dla użytkownika. Gdy $something odnosi się do pliku, wyświetli zawartość pliku. Gdy odwołuje się do zatwierdzenia, Git pokazuje commit (autor, data, zatwierdzenie i diff). git show bez dodatkowych argumentów jest równoważne z git show HEAD.

+0

Genialny! Czy możesz również wyjaśnić, dlaczego "show" to robi? Zwykle używam tego do wyświetlania całych plików w jakiejś wersji; nigdy nie miałoby, gdyby pokazywało różnicę, gdy nie podano żadnych argumentów. – leftaroundabout

+0

@leftaroundabout 'git show ' wyświetli komunikat dziennika i różnicę tekstową danego zatwierdzenia. Jeśli nie podano identyfikatora zatwierdzenia, używany jest HEAD. – Frodon

4

Można zastosować jedną z następujących czynności:

(wybierz ten, który najbardziej Ci odpowiada i sprawiają, że alias).

# the equivalent command (dry run) for pull/push 
git log ^branch1 branch2 
git log branch1 ^branch 2 

git show

# to view the content of the last commit 
git show 

pokazuje jeden lub więcej obiektów (plamy, drzew, tagi i zobowiązuje).

W przypadku zatwierdzeń pokazuje komunikat dziennika i różnicę tekstową. Przedstawia także zatwierdzenie scalenia w specjalnym formacie wygenerowanym przez git diff-tree --cc.


git log --cc

Od git V> 2.6 masz flagi --cc dodawane do dziennika, dzięki czemu można używać

git log --cc 

Będzie wyświetlić pełny raport z Różnica również.

enter image description here


git diff-tree --cc HEAD

Bardzo podobny do git log --cc. Za kulisami git show jest aliasem tego polecenia.

enter image description here

+0

Najprawdopodobniej będę używał zwykłego 'git show', ale miło też wiedzieć o' log -cc'. Może się przydać, kiedy muszę wiedzieć o ostatnich _ three_ commitach. – leftaroundabout

3

Znalazłem również in this post że @ jest skrótem dla HEAD. Więc

git diff @^ @ 

lub

git show @ 

jest również opcja.

+1

Tak, @ jest rzeczywiście aliasem dla HEAD. – CodeWizard

0

Całkiem słodkim sposobem byłoby użycie aliasu. Oczywiście, jest to szybka naprawa, ale można by zrobić lewę. Teraz można użyć:

$> gd 

a komenda będzie działać.

Dodaj komendę alias do swojej ~/.bashrc, lub podobnie, i nie musisz jej zapisywać na początku każdej sesji konsoli.