为什么提交在 github 上可见,但在本地代表中不可见?
why are commits visible on github but not in local rep?
我注意到在执行了一些 git 操作后,一些提交如预期的那样丢失了,但在 github 上仍然可见,但出现错误:This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
重现我所做的:
- 存储库现在是:
A -> B -> C
- 软重置以提交
A
- 重做
B
和 C
作为 B(mod)
和 C(mod)
- 存储库现在是:
A -> B(mod) -> C(mod)
- 强制推送到 github
- 现在提交
B
和 C
在代表历史记录中看不到,但在 github 上可见,但出现上述指定错误
(示例 link 我可以在其中看到它:https://github.com/user/rep/commit/B ;
而 https://github.com/user/rep/commit/B(mod) 出现了预期的修改)
- 可能是什么原因造成的?
- 代表是否包含提交
B
和 C
?如果是,我如何删除 them/clean 代表?
谢谢
分支或标签是应用于单个提交的名称。该提交是一个 named 提交。使提交保持活动状态的是它是父项,或者父项的父项,或者... [等等] 命名提交。
好的。将您的分支重置回 A 意味着分支名称现在适用于 A,而不适用于 B 或 C。因此没有任何东西可以让 B 或 C 保持活动状态。
但它们也不会立即被销毁。政策是这样的提交会一直保留到它们被垃圾收集为止。如果您使用 reflog
,您会发现它们也仍然存在于您的本地计算机上。这就像在你的电脑上你不只是删除一个文件;您将文件放入垃圾箱,稍后清空垃圾箱。好吧,Git 最终清空了垃圾箱。
您可以通过 forcing a garbage collection now 从您的计算机中删除它们。但是你不能在 GitHub 上这样做;它不属于你。如果你只是等待,它们最终会在 GitHub 上被销毁。
如果这件事对您来说很紧急,请获取您的本地存储库并完全删除 GitHub 存储库。创建新的 GitHub 存储库并将您的本地存储库镜像到它。
我注意到在执行了一些 git 操作后,一些提交如预期的那样丢失了,但在 github 上仍然可见,但出现错误:This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
重现我所做的:
- 存储库现在是:
A -> B -> C
- 软重置以提交
A
- 重做
B
和C
作为B(mod)
和C(mod)
- 存储库现在是:
A -> B(mod) -> C(mod)
- 强制推送到 github
- 现在提交
B
和C
在代表历史记录中看不到,但在 github 上可见,但出现上述指定错误
(示例 link 我可以在其中看到它:https://github.com/user/rep/commit/B ;
而 https://github.com/user/rep/commit/B(mod) 出现了预期的修改)
- 可能是什么原因造成的?
- 代表是否包含提交
B
和C
?如果是,我如何删除 them/clean 代表?
谢谢
分支或标签是应用于单个提交的名称。该提交是一个 named 提交。使提交保持活动状态的是它是父项,或者父项的父项,或者... [等等] 命名提交。
好的。将您的分支重置回 A 意味着分支名称现在适用于 A,而不适用于 B 或 C。因此没有任何东西可以让 B 或 C 保持活动状态。
但它们也不会立即被销毁。政策是这样的提交会一直保留到它们被垃圾收集为止。如果您使用 reflog
,您会发现它们也仍然存在于您的本地计算机上。这就像在你的电脑上你不只是删除一个文件;您将文件放入垃圾箱,稍后清空垃圾箱。好吧,Git 最终清空了垃圾箱。
您可以通过 forcing a garbage collection now 从您的计算机中删除它们。但是你不能在 GitHub 上这样做;它不属于你。如果你只是等待,它们最终会在 GitHub 上被销毁。
如果这件事对您来说很紧急,请获取您的本地存储库并完全删除 GitHub 存储库。创建新的 GitHub 存储库并将您的本地存储库镜像到它。