我最近在GitHub上修改了一个软件的版本。我是这样做的:首先通过提交修复一个bug,然后再次通过提交修改软件的版本。然后我为最后一次提交创建了一个标签,并将这个标签推送到GitHub。然而,这让我感到惊讶,因为我在GitHub上收到了一个警告,上面写着
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
字符串
为什么会这样?我发现有些人也有同样的问题,例如This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.,但是,我不明白他们在说什么,也不明白为什么会发生这种情况。
下面是导致它的命令序列。
git add setup.py
git commit -m "fix(setup): issue #123"
git push origin
git add my_package/__init__.py setup.cfg
git commit -m "build(version): bump"
git tag v3.1.1
git push origin v3.1.1
型
我希望当我推送标签时,最后一次提交也会被推送到主分支,标签也会指向它。但是这并没有发生。为什么?
以下是git log --decorate --graph --all --oneline
的前8行输出
* 2c77966 (HEAD -> master, origin/master, origin/HEAD) bump version
| * 14ab665 (tag: v1.3.1) build(version): bump
|/
* 8ce7bc9 bla
* 46868f7 bla
* 22928dc bla
* 9012092 bla
* 18cdd7e bla
* f40ee30 bla
型
1条答案
按热度按时间toe950271#
你推了标签,是的,提交也随之而来,但你没有把更改推到分支。
Git中的分支与其他版本控制系统有很大的不同。分支仅仅是指向分支中最新提交的标签。提交不属于分支,我们称提交为可由分支和标签进行验证。
字符串
在这个例子中,commit k可以被branch1和branch2替换。Commit k当前也是branch1的头。
你的本地回购看起来像这样。
型
因为你只推送了标签,而没有推送对分支的更改,所以Github的repo副本看起来像这样。
型
这个分支位于你最后一个
git push
的上一次提交。Github认为v3.1.1提交不是任何分支的一部分。您可以通过推送分支来解决这个问题。
git push
将把当前的分支推送到它的远端。