使用git推送标签被拒绝为非快进

时间:2013-03-15 11:41:10

标签: git

Git pull works没有显示任何更新:

sh-3.2$ git pull
Already up-to-date.

当我进行git推送时出现错误:

sh-3.2$ git push --tags
To user@example.com:some/git/repo
 ! [rejected]        DEVEL_BLEEDINGEDGE -> DEVEL_BLEEDINGEDGE (non-fast-forward)
error: failed to push some refs to 'user@example.com:some/git/repo'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

Rebasing给出了同样的结果:

sh-3.2$ git pull --rebase
Current branch devel is up to date.

DEVEL_BLEEDINGEDGE标记用于我的每日自动构建脚本,每次我需要使用这些脚本部署一些新东西时我会移动该标记:

git tag -f DEVEL_BLEEDINGEDGE

那么,为什么我不能推回我的标签呢?

我偶尔会得到这个错误,对于其他我也不会移动的标签。

1 个答案:

答案 0 :(得分:10)

看起来你想要移动标签。标签旨在标记项目的特定状态,例如1.0版。这不应该每天更改。如果你想改变(移动)一个标签,你可以使用-f(强制)开关两次来完成:

git tag -f TAG_I_MOVE
git push --tags -f

在你的情况下,我会使用分支来标记“开发人员前沿”

git branch -f DEVEL_BLEEDINGEDGE HEAD
git push --tags

只要您在同一历史路径中向前移动DEVEL_BLEEDINGEDGE分支,就不需要“-f”开关进行推送。