Bir taahh├╝tteki t├╝m dosyalar nas─▒l listelenir?


Al─▒nan cevaba git


git Bir karma┼ča (SHA1) taraf─▒ndan verilen taahh├╝d├╝n bir par├žas─▒ olan t├╝m dosyalar─▒n g├╝zel bir ┼čekilde bi├žimlendirilmi┼č bir listesini i├žeren ve hi├žbir yabanc─▒ bilgi i├žermeyen basit bir komut ar─▒yorum .

Denedim:

 git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
 

Dosyalar─▒ listelese de, her biri i├žin istenmeyen farkl─▒ bilgiler de i├žerir.

├ç─▒kt─▒dan git ayr─▒┼čt─▒rmamak i├žin yaln─▒zca istedi─čim listeyi sa─člayacak ba┼čka bir komut var m─▒ git show ?


2586









Cevap say─▒s─▒n─▒ say: 28






Tercih Edilen Yol (├ž├╝nk├╝ bir tesisat komutu; programatik olmas─▒ gerekiyordu):

 $ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js
 

Ba┼čka Bir Yol (senaryolar i├žin daha az tercih edilir, ├ž├╝nk├╝ bu bir porselen komutudur; kullan─▒c─▒ya d├Ân├╝k olmas─▒ gerekir)

 $ git show --pretty="" --name-only bd61ad98    
index.html
javascript/application.js
javascript/ie6.js
 

  • --no-commit-id Bast─▒r─▒r ─░D ├ž─▒k─▒┼č i┼člemek.
  • --pretty Arg├╝man ba┼č─▒nda cruft ├Ânlemek i├žin bo┼č bir bi├žim dizesi belirtir.
  • --name-only Etkilendi arg├╝man g├Âsterileri sadece dosya adlar─▒ (te┼čekk├╝rler Hank). Kullan --name-status her dosyada ne oldu─čunu g├Ârmek istiyorsan─▒z, bunun yerine ( D , eleted M de─či┼čmemi┼č, A dded)
  • -r Arg├╝man alt a─ča├žlar─▒n recurse etmektir

3454







De─či┼čen dosyalar─▒n listesini almak istiyorsan─▒z:

 git diff-tree --no-commit-id --name-only -r <commit-ish>
 

Bir taahh├╝tteki t├╝m dosyalar─▒n listesini almak istiyorsan─▒z, kullanabilirsiniz.

 git ls-tree --name-only -r <commit-ish>
 

221







Bunun bunun gitk i├žin istenmedi─čini farzedece─čim . Bu durumda, dene git show --name-only <sha> .


208







Ben ┼čahsen kombinasyonunu kullanmak --stat ve --oneline ile g├Âsteri komutu:

 git show --stat --oneline HEAD
git show --stat --oneline b24f5fb
git show --stat --oneline HEAD^^..HEAD
 

Bunu yaparsan─▒z / ekleme / kald─▒rma istatistikleri ister gibi olmas─▒n, yerine --stat ile --name okunur

 git show --name-only --oneline HEAD
git show --name-only --oneline b24f5fb
git show --name-only --oneline HEAD^^..HEAD
 

171







Ayr─▒ca yapabilirsiniz

 git log --name-only
 

ve ├že┼čitli taahh├╝tler aras─▒nda gezinebilir, mesajlar ve de─či┼čtirilen dosyalara g├Âz atabilirsiniz.

Komut isteminizi geri almak i├žin q yaz─▒n.


69







Son zamanlarda, iki komisyon aras─▒nda de─či┼čtirilen t├╝m dosyalar─▒ listelemem gerekiyordu. Bu y├╝zden bu (ayr─▒ca * nix ├Âzel) komutunu kulland─▒m

 git show --pretty="format:" --name-only START_COMMIT..END_COMMIT | sort | uniq
 

G├╝ncelleme : Ya da Ethan a┼ča─č─▒da belirtildi─či gibi

 git diff --name-only START_COMMIT..END_COMMIT
 

Kullan─▒m─▒ --name-status ayr─▒ca her dosyan─▒n yan─▒nda bulunan de─či┼čiklikleri (eklenen, de─či┼čtirilen, silinen vb.) ─░├žerecektir

 git diff --name-status START_COMMIT..END_COMMIT
 

