我已经在Github上删除了一个分支,但是当我向一个同名的分支推送一个新的提交时(假设它应该是新的),它仍然会列出活动,就好像它是以前(删除)的那个一样。我如何才能完全删除Github上的一个分支,这样就不会发生这种情况,或者强制它创建一个同名的新分支?
qco9c6ql1#
当我将一个新的提交推送到一个同名的分支时(假设它应该是新的),它仍然列出活动,就好像它是以前(删除)的活动一样。是的,这就是Git(和Github)中分支的工作方式。在Git中,一个分支只是一个名称(它指向某个提交)。如果你在仓库中删除了一个分支并重新创建它,Git无法知道你刚刚重新创建的分支“feature 1”应该与昨天删除的“feature 1”不同。没有办法解决这个问题。通常的解决方法是 * 不重用分支名称 *。重用分支名称无论如何都是有问题的,因为它很快就会变得令人困惑。所以不要这样做:-)。请注意,如果您愿意,拥有长期运行和不断变化的分支本身并没有什么错-例如,Git本身的开发使用了几个定期变化的长期运行分支("next", "seen"...)。但是,如果删除并重新创建这些分支之一,(这确实可能发生),Git本身不会知道它,因此Git项目明确地记录了这些分支何时以及如何改变,所以开发人员知道。
1条答案
按热度按时间qco9c6ql1#
当我将一个新的提交推送到一个同名的分支时(假设它应该是新的),它仍然列出活动,就好像它是以前(删除)的活动一样。
是的,这就是Git(和Github)中分支的工作方式。
在Git中,一个分支只是一个名称(它指向某个提交)。如果你在仓库中删除了一个分支并重新创建它,Git无法知道你刚刚重新创建的分支“feature 1”应该与昨天删除的“feature 1”不同。
没有办法解决这个问题。通常的解决方法是 * 不重用分支名称 *。重用分支名称无论如何都是有问题的,因为它很快就会变得令人困惑。所以不要这样做:-)。
请注意,如果您愿意,拥有长期运行和不断变化的分支本身并没有什么错-例如,Git本身的开发使用了几个定期变化的长期运行分支("next", "seen"...)。但是,如果删除并重新创建这些分支之一,(这确实可能发生),Git本身不会知道它,因此Git项目明确地记录了这些分支何时以及如何改变,所以开发人员知道。