2017-09-07 91 views
1

我希望尽可能清楚。例如,从没有提交历史记录的另一个分支创建分支

步骤:

  1. 我工作BRANCH1并提出pull请求。
  2. 虽然下PR批准这一分支,我创建从BRANCH1
  3. Branch1的获得批准,合并开发分支
  4. 当我完成工作,BRANCH2我养的PR BRANCH2。但是当人们看待我的公关时,它具有来自分支1的所有历史记录。

问题:我怎么能(当我为branch2和branch1合并PR时)看到develop和branch2之间的区别而不是develop和(branch1 + branch2)。基本上,当人们看着我的公关分支2时,他们也必须查找分支1,因为它是从分支1创建的,但分支1已经合并。

+0

你可以合并开发与branch2?如果你在那里得到它的合并提交,它可能会省略之前的历史记录 – derelict

+0

在branch1合并后开发的Rebase branch2? – Martin

回答

2

当我完成branch2的工作时,我正在提高PR。但是当人们看待我的公关时,它具有来自分支1的所有历史记录。

所有你需要做的是git fetch upstream(上游假设git remote -v名单,以你已付出了原来回购参考)
(它没有,添加:git remote add upstream /url/of/original/repo

那么你就变基您的branch2上游/主的顶部(其包括被接受branch1代码和合并)

git checkout branch2 
git rebase upstream/master 
git push --force 

最后的命令将覆盖喜故事branch2与新的更新之一。您现有的公钥branch2将自动更新。
它的差异历史将只显示branch2提交,不再包括branch1个。

+0

当我做'git fetch upstream'时,错误是'致命的:无法从远程仓库读取.'。但是当我检查'git remote -v'时,它返回'origin https://github.com/project.git(fetch)'。所以,命令'git rebase upstream/master'肯定不会起作用。但'branch1'已经合并并从github中移除,可能是它被删除的问题。从你的回答中,你说我需要基本上重新分配“master2”作为我的最终目标? –

+0

只需添加上游:'git remote add upstream https:// url/of/original/repo'。你需要在'upstream/master'上重新命名'branch2',并从那里强制推送'branch2'。 – VonC

相关问题