当前位置:  开发笔记 > 开发工具 > 正文

在rebase之后,Git分支在远程后面

如何解决《在rebase之后,Git分支在远程后面》经验,为你挑选了1个好方法。

我遇到了git的问题.我想hotfixmaster本地和远程两个地方重新分支一个分支,所以这就是我所做的.

git checkout hotfix
git pull hotfix              #just getting someone changes
git fetch origin master
git rebase origin/master

经过很长一段时间解决冲突和重建项目后,我的工作正常,所以我必须将更改上传到远程分支.

git push origin hotfix

这就是git认为:

$ git push origin login2
To https://name@bitbucket.org/***/***.git
 ! [rejected]        hotfix -> hotfix (non-fast-forward)
error: failed to push some refs to 'https://name@bitbucket.org/***/***.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我试过了:

git pull --rebase

但这会产生与其他反弹之前相同的冲突,并且它不应该.

我知道我总能这样做:

git push -f

但我会避免被迫推动,因为我与另一个人合作.我想知道我做错了什么.我以为就是这样.

PD.我跑了gitk,似乎没有遥控器的引用origin/hotfix,只是本地hotfix出现.

谢谢!

编辑:我想当我执行rebase时,最后一次提交分支更改以应用rebase更改,这就是为什么它有另一个sha1提交ID.我做了一个拉取覆盖我的本地文件.

git pull --strategy=ours origin hotfix

TheGeorgeous.. 6

您需要了解的关于rebase的一件事是:

Git将更改每个提交的SHA哈希值,而不是新基本分支的一部分.

这意味着在重新绑定本地分支后,始终会与上游分支发生冲突,唯一的方法就是强制推送到上游.

一种常见的做法是不对已被推送到上游的提交进行转换.如果只有一个人在分支机构工作,重新定位仍然可以.

在这种情况下,您没有选项,只能进行强制推送.在将来,建议您将工作分支与您的合作者分开,并将混合使用rebase和merge策略来分享您的工作



1> TheGeorgeous..:

您需要了解的关于rebase的一件事是:

Git将更改每个提交的SHA哈希值,而不是新基本分支的一部分.

这意味着在重新绑定本地分支后,始终会与上游分支发生冲突,唯一的方法就是强制推送到上游.

一种常见的做法是不对已被推送到上游的提交进行转换.如果只有一个人在分支机构工作,重新定位仍然可以.

在这种情况下,您没有选项,只能进行强制推送.在将来,建议您将工作分支与您的合作者分开,并将混合使用rebase和merge策略来分享您的工作

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有