我对我的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
仍然说它在原点之前。我在想,不知怎的,我需要回滚最后一次更改,但我不知道该怎么做。
答案 0 :(得分:1)
只需将分支重置为上游版本:
git reset --merge origin/dev
这将丢弃所有5项更改。
然后将结果推送到您的前叉:
git push -f fork
请注意,您必须使用-f
,否则您的推送将失败,因为通常服务器不允许丢弃提交。