Adding Only Untracked Files
我在Git中发现一个非常有用的命令是
有没有一种方法只将未跟踪的文件添加到索引中而不单独标识它们?我在帮助文档中看不到任何明显的内容,但也许我错过了?
谢谢。
使用
用一个命令来完成:
*
q
"|git add -i
1 | git add $(git ls-files -o --exclude-standard) |
不完全是你想要的,但我觉得这很有帮助:
1 | git add -AN |
。
将所有文件添加到索引,但不添加其内容。未跟踪的文件现在表现得好像被跟踪了一样。它们的内容将显示在
您可以将此添加到~/.gitconfig文件中:
1 2 | [alias] add-untracked = !"git status --porcelain | awk '/\\?\\?/{ print $2 }' | xargs git add" |
号
然后,从命令行运行:
1 | git add-untracked |
人们曾建议通过管道将
安全的方法是使用:
1 | git ls-files -o --exclude-standard -z | xargs -0 git add |
。
其中
1 | git ls-files -o --exclude-standard $(git rev-parse --show-toplevel) |
要在树中添加所有未跟踪的文件,请执行以下操作:
1 | git ls-files -o --exclude-standard $(git rev-parse --show-toplevel) | xargs git add |
。
我试过了,结果成功了:
1 | git stash && git add . && git stash pop |
。
这里有很多好的提示,但在PowerShell中,我无法让它工作。
我是一个.NET开发人员,我们主要使用Windows操作系统,因为我们没有那么多地使用.NET核心和跨平台,所以我对Git的日常使用是在Windows环境中,在Windows环境中使用的shell通常是PowerShell,而不是Git Bash。
可以按照以下过程创建一个别名函数,用于在Git存储库中添加未跟踪的文件。
在PowerShell的$profile文件中(如果丢失-可以运行:新项目$profile)
记事本$profile
现在添加此PowerShell方法:
1 2 3 | function AddUntracked-Git() { &git ls-files -o --exclude-standard | select | foreach { git add $_ } } |
保存$profile文件并将其重新加载到PowerShell中。然后重新加载$profile文件:. $简介
这类似于*nix环境中的source命令imho。
所以下一次,如果你是开发人员,在Windows中针对git repo使用PowerShell并且只想包括可以运行的未跟踪文件:
添加未跟踪的git
这遵循PowerShell约定,其中包含动词名词。
如果您有数千个未跟踪的文件(呃,不要问),那么添加
如果您也在Windows上(不要问2:-)并且需要使用PowerShell添加所有未跟踪的文件,则可以使用以下命令:
1 | git ls-files -o --exclude-standard | select | foreach { git add $_ } |
添加所有未跟踪的文件git命令是
git add -A
号
另外,如果要获得有关各种可用选项的详细信息,可以键入command
git add -i
号
使用此命令,您将获得更多选项,包括添加所有未跟踪文件的选项,如下所示:
$ git add -i warning: LF will be replaced by CRLF in README.txt. The
file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in package.json.* Commands * 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8:
help What now> a
号