回答:
特定のブランチのすべてのファイルをリストしたい場合、例えばmaster
:
git ls-tree -r master --name-only
この-r
オプションにより、サブディレクトリに再帰して、現在バージョン管理下にある各ファイルを印刷できます。HEAD
代わりにmaster
、他のブランチのリストを取得するように指定することもできます。
これまでに存在したすべてのファイルのリストを取得する場合は、こちらを参照してください。
git log --pretty = format:--name-only --diff-filter = A | ソート-u
git ls-tree -r master --name-only
を必要とせずに、最初のオプションと同じことを行うことに注意してくださいcut
。ああ、現在のブランチにこのリストが必要な場合は、HEAD
代わりに指定できますmaster
。
-
ですか?これにより、いくつかの追加行で、2番目の列にいくつかのファイルが表示されます。
git ls-files
コマンドは何が必要でしょう。
ソース:http : //www.kernel.org/pub/software/scm/git/docs/git-ls-files.html
git ls-files
代わりにgit ls-tree -r master --name-only
確かに簡単です。
git-ls-files
バイナリはありません。コマンドにgit
バイナリがありls-files
ます。ドキュメントへのリンクの内容は正しいですが、技術的には古いバイナリです。
git-commit
、git-init
、git-ls-files
、などのプログラムは、実際にサブコマンドであっても。git-ls-files
おそらくバイナリはありませんでした。その理由はgit foo
、git-foo
バイナリを書き込むことでコマンドを登録できる外部サブコマンドメカニズムと一貫性があるためです。
git ls-files
現在の作業ディレクトリ内のファイルのみを印刷します。
たとえば、ドットcore.worktree = /
ファイルのgitリポジトリ()がある場合、gitルートの外部にファイルがあり、その単純なコマンドは機能しなくなります。
要するに、これは動作します:
git --git-dir "`git rev-parse --git-dir`" \
-C "`git config core.worktree || pwd`" \
ls-files
例:
mkdir ~/dotfiles
cd ~/dotfiles
git config core.worktree /
# Ignore all files by default, else Git will find all files under "/"
echo "*" > .git/info/exclude
# Add files at the git repo's root and somewhere in the work tree
touch README
git add -f README
git add -f /etc/ssh/sshd_config
# `git status` would now print:
# new file: ../../../etc/ssh/sshd_config
# new file: README
git status
git commit -m "Initial commit"
# At this point, `git ls-files` prints only:
# README
git ls-files
# But you can print all files inside the work tree. This will print:
# etc/ssh/sshd_config
# home/yourusername/dotfiles/README
git --git-dir "`git rev-parse --git-dir`" -C "`git config core.worktree || pwd`" ls-files
現在の(シェル)ディレクトリからの相対パスを指定したい場合、これは仕事をします:
alias gls='git ls-tree -r master --name-only HEAD "`git config core.worktree`"'
上記の例では、印刷されます
README
../../../etc/ssh/sshd_config
git ls-files
、現在のディレクトリ以下にすべてが表示されます。リポジトリで削除されたファイルは表示されません。
画像をご覧ください。右側には、パッチとツリーの2つのオプションがあります。ツリーを選択すると、各コミットのフォルダー構造を表示できます。