Git: 1. Bir daldaki tüm dosyaları listeleyin, 2. farklı daldaki dosyaları karşılaştırın


90
  1. Gibi bir komut arıyorum ls -RVeyadir/s , bir commit / daldaki tüm dosyaları listeleyebilir.
  2. Farklı dallardan iki dosyayı karşılaştırabilen herhangi bir komut var mı?

Yanıtlar:


137
  1. git ls-tree -r --name-only <commit>(bunun yerine <commit>olabilir <branch>). Alt dizinleri bunlara inmeden önce listeleyen seçeneği
    de kullanmak isteyebilirsiniz.-t
  2. git diff <branchA>:<fileA> <branchB>:<fileB>,
    Ya da aynı dosyayı karşılaştırmak istiyorsanızgit diff <branchA> <branchB> -- <file>

4
Belirli bir dizini listelemek istiyorsanız, iki nokta üst üste ve ardından dalın yolunu ekleyebilirsiniz, örn: git ls-tree -r - yalnızca ad master: dizin / yol / ad
miller goril

27

Aynı dosyayı farklı dallardan karşılaştırmak için:

git diff branch_1..branch_2 file.txt

Bir ağaç nesnesindeki tüm dosyaları listelemek için:

git ls-tree -r branch

"Git: 'ls' bir git komutu değil. Bkz. 'Git --help'." ve git v 2.19.0 kullanıyorum.
Andrew S

1
Sadece değil , sonunda lsunuttunuz -tree:)
Dan Loewenherz

Ah, sanırım ls-ağaç. -Ağacın bir değişim olduğunu düşündüm. Teşekkürler.
Andrew S

25

Yeni dalda eklenen tüm dosyaları listelemek için

git diff --name-only branch1 master

4
Bu, yalnızca yeni dosyaların değil, yalnızca değişen tüm dosyaların adlarını listeler.
Meredith

2

Git v2.1.0 itibarıyla [08/15/14]

Listeleme için, git ls-filesgeçerli dizin / çalışma dizinindeki tüm dosyaları özyinelemeli olarak listelemek için kullanabilirsiniz . Git-SCM Docs / git-ls-files'a başvurabilir veya Git'iman git-ls-files yüklediyseniz ve man sayfalarınız varsa yazabilirsiniz .

Sanki farklı şekillerde dosyaları göstermek için güzel seçenekler vardır cached, staged, deleted, modified, ignoredveya othersiçin izlenmeyen. Aynı zamanda eşleşen desenleri de destekler. Ayrıca sahip --debugarg, kolayca listeleyebilirsiniz creation time, modification time, inode id, owner & group id, sizeve flagsdosyalar için.


İki dalın farkı için, git diff <branch> <other branch>diğer cevaplarda belirtildiği gibi kullanın .


2

Şununla daldaki dosyaları listele git ls-files

  1. Git-scm belgesindegit ls-files anlatılanları deneyin :
# Switch to <branch> of interest
$ git checkout <branch>
# List all files in <branch>
$ git ls-files

Diğer seçenekler için belgelere bakın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.