首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果remote被更新,则取消本地合并

如果remote被更新,则取消本地合并
EN

Stack Overflow用户
提问于 2018-10-01 07:11:35
回答 2查看 42关注 0票数 1

我有以下git工作流:

代码语言:javascript
复制
# finish locally committing to feature/new_thing
git push origin feature/new_thing
git checkout develop
git pull # Just in case I get a warning
git merge feature/new_thing
git push origin develop

这在99%的情况下有效,但在其他1%的情况下,这种情况会发生:

代码语言:javascript
复制
#Me                             #Other dev
git push origin feature/new_thing
                                git merge feature/other_new_thing
git checkout develop
                                git checkout develop
git pull
                                git pull
git merge feature/new_thing
                                git merge feature/other_new_thing
                                git push origin develop
git push origin develop

现在,我的push不出所料地失败了:

代码语言:javascript
复制
error: failed to push some refs to 'git@server.git'

让自己重新同步的最简单方法是什么?git reset HEAD~删除我的分支提交,而git pull希望再次合并。我通常会返回到分支机构之前的reset,然后重新登记pull

必须有一个简单的方法来做到这一点!我确实尝试过使用git-workflow一段时间,但是它经常被卡住,需要更多的手动干预。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-01 12:27:13

当您的推送失败时,您知道遥控器必须已更新,因此本地origin/develop副本已过时。在决定如何处理之前,我想知道是什么改变了,所以我通常会跑

代码语言:javascript
复制
$ git fetch

首先,我可以查看git log --all --graph --decorategitk --all或类似的内容。

如果您决定要在最新的基础上重新设置提交基,则只需使用

代码语言:javascript
复制
$ git pull --rebase

如果它不是一个干净的重基,那么您将手动修复它--如果您认为会发生这种情况(或者它已经发生了,并且运行了git rebase --abort),您可能更愿意手动重置并重新进行合并:

代码语言:javascript
复制
$ git reset --hard origin/develop

(我倾向于避免使用合并提交,因为我永远记不起哪个父级是哪个)。

票数 2
EN

Stack Overflow用户

发布于 2018-10-01 11:45:06

你有两个一般的选择。

第一种,也是我通常采用的一种方法,是在远程版本的develop之上重新设置您的develop版本。如果存在合并冲突,则可以在进行时解决它们(即,完成后的rebase --continue )。

代码语言:javascript
复制
# On local `develop`
git rebase origin/develop

如果在执行过程中发现有太多增量合并冲突,请使用--interactive选项,并对develop上的所有提交进行重新基和预压缩,从develop历史发散的点开始。

另一种选择是将远程版本的develop合并到您的版本中。这将不可避免地创建合并提交,如果您希望保持Git历史尽可能的线性,这可能是不光彩的。

代码语言:javascript
复制
# On local `develop`
git merge origin/develop
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52586177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档