2012-12-19 9 views
5

Niedawno dokonaliśmy konwersji naszych repozytoriów SVN na GIT. Wygląda na to, że w wyniku tej konwersji straciliśmy kilka zatwierdzeń i chcielibyśmy to zweryfikować.Jak znaleźć potwierdzenia git w repozytorium za pomocą komunikatu commit?

Dlatego chcielibyśmy znaleźć pasujące zatwierdzenie git dla każdego svn commit, aby sprawdzić, czy konwersja rzeczywiście wystąpiła.

$ git log|grep "some partial commit message" nie wystarczy, ponieważ przechodzi tylko przez bezpośrednich ancenstorów i ignoruje gałęzie, które nie są bezpośrednimi przodkami.

$ git show <commit-hash> nie będzie działał, ponieważ svn nie ma sum sha1.

Najbliższa rzecz jaką znalazłem: $ git reflog show --all --grep="releasenotes"|xargs git show --shortstat jednak nie wydaje się, aby całkowicie działać tak, jak się wydaje, grep w więcej miejsc niż tylko wiadomość zatwierdzenia (Mamy fałszywe pozytywne).

Próbowałem również użyć to: $ git rev-list --all|xargs -n1 bash -c 'git show|head -n10'|grep -i release

zasadzie brakuje mi dobrego sposobu, aby wydrukować popełnić wiadomość bez dyferencjału.

[EDIT]

Nie jestem do końca pewien, ale myślę, że to powinno wymienić wszystkich popełnić wiadomości w repozytorium.

git rev-list --all|xargs -n1 git log -n1 
+0

Czytanie strony podręcznika git-log pomoże: możesz użyć czegoś takiego jak 'git log --all --format = | grep ', gdzie' 'byłoby czymś w rodzaju" SHA-commit message ", jak wyszczególniono na stronie man. –

Odpowiedz

11

można po prostu użyć opcji --all dla git log

git log --all --oneline --graph --decorate | grep "message" 

co stanowi równowartość

git log --all --oneline --graph --decorate --grep "message" 

Lub jeśli wolisz mieć kontekst i nie mają wiele zobowiązań, możesz chcieć zrobić coś takiego, jak

git log --all --oneline --graph --decorate | less 
/message 

W ten sposób można zobaczyć , gdzie Twoje zatwierdzenia odnoszą się do innych zatwierdzeń.

+0

Bardziej kompletna odpowiedź niż moja. +1 – VonC

0

Można również użyć interfejsu GUI.

gitk 

To otworzy GUI, a następnie napisać popełnić post w zawierającego pole i wciśnij enter klucz.

Pokaże wszystkie pasujące zatwierdzenia z podświetlonymi.

Powiązane problemy