Chcę wyodrębnić kopię najnowszej wersji pliku przechowywanego w repozytorium git i przekazać ją do skryptu w celu przetworzenia. W przypadku svn lub hg używam po prostu polecenia „cat”:
Wydrukuj określone pliki tak, jak były w danej wersji. Jeśli nie podano żadnej wersji, używany jest katalog macierzysty katalogu roboczego lub wskazówka, jeśli żadna wersja nie jest pobierana.
(to z opisu hg cat w dokumentacji hg)
Jakie jest równoważne polecenie, aby zrobić to z git?
git
version-control
Richard Boulton
źródło
źródło
Odpowiedzi:
Gdzie rev jest wersją.
Zobacz http://git.or.cz/course/svn.html w celu porównania poleceń git i svn.
źródło
jest "git cat-file", który możesz uruchomić w ten sposób:
$ git cat-file blob v1.0:path/to/file
gdzie możesz zamienić „v1.0” na gałąź, tag lub zatwierdzenie SHA, które chcesz, a następnie „ścieżkę / do / pliku” na ścieżkę względną w repozytorium. Możesz także podać „-s”, aby zobaczyć rozmiar zawartości, jeśli chcesz.
może być bliżej poleceń 'cat', do których jesteś przyzwyczajony, chociaż wcześniej wspomniane polecenie 'show' zrobi mniej więcej to samo.
źródło
git show
to polecenie, którego szukasz. Z dokumentacji:źródło
Pracuj także z nazwami gałęzi (jak HEAD w pierwszym p):
źródło
Użyj
git show
, jak wgit show commit_sha_id:path/to/some/file.cs
.źródło
Napisałem skrypt powłoki git cat, który jest na githubie
źródło
Wydaje się, że nie ma bezpośredniego substytutu. Ten wpis w blogu szczegółowo opisuje, jak zrobić odpowiednik, określając najnowsze zatwierdzenie, następnie określając skrót dla pliku w tym zatwierdzeniu, a następnie zrzucając go.
(wpis na blogu zawiera literówki i używa powyższego z poleceniem
svn
)źródło
Żadna z
git show
sugestii nie jest prawdziwie zadowalająca, ponieważ (chociaż mogę spróbować), nie mogę znaleźć sposobu, aby nie uzyskać metadanych z góry wyniku. Duch kota (1) służy tylko do pokazania zawartości. To (poniżej) przyjmuje nazwę pliku i opcjonalny numer. Liczba określa, jak zmiany chcesz cofnąć. (Zatwierdzenia, które zmieniły ten plik. Zatwierdzenia, które nie zmieniają pliku docelowego, nie są liczone).pokazuje zawartość nazwy_pliku.txt od ostatniego zatwierdzenia nazwy_pliku.txt oraz zawartość trzech wcześniejszych zatwierdzeń.
źródło
Dla osób używających basha przydatna jest następująca funkcja:
Umieść go w swoim
.bashrc
pliku (możesz użyć dowolnej nazwy innej niżgcat
.Przykładowe użycie:
lub
lub
źródło