Sto rivedendo manualmente un numero enorme di modifiche (nei 1000) effettuate da uno script di ricerca e sostituzione su alcuni cataloghi di messaggi. Al momento sto facendo git add -p
, ma continuo a fare pause per controllare altri file o regolare lo script, quindi lo sto alternando con git checkout -p
per scartare le modifiche che non desidero. C'è un modo per combinare i due? Cioè per ogni pezzo voglio l'opzione per metterlo in scena o scartarlo.Simultaneamente git add -p e git checkout -p
risposta
fase tutto ciò che serve, commit e quindi ripristinare o stash per pulire la directory di lavoro per sbarazzarsi di ciò che non è necessario.
Se si utilizza Windows o Mac OS, è possibile utilizzare l'app SourceTree GUI gratuita che consente di mettere in scena o eliminare ogni hunk (o anche selezionare le righe da ciascun hunk) nella visualizzazione diff.
Sì, sarebbe una soluzione. Stavo cercando una soluzione cli. Bu grazie comunque :) – Tieme
come circa digitando j - leave this hunk undecided, see next undecided hunk
per fusti che non si desidera mettere in scena, e dopo tutti questi, eseguire git checkout --
, poi andrà in scena quei grossi pezzi selezionati, e altri scartati.
quando si utilizza git add -p
, digitando ?
mostrerà l'aiuto
Stage this hunk [y,n,q,a,d,/,e,?]?
y - stage this hunk
n - do not stage this hunk
q - quit, do not stage this hunk nor any of the remaining ones
a - stage this and all the remaining hunks in the file
d - do not stage this hunk nor any of the remaining hunks in the file
g - select a hunk to go to
/- search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
Sempre usando 'j' per tutti gli hunks che non vuoi mettere in scena ti metteranno in loop ... Potresti usare' n' per alle che non vuoi mettere in scena e poi poi 'git checkout -> in seguito, in effetti .. ma non funzionerà per il caso che ho cercato di descrivere nel mio commento al di sotto della domanda. – Tieme
Hai avuto uno sguardo al git gui. Si tratta di un'utilità che viene fornita in bundle con git in questi giorni e cerca di semplificare le operazioni complesse che sono mix di gestione e checkout. Puoi leggere a riguardo here
Puoi scegliere di mettere in scena un blocco e scartare il resto delle modifiche. Effettuando ctrl + j
o cmd + j
è possibile eseguire il checkout del file selezionato.
So che è molto più veloce usare git da shell, ma in casi complessi come questi, il passaggio da un comando all'altro diventa un overhead.
- 1. Opposto di git add -p
- 2. git log -p vs. git show vs git diff
- 3. git add esempio regex
- 4. Come "per (; * p; ++ p) * p = tolower (* p);" lavoro in c?
- 5. git add * (asterisco) vs git add. (periodo)
- 6. Come impostare la dimensione della linguetta per hunk in "git add -p"?
- 7. Avviso Git: impossibile accedere a 'P: \ /. Gitconfig': argomento non valido
- 8. Git: git checkout con albero di lavoro modificato e indice
- 9. Impossibile utilizzare git add con l'opzione --patch
- 10. "git branch --track" vs "git checkout --track"
- 11. Git Checkout Ultimo tag
- 12. Annulla git add --all
- 13. Cosa significa/p in set/p?
- 14. Perché * p ++ è diverso da * p + = 1?
- 15. p: dataExporter non riconosce p: cellEditor
- 16. Come alias 'git checkout' in 'git co'?
- 17. 'P 0' <'P! 'in python e postgresql
- 18. Sono "div> p" e "div p" uguali?
- 19. git checkout con dot
- 20. git add. vs git commit -a
- 21. Perché/Quando utilizzare (!! p) anziché (p! = NULL)
- 22. decimale (s, p) o numero (s, p)?
- 23. Differenza tra git reset --hard e git checkout
- 24. Comando combinato per verifica tag git e checkout git?
- 25. Qualsiasi differenza tra git add. e git aggiungi --all?
- 26. Come annullare "git add." durante una fusione?
- 27. Differenza tra git checkout --track origine/ramo e git checkout -b ramo origine/ramo
- 28. SCP e mkdir -p remoto
- 29. Qual è la differenza tra git add * e git add., Se ce ne sono?
- 30. Qual è la differenza tra `git add .` e` git add -u`?
Ho lo stesso problema. Usando 'git add -p' per selezionare alcuni hunks che vorrei nel mio primo commit. Passando a 'git checkout -p' per scartarne alcuni. Aggiungere altro Esegui commit e quindi aggiungi tutto ciò che rimane per un secondo commit. Sarebbe bello combinare aggiungere e checkout! – Tieme