66







En basit hal:

git show --stat (hash)

Hat─▒rlamas─▒ daha kolay ve ihtiyac─▒n─▒z olan t├╝m bilgileri size verecek.

Ger├žekten sadece dosyalar─▒n isimlerini istiyorsan─▒z, --name-only se├žene─či ekleyebilirsiniz .

git show --stat --name-only (hash)


59


2016-07-16





Kulland─▒─č─▒m De─či┼čtirilen bir olduk├ža s─▒k takma ad─▒. Ayarlamak i├žin:

 git config --global alias.changed 'show --pretty="format:" --name-only'
 

sonra:

 git changed (lists files modified in last commit)   
git changed bAda55 (lists files modified in this commit)
git changed bAda55..ff0021 (lists files modified between those commits)
 

Yararl─▒ olabilecek benzer komutlar:

 git log --name-status --oneline (very similar, but shows what actually happened M/C/D)
git show --name-only
 

47







Standart git diff komutunu kullanma (ayr─▒ca komut dosyas─▒ i├žin iyi):

 git diff --name-only <sha>^ <sha>
 

Ayr─▒ca de─či┼čtirilen dosyalar─▒n durumunu da istiyorsan─▒z:

 git diff --name-status <sha>^ <sha>
 

Bu birle┼čtirme komisyonlar─▒ ile iyi ├žal─▒┼č─▒r.


38







kullan─▒m

 git log --name-status
 

Bu size taahh├╝t kimli─čini, mesaj─▒n─▒, dosyalar─▒ de─či┼čti─čini ve de─či┼čtirildi─čini, yarat─▒ld─▒─č─▒n─▒, eklendi─čini veya silindi─čini g├Âsterecektir. Hepsi bir arada bir komuttan biraz.


33







$ git log 88ee8 ^ .. 88ee8 - sadece-ad─▒ --pretty = "format:"

24







Tamam, t├╝m dosyalar─▒ belli bir taahh├╝tte g├Âstermenin birka├ž yolu var ...

Bilgiyi azaltmak ve yaln─▒zca i┼čleyen dosyalar─▒n adlar─▒n─▒ g├Âstermek i├žin , ekleyebilir --name-only veya --name-status i┼čaretleyebilirsiniz ..., bu bayraklar yaln─▒zca istedi─činiz ├Ânceki dosyalardan farkl─▒ olan dosya adlar─▒n─▒ g├Âsterir.

B├Âylece , a┼ča─č─▒daki gibi bir ┼čey yapt─▒ktan sonra iki kesinti ile git diff takip edebilirsiniz : --name-only <sha0> <sha1>

 git diff --name-only 5f12f15 kag9f02 
 

Bu durumda ge├žilmesi gereken t├╝m ad─▒mlar─▒ g├Âstermek i├žin a┼ča─č─▒daki resmi de olu┼čturuyorum:


git diff - sadece isim 5f12f15 kag9f02


19







Bunu iki de─či┼čiklik k├╝mesi aras─▒nda de─či┼čtirilmi┼č dosyalar─▒n listesini almak i├žin kullan─▒yorum:

 git diff --name-status <SHA1> <SHA2> | cut -f2
 

15







Kullanmay─▒ severim

 git show --stat <SHA1>^..<SHA2>
 

14







Ayr─▒ca git whatchanged , daha d├╝┼č├╝k olan git log

 NAME
       git-whatchanged - Show logs with difference each commit introduces
 

Taahh├╝t ├Âzetini, modlar─▒ ile birlikte alt─▒ndaki dosyalar─▒n bir listesiyle ve varsa ( A ), deleted ( D ) veya modified ( M );

 $ git whatchanged f31a441398fb7834fde24c5b0c2974182a431363
 

Gibi bir ┼čey verirdi:

 commit f31a441398fb7834fde24c5b0c2974182a431363
Author: xx <[email protected]>
Date:   Tue Sep 29 17:23:22 2015 +0200

    added fb skd and XLForm

