我在github上用分支机构分割了一个项目someorg / greatproject:
* master
* dev
从我的fork开始,我创建了一个名为my-patch的dev分支。所以我/ greatproject有分支:
* master
* dev
* my-patch
我发送了拉取请求,补丁被接受并合并到dev中。大!一段时间后,上游开发分支得到了更多的更改,我想用上游重新同步我的分支。我遵循了一些指示(我已经失去了)一切看起来都没问题,所以我把同步的回购推回给了github。
我今天回来了,我发现我错误地将someorg的dev分支合并到我的my-patch分支中。更糟糕的是git branch
只显示
*my-patch
我发现我可以查看原点/ dev,如果我按照这些说明操作 How do I update a GitHub forked repository?我也可以检查上游/ dev,但在这两种情况下都会让我进入一种称为分离头模式的东西,我猜这是坏的或错误的,或至少值得一些奇怪的警告。
我想回到我的fork看起来像原始的状态,以及我的补丁在分支my-patch上的开发历史。基本上,我得到的状态是我的叉子里的所有分支(除了我的补丁)与原始回购保持锁定步骤。
我如何到达那里?
答案 0 :(得分:1)
让主分支(母版)保持最新并保持my branch
不受影响的最简单方法是:
git remote add originalproject <git@github.com:someorg/greatproject.git>
git checkout master (if master is the main branch for the project)
git reset --hard originalproject/master
您的主分支与原始项目是最新的
如果您想将分支更新为通过拉取请求推送的版本,请执行
git checkout my-branch (if master is the main branch for the project)
git reset --hard originalproject/my-branch
但是你将失去当前的任何局部变化。您似乎已对本地副本进行了一些不可逆转的更改,因此最好的方法是删除fork并重新分叉,同时保持本地文件夹不变,以便您可以将最近执行的一些代码复制到新克隆