是否有一种方法可以添加所有文件,无论你对它们做什么,无论是删除,不跟踪,等等?比如承诺。我只是不想每次提交时都必须git add或git rm所有的文件,特别是当我在处理一个大型产品时。


当前回答

从Git 2.0版本开始的文档中:

要为整个树添加内容,运行:

git add --all :/

or

git add -A :/

将命令限制到当前目录,执行:

git add --all .

or

git add -A .

其他回答

对于更新版本的Git。

我尝试了git add -A,然后提示,

警告:'git add——all(或-A)'不带路径参数的行为 在Git 2.0中,树的子目录将会改变,而且不应该改变 不再被使用。要为整个树添加内容,运行: git add——all:/(或git add -A:/) 将命令限制到当前目录,执行: Git add—all。(或git add -A。) 对于当前的Git版本,该命令被限制在当前 目录中。

然后我尝试了下面的工作。

git add --all :/

这是我的选择(在任何bash):

$ git status -s|awk '{ print $2 }'|xargs git add

重置

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD

Try

git add -u

“u”选项代表update。这将更新回购,并实际删除您在本地副本中删除的回购文件。

git add -u [filename]

只删除一个文件。推送后,该文件将不再在repo中。

另外,

git添加-A。

等于

git add .

git add -u .

注意多出来的'。'在git上添加-A和git添加-u


警告:从git 2.0(2013年年中)开始,这将始终在整个工作树上部署文件。 如果你想在你的工作树的当前路径下运行文件,你需要使用:

git add -A .

另见:git add -A和git add的区别。

我使用下面的行来添加所有修改和新创建的文件,不包括.gitignore中列出的文件:

git add $(git ls-files -mo --exclude-standard)

($()语法用于bash shell)。我猜命令行选项-mod也应该添加删除的文件…或者,如果你的文件名中嵌入了空白,下面的一行代码应该可以做到:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add

我不确定它是否会添加删除的文件,但git添加。从根目录添加所有未跟踪的文件。