从fork移除更改并同步到原点

时间:2018-05-18 06:59:51

标签: git github

我对我的fork做了一个更改,这是一个错误所以现在我想将我的fork重置为原点。注意改变已经推送到GitHub。

C:\Development\IdentiyServer\IdentityServer4>git remote -v
fork    https://github.com/XXXXX/IdentityServer4.git (fetch)
fork    https://github.com/XXXXX/IdentityServer4.git (push)
origin  https://github.com/IdentityServer/IdentityServer4.git (fetch)
origin  https://github.com/IdentityServer/IdentityServer4.git (push)

正如你所看到的,我有两个遥控器设置原点是主要的repo和fork是我的GitHub帐户上的分叉,我有权访问。我必须从我的分支中提取请求,将它们发送到主仓库。

我对主项目进行了拉动,以确定它是迄今为止的

C:\Development\IdentiyServer\IdentityServer4>git pull origin dev
From https://github.com/IdentityServer/IdentityServer4
 * branch              dev        -> FETCH_HEAD
 Already up to date.

我在我的叉子上做了同样的事情

C:\Development\IdentiyServer\IdentityServer4>git pull fork dev
From https://github.com/XXXXX/IdentityServer4
 * branch              dev        -> FETCH_HEAD
Already up to date.

我在开发分支上结帐了

C:\Development\IdentiyServer\IdentityServer4>git checkout dev
Already on 'dev'
Your branch is ahead of 'origin/dev' by 5 commits.
  (use "git push" to publish your local commits)

这清楚地表明我的fork / dev中有一些不在origin / dev中的变化,这些是我想删除的。我需要转储此更改并将我的fork恢复到原始状态。

读这个syncing-a-fork所以我想我应该只在原点/ dev分支中合并

C:\Development\IdentiyServer\IdentityServer4>git merge origin/dev
Already up to date.

我检查文件,我可以看到它还没有被重置,git checkout dev仍然说它在原点之前。我在想,不知怎的,我需要回滚最后一次更改,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

只需将分支重置为上游版本:

git reset --merge origin/dev

这将丢弃所有5项更改。

然后将结果推送到您的前叉:

git push -f fork

请注意,您必须使用-f,否则您的推送将失败,因为通常服务器不允许丢弃提交。