git是否添加了所有修改,删除和未跟踪的文件?


Answers:


307

尝试:

git add -A

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

git add -A .

另请参阅:差异git add -Agit add .


这对我不起作用...在此讨论中如何显示我的终端输入输出?复制并粘贴我的终端输出作为此讨论的答案?
拉基布2011年

这里是我面临的问题- stackoverflow.com/q/7726131/636762 -请帮助我在这一个请
Rakib

如果您的git版本太旧,这也将无法正常工作。我在运行git 1.5.2.5的服务器上运行脚本。git add -A无法正常工作。从脚本中,未报告任何错误消息。仅从命令行中,我发现-A不是要添加的合法选项。
同义的2012年

但是为什么每次我要提交时都必须添加文件!每次我对文件进行更改时都需要添加它
。– Frade 2015年

3
这就是Git的工作方式。提交之前,必须在临时区域中添加更改。例如,您只能向提交中添加一些文件并为其提供注释,而不是一直都包含所有文件。以下是此操作的简要
Kilanash 2015年

75

尝试

git add -u

u”选项代表更新。这将更新存储库,并实际上从本地副本中已删除的存储库中删除文件。

git add -u [filename]

将删除仅升级到一个文件。推送后,文件将不再位于存储库中。

或者,

git add -A .

相当于

git add .

git add -u .

注意额外的“。” 在git add -Agit add -u


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

git add -A .

另请参阅:差异git add -Agit add .


42

以下答案仅适用于Git 1.x版,但适用于Git 2.x版。

您要git add -A

git add -A 全部阶段;

git add . 新阶段和修改阶段,未删除;

git add -u 修改和删除阶段,没有新的阶段。


请注意,以上内容仅适用于Git1.x。对于git版本2.x,git add -A等效于git add .。请参阅此处以获取更多讨论。
jdhao

27

git add --all git add -A git add -A . 全部阶段

git add . 阶段新和修改,但不删除

git add -u 修改和删除阶段,没有新阶段

git commit -a手段git add -ugit commit -m "message"

编写此命令后,请执行以下步骤:

  1. i
  2. 写你的信息
  3. esc
  4. :wq
  5. enter

git add <list of files> 添加特定文件

git add *.txt 在当前目录中添加所有txt文件

git add docs/*/txt 将所有txt文件添加到docs目录中

git add docs/ 将所有文件添加到docs目录中

git add "*.txt"git add '*.txt'在整个项目中添加所有文件


12

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


看到我关于如何添加已删除文件的答案
Matt Kneiser


5

我编写了G2项目,它是命令行git lover的友好环境。
请从github获得项目-G2 https://github.com/orefalo/g2

它有很多方便的命令,其中之一正是您要查找的命令: freeze

冻结 -将存储库中的所有文件(添加,删除,修改)冻结到暂存区,从而暂存该内容以包含在下一次提交中。还接受特定路径作为参数


5

对于较新版本的Git。

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

警告:'git add --all(或-A)'的行为在树的子目录中没有路径参数,将在Git 2.0中更改,并且不应再使用。要为整个树添加内容,请运行:

git add --all:/(或git add -A:/)

要将命令限制为当前目录,请运行:

git添加--all。(或git add -A。)

对于当前的Git版本,该命令仅限于当前目录。


然后我尝试了下面的工作

git add --all :/

3

从2.0版开始的Git文档中:

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

git add --all :/

要么

git add -A :/

要将命令限制为当前目录,请运行:

git add --all .

要么

git add -A .

2

我使用以下行添加用于暂存所有已修改的文件和新创建的文件,但.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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.