:000000 100644 0000000... 90a20d7... A  Pods/Bolts/Bolts/Common/BFCancellationToken.h
:000000 100644 0000000... b5006d0... A  Pods/Bolts/Bolts/Common/BFCancellationToken.m
:000000 100644 0000000... 3e7b711... A  Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.h
:000000 100644 0000000... 9c8a7ae... A  Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.m
:000000 100644 0000000... bd6e7a1... A  Pods/Bolts/Bolts/Common/BFCancellationTokenSource.h
:000000 100644 0000000... 947f725... A  Pods/Bolts/Bolts/Common/BFCancellationTokenSource.m
:000000 100644 0000000... cf7dcdf... A  Pods/Bolts/Bolts/Common/BFDefines.h
:000000 100644 0000000... 02af9ba... A  Pods/Bolts/Bolts/Common/BFExecutor.h
:000000 100644 0000000... 292e27c... A  Pods/Bolts/Bolts/Common/BFExecutor.m
:000000 100644 0000000... 827071d... A  Pods/Bolts/Bolts/Common/BFTask.h
...
 

Bu cevab─▒n "fazladan bilgi olmadan" ger├žekten e┼čle┼čmedi─čini biliyorum, ama yine de bu listenin sadece dosya adlar─▒ndan daha kullan─▒┼čl─▒ oldu─čunu d├╝┼č├╝n├╝yorum.


13







Bunu severim:

 git diff --name-status <SHA1> <SHA1>^
 

11







Son sat─▒rda de─či┼čtirilen dosyalar─▒n listesini g├Ârmek istiyorsan─▒z, basit bir sat─▒r komutu kullan─▒n:

 git diff HEAD~1 --name-only
 

11







isim i├žin bu komutu deneyin ve sat─▒r say─▒s─▒n─▒ de─či┼čtiriniz.

 git show --stat <commit-hash>
 

sadece dosya isimlerini g├Âster

 git show --stat --name-only  <commit-hash>
 

Son i┼členen karmay─▒ almak i├žin bu komutu deneyin.

 git log -1
 

g├Âsteri dosya ad─▒ ve dosya durumu ile son de─či┼čiklik, de─či┼čtirme, olu┼čturma veya silme

  git log -1 --oneline --name-status <commit-hash>
 

veya herkes i├žin

 git log
 

daha geli┼čmi┼č git g├╝nl├╝─č├╝ bilgileri i├žin bu makaleyi okuyun

https://devhints.io/git-log-format

https://devhints.io/git-log


10







Bir taahh├╝tte de─či┼čtirilen dosyalar─▒ listeleyin:

 git diff --name-only SHA1^ SHA1
 

Bu, g├╝nl├╝k mesajlar─▒n─▒, ekstra yeni sat─▒rlar─▒ veya ba┼čka herhangi bir kar─▒┼č─▒kl─▒─č─▒ g├Âstermez. Bu sadece mevcut olan─▒ de─čil, herhangi bir taahh├╝t i├žin ├žal─▒┼č─▒r. Neden hen├╝z tam olarak bahsedilmedi─činden emin de─čilim, bu y├╝zden ekliyorum.


8







G├╝nl├╝─č├╝ g├Âr├╝nt├╝le.

KOM─░TE bo┼č ("") veya sha-1 veya sha-1 k─▒salt─▒labilir.

 git log COMMIT -1 --name-only
 

Bu sadece daha fazla i┼člem i├žin ├žok faydal─▒ olan dosyalar─▒ listeler.

 git log COMMIT -1 --name-only --pretty=format:"" | grep "[^\s]"
 

8







Buna m├╝kemmel bir cevap buldum:

 git show --name-status --oneline <commit-hash>
 

B├Âylece bilebilirim

 which files were just modified M

Which files were newly added , A

Which files were deleted , D
 

8







" git show --stat " (Te┼čekk├╝rler Ryan) ve birka├ž sed komutunun birle┼čimi , verileri sizin i├žin k─▒saltmal─▒d─▒r:

 git show --stat <SHA1> | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"
 

Bu sadece de─či┼čtirilmi┼č dosyalar─▒n listesini ├╝retecektir.


5







Bir dosya listesi olarak g├Âr├╝nt├╝lemek i├žin basit bir hile var, sadece : karma sonra ekle .

 git show 9d3a52c474:
 

Daha sonra delebilirsiniz

 git show 9d3a52c474:someDir/someOtherDir
 

