17

と同じ方法で出力する方法を探していますls-treeが、私の作業ディレクトリです。私が実行するたびにgit ls-tree .、それは言いますfatal: Not a valid object name .

4

3 に答える 3

25

git ls-treegitrefでのみ機能します。例:ls-tree HEADまたはls-tree 1.9.1

試してみてくださいgit ls-files。おそらく、-sおよび/または-mフラグが必要です。


ご指摘のとおりgit ls-files -s、インデックス内のファイル(つまり、ステージングされたファイル)が一覧表示されます。

理論的には、インデックスをいじって実行しgit ls-files -s、復元してみることができます。たとえば、

git commit
git add .
git ls-files -s
git reset .
git reset --soft HEAD^

正しいようで、簡単なテストで動作しましたが、すべてのファイルを食い尽くす可能性があります。

于 2012-04-10T04:39:47.737 に答える
1

git リポジトリに触れていないものを見つけようとしました。

これはgitだけではなく、「grep」のようなLinuxに依存しています

#from root of repo dir
git ls-tree -r HEAD 
#other dirs
git ls-tree -r HEAD | grep <relative_path_to_repo_root>/
# eg
git ls-tree -r HEAD | grep src/

レポルートのサブディレクトリで作業している次の(gitのみ)も見つかりました

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

ただし、man ページ (man git-ls-tree) は git ロジックを刺激します

   --full-name
       Instead of showing the path names relative to the current working directory, show the full path names.

   --full-tree
       Do not limit the listing to the current working directory. Implies --full-name.
于 2021-12-13T13:48:03.410 に答える