ChatGPT解决这个技术问题 Extra ChatGPT

Git添加所有修改,删除和未跟踪的文件?

有没有办法添加所有文件,无论您对它们做什么,无论是删除、未跟踪等吗?就像提交一样。我只是不想每次提交时都必须 git addgit rm 我的所有文件,尤其是在我处理大型产品时。


C
Community

尝试:

git add -A

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

git add -A .

另请参阅:Difference of git add -A and git add .


这对我不起作用......我如何在这个讨论中显示我的终端输入输出?复制粘贴我的终端输出作为此讨论的答案?
这是我面临的问题 - stackoverflow.com/q/7726131/636762 - 请帮我解决这个问题
如果您的 git 版本旧,这也不起作用。我在运行 git 1.5.2.5 的服务器上运行脚本。 git add -A 不工作。从脚本中,没有报告错误消息。只有从命令行我才发现 -A 不是添加的合法选项。
但是为什么我每次要提交时都必须添加文件!?每次我对文件进行更改时,我都需要添加它..
这就是 Git 的工作方式。您必须在提交之前将更改添加到暂存区域。例如,您可以只将一些文件添加到提交并为其提供注释,而不是一直添加所有文件。以下是对它的作用及其原因的方便解释:gitready.com/beginner/2009/01/18/the-staging-area.html
C
Community

尝试

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 .

另请参阅:Difference of git add -A and git add .


j
jdhao

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

您想要 git add -A

git add -A 个阶段全部;

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

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


请注意,上述内容仅适用于 Git 1.x。对于 git 版本 2.x,git add -A 等同于 git add .。有关更多讨论,请参阅 here
J
Jonathan

git add --all git add -A git add -A . 所有阶段

git add . 新阶段 &已修改未删除

git add -u 阶段修改 &已删除没有新的

git commit -a 表示 git add -ugit commit -m "message"

编写此命令后,请按照下列步骤操作:-

按我写你的消息按esc按:wq按回车

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' 添加整个项目中的所有文件


b
bcherry

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


请参阅我关于如何添加已删除文件的答案
P
Parag Tyagi

对于较新版本的 Git。

我尝试了 git add -A 并提示,

警告:在 Git 2.0 中,没有来自树的子目录的路径参数的 'git add --all (or -A)' 的行为将发生变化,不应再使用。要为整个树添加内容,请运行: git add --all :/(或 git add -A :/)要将命令限制为当前目录,请运行: git add --all 。 (或 git add -A 。)对于当前的 Git 版本,该命令仅限于当前目录。

然后我在下面尝试了哪个有效。

git add --all :/

G
Giacomo Tesio

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

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

重置

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

O
Olivier Refalo

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

它有一堆方便的命令,其中一个正是您正在寻找的:freeze

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


M
Maurizio Loreti

我使用以下行添加以暂存所有已修改和新创建的文件,不包括 .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

H
HOKBONG

从 2.0 版开始的 Git 文档:

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

git add --all :/

或者

git add -A :/

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

git add --all .

或者

git add -A .