gpt4 book ai didi

git add -A 不会在目录中添加所有修改过的文件

转载 作者:IT王子 更新时间:2023-10-29 00:41:07 25 4
gpt4 key购买 nike

无论是删除、创建、修改还是未跟踪等,我都想添加所有文件?我只是不想 git add ALL 我的文件 EVERY TIME。我尝试了 git add -A 但它不是在文件夹中添加修改后的文件。

这是我项目中的初始 git status:

Rakib-MacBook-Pro:my-xcode-practice rakib$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: BankAccount (modified content, untracked content)
# modified: BuckysButtons (modified content, untracked content)
# modified: multiview (modified content, untracked content)
# modified: rotator (modified content, untracked content)
# modified: segmentedControls (modified content, untracked content)
#
no changes added to commit (use "git add" and/or "git commit -a")

然后我把 git add -A:

Rakib-MacBook-Pro:my-xcode-practice rakib$ git add -A

然后这是 AFTER 执行 git add -A 时的新状态:

Rakib-MacBook-Pro:my-xcode-practice rakib$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: BankAccount (modified content, untracked content)
# modified: BuckysButtons (modified content, untracked content)
# modified: multiview (modified content, untracked content)
# modified: rotator (modified content, untracked content)
# modified: segmentedControls (modified content, untracked content)
#
no changes added to commit (use "git add" and/or "git commit -a")

可以看到git status没有变化。我该如何解决这个问题?

我也试过 git add . - 它没有帮助

我也试过 git add * - 它没有帮助

最佳答案

这里的问题是 BankAccount , BuckysButtons , multiview , rotatorsegmentedControls都是 git 子模块,它们在很多方面都像独立的存储库。

如果你想做的是运行git add -A .在每个子模块中,您可以:

git submodule foreach --recursive git add -A .

然后你可以在每个子模块中创建一个提交:

git submodule foreach --recursive "git commit -m 'Committing in a submodule'"

(如果您没有在这些子模块中嵌套其他子模块,则不需要 --recursive 选项。)

但是,我不建议这样做。您应该仔细依次更改每个子模块,并考虑如何更新它们,将每个子模块视为一个独立的存储库。然后只有当您测试了整个项目与每个子模块的新版本一起工作时,才在主项目中提交这些新的子模块版本。


更新:从您在下面的评论中引用的错误消息看来,您已经直接添加了这些其他 git 存储库,而不是作为子模块。如果您将另一个 git 存储库复制到您的存储库中,然后只使用 git add,就会发生这种情况。暂存它,而不是用 git submodule add <REPOSITORY-URL> 添加它.如果你真的打算将它们存储为子模块,我建议将它们移出你的存储库,提交删除,然后使用 git submodule add 将它们正确添加为子模块。

关于git add -A 不会在目录中添加所有修改过的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7726131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com