我有一个上游项目的分支,它需要与上游的源代码完全对齐。 我已经发布了
git fetch upstream
因此,现在我已经从上游项目中获取了所有数据,但是当我提交更改时,我过去所做的较旧的提交会引起一些冲突。 据我了解,下一步,我应该:
git checkout master
git rebase upstream/master
对吗?还有什么更简单的方法来制作 origin = upstream ,销毁我在fork中所做的所有提交? (就像我现在分叉了上游项目一样) 谢谢
答案 0 :(得分:1)
尝试以下命令:
git branch --create-reflog -f master -t upstream/master
确保您不在主服务器上(您在另一个分支上),否则它将失败。
如果您是主用户,则可以使用reset
:
git reset --hard upstream/master
如果您有未提交的更改,请确保git stash
进行更改,否则它们将丢失。您可以在执行硬重置后执行git stash pop
,以还原未提交的更改。
答案 1 :(得分:1)
(1)查找最近的派生点提交
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