ローカルgitリポジトリにファイルをリストしますか?


347

私はSparkleshareを使用しています。これは、Gitを使用してラップトップとバックアップサーバーの間でファイルを同期します。

サーバーにアップロードしたファイルとディレクトリを参照できるようにしたいのですが、方法がわかりません。

Gitがある種の特別なファイル階層を使用していて、ファイルをリストするだけではできないことを理解していますよね?

しかし、それらをリストしてファイルを参照するにはどうすればよいですか?

回答:


567

このコマンド:

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

gitリポジトリによって追跡されている、すでにコミットされているすべてのファイルをリストします。


338

このコマンドを試してください:

git ls-files 

これにより、ステージングされているがまだコミットされていないファイルを含む、リポジトリ内のすべてのファイルが一覧表示されます。

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


3
上記の回答と同じ出力ですが、-name-only(短い形式)を使用します。素敵な磁器。
Ron E

21
注意すべきことの1つ:受け入れられた回答は最小限のリポジトリで機能しますが、この回答は機能しません。
Trebor Rude

1
このGitコマンドを使用すると、出力がより明確になり、Gitによって追跡されるファイルのリストだけが必要な場合に最適です。
mico

direcotriesだけをリストする方法はありますかgit ls-directories
Ramesh Pareek、2016年

12
警告:サブディレクトリにいる場合は、そのツリーの下にあるファイルのみが一覧表示されます。質問には「リポジトリ内のすべてのファイル」と記載されていますが、これは、リポジトリのルートにいる場合にのみ当てはまります。
2017年

2

git ls-tree --full-tree -r HEADそしてgit ls-files一度にすべてのファイルを返します。数百または数千のファイルを含む大規模なプロジェクトの場合、特定のファイル/ディレクトリに関心がある場合は、特定のディレクトリを探索する方が便利な場合があります。これを行うには、探索するディレクトリのID / SHA-1を取得して、を使用しますgit cat-file -p [ID/SHA-1 of directory]。例えば:

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

上の例で、14032aabd85b43a058cfc7025dd4fa9dd325ea97は、調べたいディレクトリのID / SHA-1です。この場合、結果として、そのディレクトリー内の4つのファイルが私のGitリポジトリーによって追跡されていました。ディレクトリに追加のファイルがある場合は、それらの追加のファイルが追跡されていなかったことを意味します。git add <file>...もちろんファイルを追加することができます。


またcd、興味のあるディレクトリに移動して省略できます--full-tree
ネイサン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.