Bir dosyaya vurursan─▒z, dosyan─▒n ham s├╝r├╝m├╝n├╝ al─▒rs─▒n─▒z; ki sadece g├╝zel bir referans veya ├Ânemli bir kod par├žas─▒ ar─▒yorsan─▒z (farklar her ┼čeyi kar─▒┼čt─▒rabilir)

 git show 9d3a52c474:someDir/someOtherDir/somefile
 

Bu y├Ântemin tek dezavantaj─▒, bir dosya a─čac─▒n─▒ kolayca g├Âstermemesidir.


5







 git show [email protected]{0}
 

benim i├žin iyi ├žal─▒┼č─▒yor


2







Bunu birle┼čtirme i┼čleminde de─či┼čtirilen dosyalar─▒n listesini almak i├žin kullan─▒yorum

 ╬╗ git log -m -1 --name-only --pretty="format:"
configs/anotherconfig.xml
configs/configsInRepo.xml
 

veya

 ╬╗ git log -m -1 --name-status --pretty="format:"
A       configs/anotherconfig.xml
M       configs/configsInRepo.xml
 

2







Oh-my-zsh ve git eklentisini kullan─▒yorsan─▒z, glg k─▒sayolu yard─▒mc─▒ olur.


2







Takma ad─▒m─▒n bir ├Âzetini payla┼čaca─č─▒m─▒ san─▒yordum ... ayr─▒ca git ile harika 'zsh' kullanarak her ┼čeyi g├╝zel bir ┼čekilde chroma eder ve dal─▒n her zaman komut istemini de─či┼čtirerek istedi─čini s├Âylerim.

SVN'den bahsedenler i├žin bunu faydal─▒ bulacaks─▒n─▒z: (bu farkl─▒ i┼č par├žac─▒klar─▒ndan fikirlerin bir birle┼čimidir, sadece kopyala / yap─▒┼čt─▒r y├Ântemini kullanmay─▒ bildi─čim i├žin kredi al─▒yorum)

 .gitconfig:
        ls = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative --name-status

>>git ls
* 99f21a6 - (HEAD -> swift) New Files from xcode 7 (11 hours ago) Jim Zucker| 
| A     icds.xcodeproj/project.pbxproj
| A     icds.xcodeproj/project.xcworkspace/contents.xcworkspacedata
| A     icds/AppDelegate.m
| A     icds/Assets.xcassets/AppIcon.appiconset/Contents.json

* e0a1bb6 - Move everything to old (11 hours ago) Jim Zucker| 
| D     Classes/AppInfoViewControler.h
| D     Classes/AppInfoViewControler.m
| D     Classes/CurveInstrument.h


.gitconfig: 
       lt = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative

>>git lt
* 99f21a6 - (HEAD -> swift) New Files from xcode 7 (11 hours ago) Jim Zucker
* e0a1bb6 - Move everything to old (11 hours ago) Jim Zucker
* 778bda6 - Cleanup for new project (11 hours ago) Jim Zucker
* 7373b5e - clean up files from old version (11 hours ago) Jim Zucker
* 14a8d53 - (tag: 1.x, origin/swift, origin/master, master) Initial Commit (16 hours ago) Jim Zucker


.gitconfig
lt = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative

>> git lt

commit 99f21a61de832bad7b2bdb74066a08cac3d0bf3c
Author: Jim Zucker <[email protected]>
Date:   Tue Dec 1 22:23:10 2015 -0800

    New Files from xcode 7

A       icds.xcodeproj/project.pbxproj
A       icds.xcodeproj/project.xcworkspace/contents.xcworkspacedata


commit e0a1bb6b59ed6a4f9147e894d7f7fe00283fce8d
Author: Jim Zucker <[email protected]>
Date:   Tue Dec 1 22:17:00 2015 -0800

    Move everything to old

D       Classes/AppInfoViewControler.h
D       Classes/AppInfoViewControler.m
D       Classes/CurveInstrument.h
D       Classes/CurveInstrument.m
 

-2







Bu ├žal─▒┼čmal─▒:

 git status
 

Bu, neyin a┼čamal─▒ olmad─▒─č─▒n─▒ ve neyin a┼čamal─▒ oldu─čunu g├Âsterecektir.


-3