簡體   English   中英

獲取 Git 控制的文件夾中所有未版本控制文件的列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM