我在
GitHub上分叉了一个模板库(T),并在我自己的repo(X)中使用模板做了一些工作.
现在repo X与repo T完全冲突,因为我推送到X的自定义工作.
除了使用模板进行自定义工作外,我还对模板进行了一些改进.
我创建了一个pull请求,但它包含了自forking以来我过去的所有提交.我想在pull请求中仅包含模板改进(在我的提交历史中间只有几个提交).我怎样才能做到这一点?
最佳答案 您必须从自定义提交中分离模板更改(改进提交,您想要
merge to the upstream repo with a pull-request).
更好的方法是使用两个不同的git存储库,但是如果你喜欢只维护一个,你必须:
>备份您的历史记录,创建一个新的临时分支
git checkout -b tempmaster
git checkout master#如果是master,则返回上一个
>如果您之前没有,请将原始模板存储库(T)添加为上游远程:
git remote添加上游https://github.com/ …
>获取所有远程更改
git fetch –all
>将当前分支硬重置为上游存储库
git reset –hard upstream / master #if master
>从temp分支导入改进提交(git cherry-pick)并修复冲突.
>完成后,推送新的“rebased”分支并创建pull-request
>现在从这个分支你可以创建自己的自定义分支git checkout -b myapp并以相同的方式导入你的自定义提交.
修复后,当您想要使用上游更改更新分叉分支(master)时,请使用rebase:
git rebase upstream / master