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

Rak*_*kib 60 git recursion

我想添加所有文件,无论是什么:是删除,创建,修改,未跟踪等?我只是不想与git添加所有我的文件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")
Run Code Online (Sandbox Code Playgroud)

然后我把git add -A:

Rakib-MacBook-Pro:my-xcode-practice rakib$ git add -A
Run Code Online (Sandbox Code Playgroud)

然后这里是新的状态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")
Run Code Online (Sandbox Code Playgroud)

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

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

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

Mar*_*air 48

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

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

git submodule foreach --recursive git add -A .
Run Code Online (Sandbox Code Playgroud)

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

git submodule foreach --recursive "git commit -m 'Committing in a submodule'"
Run Code Online (Sandbox Code Playgroud)

(如果您没有嵌套在这些子模块中的其他子模块,则该--recursive选项是不必要的.)

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


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


Pat*_*ott 28

我只是偶然重建了这个.

我将我在另一个文件夹中的项目复制到我的新git仓库中.我不打算将它用作子模块,我打算将它作为新项目的起点.我复制的项目现在是我的主要git仓库的子文件夹.git/.删除subfolder/.git/.

rm -rf subfolder/.git
Run Code Online (Sandbox Code Playgroud)

然后事情仍然很奇怪......

git status
Run Code Online (Sandbox Code Playgroud)

没什么可承诺的.嗯......所有这些文件呢?

我真的不知道如何使用git正确修复此问题,因此我复制了目录,并删除了原始目录.

cp subfolder newsubfolder    
rm -rf subfolder
Run Code Online (Sandbox Code Playgroud)

然后我添加了所有已更改的文件,已提交并已推送.

git add -A
git commit -am 'i did something and there are now files'
git push origin <branchName>
Run Code Online (Sandbox Code Playgroud)

  • 回想起来,似乎我不知道我在做什么,哈哈 - 暴力逼近. (3认同)

Ben*_*Ben 5

对我来说一个非常简单的修复 - 我在项目的子目录中打开了 Git Bash。

打开Bash,在根目录下执行命令修复了这个问题;git add -A .按预期工作。