6

我有两个存储库,即AB. 错误地我在我的机器上克隆了 A 里面的 repo B。我从存储库 B 中删除了所有代码,但是当我从源 A 推送并合并我的代码时,它还显示了BGithub 存储库上的子项目提交。

我想从我的主人那里删除子项目提交。这些步骤会奏效吗?

1. rmdir B (on my local repo A) 2. Pushing my repo A to origin 3. Merging

4

2 回答 2

11

由于 GitHub 将 B 显示为 A 存储库中的灰色文件夹,这意味着 B 已作为子模块添加到 A。
那个灰色文件夹是一个gitlink,索引中的一个特殊条目

请参阅“如何删除 Git 子模块? ”:
在本地,执行git submodule deinit asubmodulegit rm BB不带任何尾随斜杠B/)。
然后推送到 GitHub,B应该就没了。

于 2015-05-16T12:50:54.817 回答
3

Assuming you want to remove commit which shown in diff like

-Subproject commit <old commit hash>
+Subproject commit <new commit hash>

go to submodule directory, than

git checkout <old commit hash>

return back to main project:

git add .
git commit --amend --no-edit
git push
于 2020-04-06T06:01:55.383 回答