Git 变基后远程分支
Git branch behind remote after rebase
我遇到了 git 的问题。
我想在本地和远程 master
上重新设置一个分支 hotfix
,所以这就是我所做的。
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
。
谢谢!
编辑: 我想当我对分支更改的最后一次提交进行变基以应用变基更改时,这就是它具有另一个 sha1 提交 ID 的原因。我拉取覆盖了我的本地文件。
git pull --strategy=ours origin hotfix
关于变基你需要知道的一件事是:
Git 将更改不属于新基础分支的每个提交的 SHA 哈希值。
这意味着在你 rebase 你的本地分支之后总是会与上游分支发生冲突,唯一的解决方法是强制推送到你的上游。
一种常见的做法是不对已推送到上游的提交进行变基。如果只有一个人在一个分支上工作,那么变基仍然可以。
在这种情况下,您别无选择,只能用力推动。将来建议将您和您的合作者的工作分支分开,并混合使用变基和合并策略来共享您的工作
我遇到了 git 的问题。
我想在本地和远程 master
上重新设置一个分支 hotfix
,所以这就是我所做的。
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
。
谢谢!
编辑: 我想当我对分支更改的最后一次提交进行变基以应用变基更改时,这就是它具有另一个 sha1 提交 ID 的原因。我拉取覆盖了我的本地文件。
git pull --strategy=ours origin hotfix
关于变基你需要知道的一件事是:
Git 将更改不属于新基础分支的每个提交的 SHA 哈希值。
这意味着在你 rebase 你的本地分支之后总是会与上游分支发生冲突,唯一的解决方法是强制推送到你的上游。
一种常见的做法是不对已推送到上游的提交进行变基。如果只有一个人在一个分支上工作,那么变基仍然可以。
在这种情况下,您别无选择,只能用力推动。将来建议将您和您的合作者的工作分支分开,并混合使用变基和合并策略来共享您的工作