2014-01-15 31 views
0

所以我创建了一个分支来保存它作为我的项目当前状态的快照。我称它为“v1”。如何将pull请求合并到传统分支中?

然后我重构了一些代码并提交给master分支。所以现在我拥有最新最好的主人。

我的问题是:如果有人向主人提交拉请求,我该如何维护旧分支?是否有一种简单的方法将拉取请求合并到两个分支?

我期待的是:如果文件改变了很多,那么就会出现冲突。但是,如果不是,那么即使PR的基础领先于我的传统“v1”分支,它也只会合并PR引入的更改。

回答

1
git fetch <remote> 
git merge <remote>/<ref> 

remote的远程分支,拉请求源于和ref的名称是的提交(或分支)请求所述拉标识符。因此,如果您将主存储库作为名为upstream的远程存储库,并且该存储库具有基于5d4434e(如此repository's pull request)的请求。你会运行:

git fetch upstream 
git merge upstream/5d4434e 

这将合并该提交和从本地回购缺少的所有历史记录。如果您只想合并该提交的更改而不是所有历史记录,则可能需要git cherry-pick upstream/5d4434e

+0

所以混帐合并不会为我工作,因为我不希望我的重构更改去遗留分支。我想我不得不在pull请求中使用git cherry-pick。 – Renato

+0

你可能不得不选择pull请求中的每个提交(希望这个提交不会太多),因为我不认为拉取请求的实际信息存储在存储库中。 – Sam

+1

我想这会工作:git cherry-pick -m 1 <合并提交的sha> – Renato

相关问题