如何使Git默认使用“add --all”命令?

18

我刚刚遇到了这个消息:

$ git add .
warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
whose behaviour will change in Git 2.0 with respect to paths you removed.
Paths like 'README.md' that are
removed from your working tree are ignored with this version of Git.

* 'git add --ignore-removal <pathspec>', which is the current default,
  ignores paths you removed from your working tree.

* 'git add --all <pathspec>' will let you also record the removals.

Run 'git status' to check the paths you removed from your working tree.

我认为设置 --all 是一个相当明智的默认选项,因为如果有意外添加的内容,我可以进行重置reset。我如何使这种行为成为默认行为?

我认为将 --all 设置为默认值是很合理的,因为如果有意外添加的内容,我可以进行重置reset。我如何使这个行为成为默认行为?


"--all" 不仅仅是添加所有内容。它还会自动添加删除(例如,您从Git中跟踪的工作目录中删除了一个文件),这可能不是您想要的。 - Amber
在“git config --help”中,配置选项不显示任何选项以添加“git add”命令的默认设置。 - abnvp
你可以使用别名作为一种替代方案。 - abnvp
如果您创建了一个新文件,意外地将其添加到索引中,然后重置以将其从索引中删除,则该文件将从您的工作副本中删除。这真的很不方便--它会强制您在对象数据库中搜索悬空对象。最好不要默认添加所有内容。 - Yawar
1
@Yawar 或者,就不要添加不应该存在的文件? - o0'.
@Lohoris - 那基本上就是我说的 :-) - Yawar
2个回答

11

你看到的警告来自提交 ccc663b,该提交本身对提交 45c45e3进行了改进。

第二个提交包含:

git add: 开始准备让 "git add <pathspec>..." 默认为 "-A"

计划最终使 "git add" 假装在命令行上有 pathspec 时给出 "-A"
在解决要移除路径的冲突时,当前的代码会告诉你使用 "git rm $path",但是通过这样的更改,你将能够说“git add $path”(当然,今天你可以做“git add -A $path”)。

因此,在Git 2.0中,git add .将按照你所期望的方式运行,但现在,使用git别名是默认获取此功能的方法。

git config alias.a 'add -A .'

[alias] 
  a = add -A .

此功能现在(2014年3月)已经注册,使用提交160c4b1提交fdc97ab,将在下一个Git 2.0(2014年第二季度)中发布。



8
他们添加了一个关于未来更改默认行为的重要警告信息,但没有配置选项可以说“现在将其设为默认值”(或“好的,我知道了,请停止打扰我”)?这似乎有点令人讨厌。 - blahdiblah
2
@blahdiblah七个月后,它仍然破碎不堪。这可不是个好的选择。 - o0'.

3
使用git,你可以创建别名,所以你可以尝试这样做:
git config --global alias.adall 'add . --all'

在这里使用 "adall" 而不是 "add" 是为了避免一些不必要的添加,但如果您喜欢 "add" 也可以。

配置完成后,您可以通过以下命令添加所有内容:

git adall

1
你需要使用 --all 而不是 -all - AJP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接