Git - jak hledat v commitech a obnovit soubor ve starší revizi
V tomto článku si ukážeme, jak vyhledávat v git commitech dle názvu a obsahu, jak si vybrat co vše chceme ve výpisu vidět a jak obnovit celý soubor v dané revizi.
Nejsnažší způsob pro vyhledávání obsahu ve všech git commitech je tento:
git log -S "hledany_obsah"
Patrně ale narazíte na to, že si budete chtít výstup trochu poupravit...
Více možností:
hledá v obsahu - všude - řádkový výpis
git grep "hledany_obsah" $(git rev-list --all)
hledá v obsahu - všude - ale vypisuje hlavičky commitu
git log -S "hledany_obsah"
hledá v title - názvu commitu - vypisuje hlavičky commitu
git log --grep="hledany_titulek"
Příklad
Chceme najít slovo "Identifier"
git log -S "Identifier"
Výsledek je:
commit defb75d385e91b489dba8c1d2d9310e4964725a8
Author: Hanz <sv4sdf4sfwe@up4.cz>
Date: Fri Aug 21 13:57:59 2022 +0200
Abych viděl celý commit, tak si ho chci zobrazit dle hash id
git show 0ba9fa752e57e4a3ba8c33354e7258f1b3da5452
A když mně to bude málo a chci vidět celý soubor v daném commitu, tak za hash id uvedu cestu k souboru
git show 0ba9fa752e57e4a3ba8c33354e7258f1b3da5452:src/File.php
Pokud chceme soubor File.php obnovit (restore file) a nechceme zasahovat do commitů, tak musíme uvést cestu k danému souboru a kam ho chceme uložit:
git show 0ba9fa752e57e4a3ba8c33354e7258f1b3da5452:src/File.php > ~/File.php
Použití v gitk (GUI)
Stačí za příkaz gitk vložit cestu k souboru
gitk src/File.php