将不同的分支推送到Github

3

我有一个本地的主分支,在尝试了一些东西后,决定回到X提交,即4个以前的提交,然后我创建了一个新的分支“master2”,这现在是我的主分支。 当我尝试为不同的分支进行新的推送(到我的GitHub上)时,它会抛出一个错误。

 git push -u origin master2
 ! [rejected]        master2 -> master2 (non-fast-forward)

我该如何将这个新分支推送到GitHub?

Github上的当前情况如何?分支存在吗?它在哪个提交上? - Joost
2个回答

3

我不确定我完全理解了你的问题,但是非快进式推送(也就是你的情况)可以通过在推送命令中添加-f开关(强制)来解决:

git push -fu origin master2

(然而,在Github上使用强制推送被认为是不好的做法,并且有其原因:你可能会搞乱其他人的仓库,所以只有当你确定没有人将存储库中的master2分支指向强制推送之前的状态时,才应该这样做)


2
然而,你可能不应该这样做。 - SLaks

0

“non-fast-forward”错误告诉您在您的GitHub存储库中已经存在master2分支。我建议您检查此分支上有哪些提交。您有两个选择:

  1. 将 GitHub 版本的 master2 与本地版本合并:

    git pull origin master2
    

    如果没有冲突,那么你可以直接推送:

    git push origin master2
    

    如果第一个命令有冲突,那么你需要解决冲突并提交更改:

    git commit
    

    然后就可以像之前一样推送了。

  2. 你也可以直接覆盖现有的 master2 分支:

    git push -f origin master2

    警告:但是要非常小心,因为这会给已经拉取并合并或提交到 master2 分支的任何人带来麻烦。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接