我正在与三个分支机构合作
master
develop
feature-new-theme
feature-new-theme
是开发的一个分支。
在feature-new-theme
我已在bootswatch
目录中添加了一个名为protected/vendor/bootswatch
的新git子模块。
直到今天一切都好。
我做了一个'冻结提交&#39 ;:使用消息feature-new-theme
提交'freeze'
上的所有文件和子目录。因此,我没有任何未跟踪的内容,也没有改变任何提交。
然后我创建了一个分支master
的修补程序分支。
git checkout master
git checkout -b hotfix-1.35.3 master
当我执行git status
时,我看到protected/vendor/bootswatch
未跟踪。为什么?!
所以我使用此内容<{1}}创建了一个.gitignore
文件
protected/vendor
我已将bootswatch/
提交到.gitignore
,但我仍然看到未跟踪的目录执行hotfix
。
git status
为什么呢?如何以正确的git方式从没有子模块的分支切换到另一个分支?
编辑以回复常见问题:
git status
# On branch hotfix-1.35.5
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# protected/vendor/bootswatch/
从未合并到feature-new-theme
,因为新功能只会合并到master
,并且只有在发布阶段我们才会创建develop
分支,版本,执行小修补,然后将release-x.y.z
分支合并到release-x.y.z
并导入master
develop
和master
分支上都未跟踪答案 0 :(得分:2)
好吧,因为master
和hotfix
不需要,您可以轻松删除它。
它不会影响您的feature-new-theme
分支(如果您在结账后submodule init/update
),它将清理您当前的回购状态。
当然,它不是&#34;最好的可能方式&#34;,因为它需要做非git的东西。当然,您也可以尝试使用git clean
。
您可以在互联网上找到有关此行为的投诉,例如here或here。
此链接提供了一些信息:git clean is not removing a submodule added to a branch when switching branches
所以git clean
的方式是:
git clean -f -f -d