代码之家  ›  专栏  ›  技术社区  ›  Carla

从上游获取并撤消我在源中的所有提交

git
  •  1
  • Carla  · 技术社区  · 6 年前

    我已发出

    git fetch upstream
    

    所以现在我已经从上游项目中获取了所有数据,但是当我提交一个变更时,一些冲突来自于我过去所做的旧提交。 据我所知,作为下一步,我应该:

    git checkout master
    git rebase upstream/master
    

    对吗?有没有更简单的制作方法 ,销毁我在叉子里做的任何承诺?(就像我现在分岔上游项目一样) 谢谢

    2 回复  |  直到 6 年前
        1
  •  1
  •   iBug    6 年前

    请尝试以下命令:

    git branch --create-reflog -f master -t upstream/master
    

    如果你在master上,你可以使用 reset :

    git reset --hard upstream/master
    

    如果您有未提交的更改,请确保 git stash git stash pop 执行硬重置以恢复未提交的更改后。

        2
  •  1
  •   Vy Do    6 年前

    查找最近的分叉点提交

    git merge-base upstream/master origin/master
    

    例如,结果是 55c16639a7a7a8c474b9aa448ab112086738de6f 或者简称 55c1663

    (2) 55c1663

    git reset --hard 55c1663
    

    (3) 提取和合并

    git fetch upstream
    git checkout master
    git merge upstream/master --no-ff
    

    https://help.github.com/articles/syncing-a-fork/