我有两个存储库,即A
和B
。错误地,我在我的机器上克隆了A里面的回购B.我从repo B中删除了所有代码但是当我从A on origin推送并合并我的代码时,它还在Github repo上显示了一个子项目commit B
。
我想从我的主人那里删除子项目提交。这些步骤会起作用吗?
1. rmdir B (on my local repo A)
2. Pushing my repo A to origin
3. Merging
答案 0 :(得分:7)
由于GitHub在A仓库中将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
应该消失。
答案 1 :(得分:0)
假设您要删除以差异形式显示的提交
-Subproject commit <old commit hash>
+Subproject commit <new commit hash>
转到子模块目录,
git checkout <old commit hash>
返回主项目:
git add .
git commit --amend --no-edit
git push