【发布时间】:2011-04-17 14:39:05
【问题描述】:
有没有办法使用像git ls-files 这样的命令来只显示未跟踪的文件?
我问的原因是因为我使用以下命令来处理所有已删除的文件:
git ls-files -d | xargs git rm
对于未跟踪的文件,我想要类似的东西:
git some-command --some-options | xargs git add
我能够找到git ls-files 的-o 选项,但这不是我想要的,因为它也显示被忽略的文件。我还能够想出以下长而丑陋的命令:
git status --porcelain | grep '^??' | cut -c4- | xargs git add
看来我可以在这里使用更好的命令。如果没有,如何创建自定义 git 命令?
【问题讨论】:
-
能否详细说明为什么需要
git ls-files -d | xargs git rm? -
删除所有 git 通知丢失的文件。我的问题是关于如何进行相关操作 - 添加 git 当前未跟踪的所有文件。我通常会在重命名、合并和/或拆分我的代码文件后同时执行这两项操作。
-
如果它们丢失了,那么它们不是已经被删除了吗?除非...您从其他地方拉出然后您尝试与远程同步...我想我明白了。
-
我已经测试了所有答案,如果有空的未跟踪文件夹,没有人可以找到它。
-
@kittygirl 这是正确的。因为
git仅适用于文件,所以它无法跟踪空文件夹。请改用find . -type d -empty。
标签: git git-status git-rm git-stage git-ls-files