Aš turiu daugybę pakeitimų, esančių saugykloje. Noriu matyti failų, pakeistų tarp dviejų pakeitimų, sąrašą - iš SHA1 į SHA2.
Kokią komandą turėčiau naudoti?
git diff --name-only SHA1 SHA2
kur reikia nurodyti tik tiek SHA, kad būtų galima identifikuoti pakeitimus. Taip pat galite atlikti, pvz.
git diff --name-only HEAD~10 HEAD~5
norėdami pamatyti skirtumus tarp dešimtosios naujausios ir penktosios (ar pan.) redakcijos.
git diff --name-status [SHA1 [SHA2]]
yra kaip ir --name-only, tik gausite paprastą priešdėlį, nurodantį, kas atsitiko su failu (pakeistas, ištrintas, pridėtas...)
git log --name-status --oneline [SHA1..SHA2]
yra panašus, tačiau po pranešimo apie pakeitimą nurodomi pakeitimai, todėl galite matyti, kada failas buvo pakeistas.
Jei jus domina, kas nutiko tam tikriems failams ar aplankams, prie git log
versijos galite pridėti -- <filename> [<filename>...]
.
jei norite pamatyti, kas nutiko vienai perdavimui, pavadinkite jį SHA1, tada atlikite
git log --name-status --oneline [SHA1^..SHA1]
Failo būsenos žymės:
M modified - failas buvo pakeistas
C copy-edit - Failas nukopijuotas ir pakeistas
R rename-edit - failas buvo pervadintas ir pakeistas
A added - failas buvo pridėtas
D deleted - failas ištrintas
U unmerged - failas turi konfliktų po sujungimo
Tačiau norint pamatyti failus, pakeistus tarp jūsų šakos ir jos bendro protėvio su kita šaka (pvz., origin/master):
git diff --name-only `git merge-base origin/master HEAD`