Ho notato che mentre lavoro su uno o due biglietti, se mi allontano, non sono sicuro di cosa ho lavorato, cosa è cambiato, eccetera.
C'è un modo per vedere le modifiche apportate per un determinato file prima di git add e quindi git commit?
Ho notato che mentre lavoro su uno o due biglietti, se mi allontano, non sono sicuro di cosa ho lavorato, cosa è cambiato, eccetera.
C'è un modo per vedere le modifiche apportate per un determinato file prima di git add e quindi git commit?
Risposte:
Stai cercando git diff
. A seconda della situazione esatta, ci sono tre modi utili per usarlo:
# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]
Funzionerà in modo ricorsivo su directory e, se non viene fornito alcun percorso, mostra tutte le modifiche.
git add -p
è un'alternativa per ispezionare tutti i file.
git diff --staged [filename]
tua risposta principale in quanto questa è una situazione più spesso necessaria.
Utilizzare git-diff
:
git diff yourfile
Per me git add -p
è il modo più utile (e inteso penso dagli sviluppatori git?) Di rivedere tutte le modifiche non messe in scena (mostra la differenza per ogni file), scegliere una buona serie di modifiche che dovrebbero andare con un commit, quindi quando hai messo in scena tutti quelli, quindi utilizzare git commit
e ripetere per il prossimo commit. Quindi puoi fare in modo che ogni commit sia un insieme utile o significativo di modifiche anche se sono avvenute in vari file. Suggerirei anche di creare un nuovo ramo per ogni ticket o attività simile e passare da uno all'altro usando checkout
(magari usando git stash
se non vuoi impegnarti prima di cambiare), anche se se stai facendo molte modifiche rapide questo potrebbe essere un problema. Non dimenticare di unirti spesso.
Mostra i cambiamenti tra l'albero di lavoro e l'indice o un albero, i cambiamenti tra l'indice e un albero, i cambiamenti tra due alberi o i cambiamenti tra due file sul disco.
Ricorda, stai apportando modifiche , non file.
Per questo motivo, è molto raro che io non usi git add -p
(o l'equivalente magit) per aggiungere le mie modifiche.
git diff <path>/filename
percorso può essere completo percorso di sistema fino al file o
se ci si trova nel progetto si incolla il percorso del file modificato anche
per i file modificati con uso del percorso:git status
Bene, il mio caso quando non vuoi preoccuparti dell'elenco dei file. Mostrali tutti.
Quando hai già eseguito il git add
tuo elenco di file:
$ git diff --cached $(git diff --cached --name-only)
Nelle versioni più recenti di git
, è possibile utilizzare --staged
anche, che è sinonimo di--cached
.
Lo stesso può essere utilizzato per i file non aggiunti ma senza --cached
opzione.
$ git diff $(git diff --name-only)
Alias del comando Git per l'opzione "cache":
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
Vai al tuo rispettivo repository git, quindi esegui il comando seguente:
nome file git diff
Si aprirà il file con le modifiche contrassegnate, premere il tasto Invio / Invio per scorrere il file verso il basso.
Il nome file PS deve includere il percorso completo del file oppure è possibile eseguire senza il percorso completo del file andando nella rispettiva directory / cartella del file
Puoi anche usare un editor di testo intuitivo. Mostrano i colori sulle linee che sono state modificate, un altro colore per le linee aggiunte, un altro colore per le linee eliminate, ecc.
Un buon editor di testi che fa questo è Atom 1.0 di GitHub .
[filename]
indicano un argomento facoltativo.) Con la*
stai facendo in modo che la shell elenchi tutti i file, quindi se sei in una sottodirectory otterrai solo cose in quella sottodirectory (non l'intero repository) e tu ' mi mancheranno le modifiche nei file nascosti.