Se abbiamo spostato un file in un'altra posizione o lo abbiamo rinominato, tutta la cronologia precedente viene persa in git log
, a meno che non si utilizzi specificamente git log --follow
. Penso che di solito, il comportamento previsto è che ci piacerebbe vedere anche la cronologia passata, non "tagliata" dopo la rinomina o lo spostamento, quindi c'è un motivo per cui git log
non utilizza automaticamente il flag --follow
?Perché git log non è impostato su git log --follow?
risposta
Presumibilmente è perché git log
viene in genere utilizzato per visualizzare le cronologie di commit generali e non la cronologia di un singolo file o percorso. L'opzione --follow
è rilevante solo se si sta guardando un singolo file (e non funziona quando si nomina più di un file). Dal momento che non è il caso più comune, non ha senso aggiungerlo come predefinito.
Se si vuole rendere un default per te stesso, si può sempre fare un alias:
git config --global alias.lf 'log --follow'
ora si può fare git lf <filename>
per ottenere il comportamento desiderato.
Nota: Se si vuole proporre il cambiamento che stai chiedendo alla mailing list e vedere cosa la gente pensa, si può fare che here. O, ancora meglio, potresti submit a patch!
aha, quindi se si tratta di un singolo file, forse avrebbe senso impostare di default '--follow'. Il motivo per cui non segue più di un file è probabilmente dovuto a motivi di velocità? –
@ 動靜 能量: Non voglio speculare, ma sembra improbabile. git ti permette di fare molte opzioni che sarebbero molto costose da calcolare (ad es. rebase complessi e così via). –
Nota: a partire da git 2.6 (Q3 2015), git log può seguire la cronologia per impostazione predefinita per un file!
Vedi commit 076c983 (08 luglio 2015) da David Turner (dturner-tw
).
(fusa per Junio C Hamano -- gitster
-- in commit 2dded96 03 ago 2015)
log
: aggiungere "log.follow
" variabile di configurazioneLe persone che lavorano su progetti con la storia per lo più lineare con frequenti rinomina di file intere potrebbero voler usa sempre "
git log --follow
" quando ispezioni la vita del contenuto che vive in un singolo percorso.Teach il comando a comportarsi come se "
--follow
" è stata data dalla riga di comando quandolog.follow
variabile di configurazione è impostata e c'è uno (e uno solo) percorso sulla linea di comando.
git config log.follow true
Ottime notizie, grazie! – guettli
- 1. Perché non posso usare git log --follow con --full-diff?
- 2. log git --follow, mostra tutti i commit comprese le unioni
- 3. Rebases log Git
- 4. Differenza tra git-log e git-whatchanged?
- 5. Qual è lo scopo di .git/log
- 6. Esegui `git log` su un ramo remoto
- 7. File registro uscita log Git
- 8. git log -p vs. git show vs git diff
- 9. Perché git log --cherry-pick è così lento?
- 10. Rif confini mostrati con git log --decorate
- 11. Differenza tra 'git log origine/master' vs 'git log origine/master ..'
- 12. Cosa fa git log --all do?
- 13. Cosa significa git log --exit-code?
- 14. Perché git log non mostra nulla di nuovo dopo git fetch?
- 15. Git come salvare un log git preimpostato --format
- 16. Visualizza git log senza unione commette
- 17. ben visualizzare file di rinominare la storia in git log
- 18. git - rimozione log di sviluppo rotaie
- 19. Includere modulo commettere messaggi con "git log"
- 20. Combina git log --stat con --name-status?
- 21. perché devo colpire q alla fine del log git
- 22. Come visualizzare Git Log in Emacs?
- 23. Utilizzando percorso caratteri jolly git log
- 24. Qual è la differenza tra git reflog e log?
- 25. Come rendere il log git non pronto per continuare?
- 26. Come aggiornare 'git log' dopo 'git svn fetch' su un repository nudo?
- 27. log git: mostra solo il commit di ieri
- 28. Come generare il log delle modifiche: git log dall'ultima generazione di Hudson?
- 29. Come arrestare/annullare il comando 'git log' nel terminale?
- 30. Come mostrare il log git con il nome della filiale
Git 2.6+ (Q3 2015) proporrà 'git config log.follow true' per questo: si veda [mia risposta qui sotto] (http://stackoverflow.com/a/32039661/6309) – VonC