Git:仅列出“未跟踪”文件(也是自定义命令) 4年前

有没有办法使用像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命令?


#1楼

git add -A -n会做你想要的。 -A将所有未跟踪文件到回购, -n使它成为dry-run ,没有进行附加,但被赋予状态输出,列出了_将_被添加的每个文件。


#2楼

我认为这与原版海报意图相同:

git add .


#3楼

一切都很简单

要获取所有未跟踪文件的列表,请使用命令_git status_选项_-u_ ( - untracked-files)

git status -u

#4楼

在寻找可能添加的文件时。 git show的输出就是这样,但它还包含很多其他内容。 以下命令对于获取相同的文件列表非常有用,但没有其他所有内容。

git status --porcelain | grep "^?? " | sed -e 's/^[?]* //'

当在管道中组合以查找与特定模式匹配的文件然后将其传递给git add时,这非常有用。

git status --porcelain | grep "^?? "  | sed -e 's/^[?]* //' | \
egrep "\.project$|\.settings$\.classfile$" | xargs -n1 git add

#5楼

如果您只想删除未跟踪的文件,请执行以下操作:

git clean -df

如果您还想包含特别忽略的文件,请将x添加到该文件中。 我用git clean -dfx全天_很多_ 。

您可以通过编写一个名为git-whatever的脚本来创建自定义git,并将其放在路径中。

image
mayaka
我以为我和别人不一样,其实我只是另外一种形式的奴隶。
1
发布数
0
关注者
801
累计阅读

热门教程文档

Spring Boot
24小节
C
14小节
Typescript
31小节
Python
76小节
Gin
17小节
广告