有没有办法添加所有文件,无论您对它们做什么,无论是删除、未跟踪等吗?就像提交一样。我只是不想每次提交时都必须git add
或git rm
所有文件,尤其是在我处理大型产品时。
10 回答
尝试:
git add -A
警告:从 git 2.0(2013 年中)开始,这将始终在整个工作树上暂存文件。
如果要在工作树的当前路径下暂存文件,则需要使用:
git add -A .
尝试
git add -u
" u
" 选项代表更新。这将更新存储库并实际从存储库中删除您在本地副本中删除的文件。
git add -u [filename]
仅对一个文件进行删除。推送后,该文件将不再位于存储库中。
或者,
git add -A .
相当于
git add .
git add -u .
注意额外的“。” 开git add -A
和git add -u
警告:从 git 2.0(2013 年中)开始,这将始终在整个工作树上暂存文件。
如果要在工作树的当前路径下暂存文件,则需要使用:
git add -A .
以下答案仅适用于 Git 版本 1.x,但适用于 Git 版本 2.x。
你想要git add -A
:
git add -A
阶段所有;
git add .
新阶段和修改阶段,没有删除;
git add -u
阶段修改和删除,没有新的。
git add --all
或 git add -A
或 git add -A .
全部阶段
git add .
新和修改但未删除的阶段
git add -u
阶段修改和删除但没有新的
git commit -a
手段git add -u
和git commit -m "message"
编写此命令后,请按照下列步骤操作:-
- 按i
- 写下你的信息
- 按esc
- 按:wq
- 按enter
git add <list of files>
添加特定文件
git add *.txt
添加当前目录下的所有txt文件
git add docs/*/txt
在 docs 目录中添加所有 txt 文件
git add docs/
在 docs 目录中添加所有文件
git add "*.txt"
或git add '*.txt'
添加整个项目中的所有文件
我不确定它是否会添加已删除的文件,但git add .
会从根目录添加所有未跟踪的文件。
这是我的选择(在任何 bash 中):
$ git status -s|awk '{ print $2 }'|xargs git add
重置
$ git status -s|awk '{ print $2 }'|xargs git reset HEAD
我编写了 G2 项目,这是一个为命令行 git 爱好者提供的友好环境。
请从 github 获取项目 - G2 https://github.com/orefalo/g2
它有一堆方便的命令,其中一个正是您正在寻找的:freeze
freeze - 将存储库中的所有文件(添加、删除、修改)冻结到暂存区域,从而暂存该内容以包含在下一次提交中。还接受特定路径作为参数
对于较新版本的 Git。
我试过git add -A
了,这提示,
警告:在 Git 2.0 中,没有来自树的子目录的路径参数的 'git add --all (or -A)' 的行为将发生变化,不应再使用。要为整个树添加内容,请运行:
git add --all :/ (或 git add -A :/)
要将命令限制到当前目录,请运行:
混帐添加 --all 。(或 git add -A 。)
对于当前的 Git 版本,该命令仅限于当前目录。
然后我在下面尝试了哪个有效。
git add --all :/
我使用以下行添加以暂存所有已修改和新创建的文件,不包括 .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
从 2.0 版开始的 Git 文档:
要为整个树添加内容,请运行:
git add --all :/
或者
git add -A :/
要将命令限制到当前目录,请运行:
git add --all .
或者
git add -A .