Git:与原来的分叉主人同步一个分支

时间:2014-12-13 05:38:30

标签: git github git-branch git-fork

我将GitHub项目分叉到我自己的存储库中。我的存储库只包含一个“master”分支,我在其中提交自己的代码。分叉项目也包含“主”分支。

我不时会在原始代码中找到并修复一些错误,并且我想创建一个拉取请求,以便原始项目的开发人员可以添加修复程序。但是,我不想在此拉取请求中添加我更改的所有代码,只需修复。

我认为在这里继续进行的正确方法是在我的存储库中创建一个新分支,将其与原始分叉主服务器同步,提交修复程序并创建pull请求。我的问题是:我如何创建一个分支并摆脱我的所有提交以与分叉的主服务器同步?

顺便说一下,这实际上是最实用的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用要删除的git revert命令创建分支并还原所有提交。

然后sync forked repository以完成上游存储库中的所有更改。

答案 1 :(得分:1)

我可以建议您解决问题的后续步骤:

  1. 远程地址配置为分叉主控
  2. git remote add upstream <url_to_forked_project>;

    1. 从上游获取所有更改
    2. git fetch upstream;

      1. 创建新的修复分支并下载分叉主数据
      2. git checkout upstream/master -b fix;

        1. 申请修复
        2. git cherry-pick <commit_hash>;或以某种方式进行新的提交

          1. 将您的更改推送到远程github存储库
          2. git push origin fix:fix;

            git branch -d fix; - 删除未使用的分支

            1. 之后,您可以从远程修复分支
            2. 创建新的拉取请求