Daftar file dalam repo git lokal?

347

Saya menggunakan Sparkleshare, yang menggunakan Git untuk menyinkronkan file antara laptop saya dan server cadangan saya.

Sekarang saya ingin dapat menelusuri file dan direktori yang saya unggah ke server saya, tetapi saya tidak tahu caranya?

Saya mengerti bahwa Git menggunakan semacam hierarki file khusus dan saya tidak bisa hanya mendaftarkan file saya, kan?

Tetapi bagaimana yang harus saya lakukan untuk mendaftar dan menelusuri file saya?

Daniel Holm
sumber

Jawaban:

568

Perintah ini:

git ls-tree --full-tree -r --name-only HEAD

daftar semua file yang sudah dikomit dilacak oleh repo git Anda.

karlphillip
sumber
338

Coba perintah ini:

git ls-files 

Ini mencantumkan semua file di repositori, termasuk yang hanya dipentaskan tetapi belum dilakukan.

http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html

amadillu
sumber
3
Output yang sama dengan jawaban di atas, tetapi dengan --name-only (Short format). Porselen yang bagus.
Ron E
21
Satu hal yang perlu diperhatikan: jawaban yang diterima bekerja pada repo telanjang, tetapi jawaban ini tidak.
Trebor Rude
1
Perintah Git ini menghasilkan keluaran yang jauh lebih bersih dan sangat ideal jika Anda hanya ingin daftar file yang dilacak oleh Git.
mico
apakah ada cara untuk mendaftar hanya direcotries .. sesuatu seperti git ls-directories ?
Ramesh Pareek
12
Peringatan: jika Anda berada dalam subdirektori, itu hanya mencantumkan file di bawah pohon itu - pertanyaannya menyatakan "semua file dalam repositori" tetapi itu hanya benar jika Anda berada di root repo.
wim
2

git ls-tree --full-tree -r HEADdan git ls-fileskembalikan semua file sekaligus. Untuk proyek besar dengan ratusan atau ribuan file, dan jika Anda tertarik pada file / direktori tertentu, Anda mungkin merasa lebih nyaman untuk menjelajahi direktori tertentu. Anda dapat melakukannya dengan memperoleh ID / SHA-1 dari direktori yang ingin Anda jelajahi dan kemudian gunakan git cat-file -p [ID/SHA-1 of directory]. Sebagai contoh:

git cat-file -p 14032aabd85b43a058cfc7025dd4fa9dd325ea97
100644 blob b93a4953fff68df523aa7656497ee339d6026d64    glyphicons-halflings-regular.eot
100644 blob 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841    glyphicons-halflings-regular.svg
100644 blob 1413fc609ab6f21774de0cb7e01360095584f65b    glyphicons-halflings-regular.ttf
100644 blob 9e612858f802245ddcbf59788a0db942224bab35    glyphicons-halflings-regular.woff
100644 blob 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0    glyphicons-halflings-regular.woff2

Dalam contoh di atas, 14032aabd85b43a058cfc7025dd4fa9dd325ea97 adalah ID / SHA-1 dari direktori yang ingin saya jelajahi. Dalam hal ini, hasilnya adalah bahwa empat file dalam direktori tersebut sedang dilacak oleh repo Git saya. Jika direktori memiliki file tambahan, itu berarti file tambahan itu tidak dilacak. Anda dapat menambahkan file menggunakan git add <file>...tentu saja.

Jaime Montoya
sumber
Anda juga bisa hanya cdke direktori yang Anda minati dan hilangkan --full-tree.
Nathan