Mai mult
Cum pentru a lista numai nume de fișiere care au schimbat între două comite?
Am o grămadă de comite în repo. Vreau să văd o listă de fișiere schimbat între două comite - de la SHA1 să SHA2.
Ce comanda trebuie sa folosesc?
1796
13
în cazul în care aveți nevoie doar de a include suficient de SHA pentru a identifica comite. Puteți face, de asemenea, de exemplu
pentru a vedea diferențele între cea de-a zecea cea mai recentă a comis-o și a cincea cea mai recentă (sau cam asa ceva).
este ca-nume-doar, doar vei ajunge un simplu prefix vă spun ce s-a întâmplat la dosar (modificate, șterse, a adăugat...)
este similar, dar se angajează sunt enumerate după comiterea mesaj, astfel încât să puteți vedea atunci când un fișier a fost schimbat.
daca're interesat în doar ce s-a întâmplat la anumite fișiere/foldere puteți adăuga
-- <nume> [<nume>...] " la " git log
versiune.dacă doriți să vedeți ce s-a întâmplat pentru un singur comite, spune SHA1, apoi face
git log-numele-de stare-oneline [SHA1^..SHA1]
Fișier starea steaguri: M modificate - Fișierul a fost modificat C copy-edit - Fișier a fost copiat si modificat R redenumiți-edit - Fișier a fost redenumit și modificate Un adăugată - Fișierul a fost adăugat D șters - Fișierul a fost șters U unmerged - Fișier a conflictelor după unificare
Se pare că nimeni nu a menționat switch
--stat
:Există, de asemenea,
--numstat
și
--shortstat
Dar pentru a vedea fișierele schimbat între sucursală și strămoș comun cu o altă ramură (spun origine/master):
Pentru a suplimenta @artfulrobot's a răspunde, dacă doriți să arate schimbat fișiere între două ramuri:
Fii atent la prioritate. Daca ai loc de noi sucursale în primul rând, atunci aceasta ar arăta fișierele de șters, mai degrabă decât de adăugat.
Adăugarea unui
grep
poate rafina și mai mult lucrurile:Care va afișa apoi doar fișierele adăugate în
myotherbranch
.Adauga mai jos alias ta
~/.bash_profile
, apoi fugi,source ~/.bash_profile
; acum, oricând aveți nevoie pentru a vedea fișierele actualizate in ultimele comite, fugi, showfiles de depozit git.Acest lucru va arăta modificări în fișiere:
De asemenea, rețineți, dacă doriți doar pentru a vedea fișierele modificate între ultimul comite și cea dinaintea ei. Aceasta funcționează bine: `git show-numele-doar pentru
Utilizarea git log-destul de=oneline >C:\filename.log
care va conecta numai un oneline (...destul de=oneline) asta e numele de fișier schimbat. De asemenea, va înregistra toate detaliile pentru fișierul de ieșire.
Ca artfulrobot a declarat în răspunsul său:
Exemplul meu:
Doar pentru cineva care are nevoie să se concentreze numai pe fișierele Java, aceasta este soluția mea:
Următoarele funcționează bine pentru mine:
$ git show-numele-numai --format=tformat: SHA1..SHA2
Acesta poate fi, de asemenea, utilizat cu un singur comite:
git show-numele-numai --format=tformat: SHA1
care este la îndemână pentru utilizarea în Jenkins în cazul în care vă sunt prevăzute cu o Listă de changeSet SHA's, și vreau să itera peste ele pentru a vedea ce fișiere au fost modificate.
Acest lucru este similar cu un cuplu din raspunsurile de mai sus, dar folosind
tformat: "mai degrabă decât" format:
elimină spațiu separator între comite.Bazat pe git diff-numele-starea` am scris git-diffview git extensie care face un arbore ierarhic de vedere a ceea ce s-a schimbat între două căi.