我有两个存储库,即A
和B
。我错误地将回购B复制到了计算机上的A中。我从存储库B中删除了所有代码,但是当我在源上从A推送并合并代码时,它还显示了Github存储库上的子项目提交B
。
我想从源数据库中的主项目中删除子项目提交。这些步骤有效吗?
1. rmdir B (on my local repo A)
2. Pushing my repo A to origin
3. Merging
由于GitHub在A repo中将B显示为灰色文件夹,这意味着B已作为子模块添加到A。该灰色文件夹是gitlink,special entry in the index。
请参见“ How do I remove a Git submodule?”:在本地执行git submodule deinit asubmodule
和git rm B
(B
,不带任何斜杠B/
)。然后推送到GitHub,B
应该消失了。
假设您要删除以diff形式显示的提交
-Subproject commit <old commit hash>
+Subproject commit <new commit hash>
转到子模块目录,然后
git checkout <old commit hash>
返回主项目:
git add .
git commit --amend --no-edit
git push