首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git-rebase:聚合两个不同的分支/存储库

git-rebase:聚合两个不同的分支/存储库
EN

Stack Overflow用户
提问于 2011-06-22 23:40:30
回答 2查看 1.7K关注 0票数 2

假设我有以下情况:

用户Foo有一个存储库main。用户栏派生此存储库,因此两个存储库是同步的。现在user Bar实现了一个特性,并创建了一个名为"barbranch“的本地分支。当用户栏完成了一个特性的实现时,Foo提交了一些东西并将其推送到主存储库。所以基本上情况看起来是这样的:

代码语言:javascript
复制
A---B---C---D    main repository
         \
          E      forked repository (where C=E)
           \
            F    barbranch on forked repository

现在如何才能让用户Foo的repo中的内容恢复正常呢?

我天真地说:

代码语言:javascript
复制
# switch to the local master and merge barbranch into it
git checkout master
git pull
git pull upstream
git push
git merge barbranch
# merge conflicts occur
vi somefile
git commit -a
git rebase origin master
# this conflict occurs again
vi somefile
git commit -a
git status # says I'm on (no branch) ?!
git push
g    it checkout master
# conflict occurs again!
vi somefile
git commit -a
git push
# send merge request to user Foo

最后,这给了我三个难看的提交,而不是一个。

查看git-rebase文档,我发现了git rebase --onto ...。虽然我不能确定确切的命令是什么,以及整个过程最终会是什么样子。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-22 23:59:37

这取决于你想要得到的树。

如果你想要一个表示真实工作历史的树,你不应该使用"rebase“,而应该只使用"merge”。

代码语言:javascript
复制
# on bar repo
git fetch upstream
git checkout master
git merge upstream/master (fast-forward)
git merge barbranch
# resolve conflicts (adding resolved files)
git commit
git push upstream master

如果你想“线性化”rebase的工作,下面是你应该做的:

代码语言:javascript
复制
# on bar repo
git fetch upstream
git checkout master
git merge upstream/master (fast-forward)
git checkout barbranch
git rebase master
# resolve conflicts + commits (each commit will be processed separately: so you may need to do that several times if various commits are in conflict with the upstream)
git checkout master
git merge barbranch **(fast-forward after the rebase)**
git push upstream master
票数 2
EN

Stack Overflow用户

发布于 2011-06-22 23:54:53

我认为下面的场景应该适合您的情况。

将关于冲突签出的更改master

  • Manually conflicts

  • Commit resolution

  • Push to
  • 修复到主

这实际上将导致3次提交到您的主服务器中(您将拥有提交E&F和您的冲突解决提交)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6442621

复制
相关文章

相似问题

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