Git恢复/重置提交以匹配远程仓库

时间:2015-11-12 16:33:24

标签: git svn github

我正在Github上做开源贡献,对于使用命令行来执行git操作仍然相当新。

我现在的情况是:

我向一个包含10次提交的开源项目提出了拉取请求。拉取请求尚未获得批准。这意味着我提前10个提交远程开源主机。

我想做的是:

我希望我的远程仓库和本地仓库与远程开源仓库匹配。因此,我可以为其他功能做出贡献,因为新功能不依赖于新代码。

我的问题是:

在这种情况下我该怎么办?还原提交或从开源项目创建新的回购?

先谢谢你。

更新

我为新功能开发创建了一个新分支。我把分支合并到了我的主人那里。

1 个答案:

答案 0 :(得分:1)

由于您是从远程主服务器创建了一个分支,并在一些提交后将新分支合并到主服务器,因此您的本地主服务器位于远程主服务器之前。您需要将本地主服务器重置为远程主服务器。

有各种方法可以做到这一点。正如你所提到的,一个是恢复所有提交,我不推荐。以下是两种方式(#2更容易):

  1. 首先从远程仓库中最后一次提交的SHA签出: git checkout <sha>
  2. 您可以通过执行git log并检查最后一次未提交的提交来获取sha。该提交将具有唯一标识符(SHA)。

    -OR -

    1. 您可以使用以下方法重置远程repo的主分支:git reset origin/master
    2. 然后执行git checkout -b branch_name

      这样您就不必还原提交,一旦新功能完成,您可以将branch_name分支合并到master并请求提取。