[英]Getting a list of all unversioned files in a Git-controlled folder
在 Git 控制的文件夾中獲取未版本控制的文件列表比它需要的要煩人得多。 除非我真的不擅長閱讀手冊頁,否則 Git 似乎不會提供自行執行此操作的工具。
可能有一種更優雅的方式來執行此操作,但這是我為這項任務拼湊起來的一條線,以防其他人需要使用它。
編輯:原來有一種標准的方法可以很好地做到這一點。
git ls-files --other [--exclude-standard]
要么...
git clean -dnx | cut -c 14-
如果您不想看到被忽略的文件,
git clean -dn | cut -c 14-
實際上,如果你使用git clean
和-n
或--dry-run
選項,它將打印出一個--dry-run
跟蹤的列表文件,如果用-f
或--force
選項運行它,它將被刪除。 添加-d
標志包括空的目錄或僅包含未跟蹤文件的目錄。
因此,您可以從git存儲庫中運行此命令:
$ git clean -dn
得到這樣的輸出:
Would remove dir/untracked_file_1.txt
Would remove untracked_file_2.txt
這里有一個額外的好處:它也尊重你的.gitignore文件,但如果添加-X
標志,它將只列出被忽略的文件。
diff <(echo "`git ls-tree -r master | sed 's/.*\t//g'`") <(echo "`find . -type f`") | grep '> .*' | cut -c 3-
哇,這篇文章快 10 年了,對 git 命令行知之甚少:但嘗試這個命令我在我的本地 rempo 中獲得了所有未跟蹤/未版本化的文件:
git status
並像這樣得到 output :
On branch main
Your branch is up to date with 'origin/main'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
/untracked_file_1.xxx
/../untracked_file_2.xxx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.