Come visualizzare la cronologia file in Git?
-
21-09-2019 - |
Domanda
Con Subversion ho potuto utilizzare TortoiseSVN per visualizzare la cronologia / log di un file.
Come posso fare questo con Git?
Solo in cerca di record di cronologia per un determinato file, e quindi la possibilità di confrontare le diverse versioni.
Soluzione
git log
di visualizzare la cronologia di commit. Ogni commit ha un identificatore di revisione associato che è un cancelletto (es 14b8d0982044b0c49f7a855e396206ee65c0e787
e b410ad4619d296f9d37f0db3d0ff5b9066838b39
). Per visualizzare la differenza tra due commit diverse, utilizzare git diff
con i primi caratteri della revisione specialisti di entrambi i commit, in questo modo:
# diff between commits 14b8... and b410...
git diff 14b8..b410
# only include diff of specified files
git diff 14b8..b410 path/to/file/a path/to/file/b
Se si vuole avere una panoramica su tutte le differenze che è accaduto da impegnarsi a commettere, l'uso git log
o git whatchanged
con l'opzione di patch:
# include patch displays in the commit history
git log -p
git whatchanged -p
# only get history of those commits that touch specified paths
git log path/a path/b
git whatchanged path/c path/d
Altri suggerimenti
Mi piace usare gitk name_of_file
Questo mostra una bella lista dei cambiamenti che si sono verificati in un file ad ogni commit, invece di mostrare le modifiche a tutti i file. Rende più facile rintracciare qualcosa che è accaduto.
si potrebbe anche usare tig per una bella, basato su ncurses del browser repository git. Per visualizzare la cronologia di un file:
tig path/to/file
Il mio preferito è git log -p <filename>
, che vi darà una storia di tutti i commit dei file dati, nonché le diff per ogni commit.
Molti browser storia Git, tra cui git log
(e 'git log --graph'), gitk (in Tcl / Tk, parte del Git), qgit (in Qt), TIG (interfaccia in modalità testo a git, utilizzando ncurses) , Giggle (in GTK +), TortoiseGit e git-cheetah percorso di supporto limitazione (es gitk path/to/file
).
Naturalmente, se si vuole qualcosa di più vicino al TortoiseSVN possibile, si potrebbe utilizzare TortoiseGit .
TortoiseGit fornisce anche una href="https://tortoisegit.org/docs/tortoisegit/tgit-automation.html" strumento a riga di comando rel="nofollow"> per fare vedere la storia di un file. Utilizzando PowerShell:
C:\Program` Files\TortoiseGit\bin\TortoiseGitProc.exe /command:log /path:"c:\path\to\your\file.txt"
git log --all -- path/to/file
dovrebbe funzionare