コマンドラインgitを使用して、リポジトリで追跡されているファイルのリストをgitに表示させるにはどうすればよいですか?
質問する
273439 次
5 に答える
783
ブランチで現在追跡されているすべてのファイルを一覧表示する場合は、次のmaster
コマンドを使用できます。
git ls-tree -r master --name-only
これまでに存在したファイルのリスト(つまり、削除されたファイルを含む)が必要な場合:
git log --pretty=format: --name-only --diff-filter=A | sort - | sed '/^$/d'
于 2013-03-25T03:09:47.250 に答える
231
gitによって管理されるファイルは。で示されgit ls-files
ます。そのマニュアルページをチェックしてください。
于 2013-03-25T03:09:57.593 に答える
44
受け入れられた回答には、現在のディレクトリのツリー内のファイルのみが表示されます。(現在のブランチで)コミットされた追跡済みファイルをすべて表示するには、次を使用します。
git ls-tree --full-tree --name-only -r HEAD
--full-tree
リポジトリのルートディレクトリにいるかのようにコマンドを実行します。-r
サブディレクトリに再帰します。と組み合わせると--full-tree
、コミットされ、追跡されたすべてのファイルが得られます。--name-only
ファイルパスだけが必要な場合のSHA/権限情報を削除します。HEAD
追跡され、コミットされたファイルのリストが必要なブランチを指定します。これをmaster
または他のブランチ名に変更できますが、これHEAD
は現在チェックアウトしているコミットです。
これは、受け入れられた回答から〜duplicate質問https://stackoverflow.com/a/8533413/4880003への方法です。
于 2019-03-09T20:16:18.387 に答える
7
これで色付きの出力が必要になる場合があります。
私はこのワンライナーを使用して、現在のブランチの現在のディレクトリにある追跡されたファイルとディレクトリを一覧表示します。
ls --group-directories-first --color=auto -d $(git ls-tree $(git branch | grep \* | cut -d " " -f2) --name-only)
エイリアスとして追加することをお勧めします。
alias gl='ls --group-directories-first --color=auto -d $(git ls-tree $(git branch | grep \* | cut -d " " -f2) --name-only)'
ファイルを再帰的にリストする場合:
'ls' --color=auto -d $(git ls-tree -rt $(git branch | grep \* | cut -d " " -f2) --name-only)
そしてエイリアス:
alias glr="'ls' --color=auto -d \$(git ls-tree -rt \$(git branch | grep \\* | cut -d \" \" -f2) --name-only)"
于 2019-08-03T22:11:19.897 に答える
0
既存の回答に基づいてtree
、少しきれいに表示するために使用できます。
git ls-tree --full-tree --name-only -r HEAD | tree --fromfile .
あなたはおそらくこれをページ付けしたいと思うでしょう:
git ls-tree --full-tree --name-only -r HEAD | tree -C --fromfile . | ${PAGER:-less}
これは確かにgitconfigのtree
エイリアスとしての場所に値します:)
于 2021-11-07T02:42:14.640 に答える