2012-06-13 15 views
22

Esiste un comando che può prendere un riferimento e un percorso di file e generare l'intero contenuto del file così come era in quel commit su STDOUT?Git: intero file allo stdout

Es. Qualcosa di simile a questo:

git show-me-the-file HEAD~2 some/file | do_something_with_piped_output_here 
+3

git cat-file -p HEAD ~ 2: alcuni/file – jthill

+0

Grazie jthill, anche questo funziona. Dagli una risposta e io lo voterò. – Joel

+0

Questo è ciò che ho usato per: meld <(git cat-file -p HEAD: alcuni/file) <(git cat-file -p master: alcuni/file); Per visualizzare un diff di file in combinazione. Probabilmente c'è anche un modo migliore per farlo, ma sembra funzionare bene. – Joel

risposta

38

git show

esempio

git show HEAD:./<path_to_file>

+3

il '| cat' non è necessario (a meno che tu non voglia impedire al cercapersone di calciare). –

+0

":" è importante o vedrai un diff piuttosto che il file completo. –

7

git show <ref spec>:<path> per esempio, se si desidera visualizzare un file in fase di commit punto 9be20d1bf62 fare:

git show 9be20d1bf62:a/b/file.txt

se si desidera visualizzare file in particolare branca:

git show <branch name>:<path>

2

Si desidera git show o git archive per questo caso d'uso. Il comando git-show è più orientato verso l'invio di file allo standard output, però.

# Show .gitignore from revision before this one. 
git show HEAD^:.gitignore 

La parte prima del colon è un albero-ish formato secondo gitrevisions (7), mentre la seconda metà è un percorso relativo all'inizio del GIT albero di lavoro.

Problemi correlati