如何在不删除和重新分叉的情况下重新获取分叉的Git仓库?

use*_*868 12 git github

这是场景:我从Github派出某个人的存储库并将其克隆到本地目录.我进行了更改,提交并将其推送到我的分叉存储库.然后我将拉取请求发送到原始存储库,但无论出于何种原因它都会被拒绝.原始存储库然后从其他人获得一些提交,使我的分叉版本过时.现在,我如何获得最新版本的原始仓库(到我的分叉仓库和本地)?而且,如何从Github中删除我的拒绝提交的提交历史记录?

Lea*_*th2 8

永远不要在master分支中进行自己的更改,你应该创建一个新的分支进行更改并推送它.无论如何,如果你想让你的分支等于远程分支:

假设你有上游作为远程git fetch upstream git checkout -f -B master upstream/master

上面的checkout命令将是如果分支主机在那里继续并且如果它不在那里从上游/主机创建它,则用上游/主机覆盖它.

如果您没有将上游添加为远程使用 git remote add upstream repositoryurl

编辑:它应该是-B

编辑:git reset --hard upstream/master实际上更合适


GoZ*_*ner 5

使 GitHub 上的分叉存储库保持同步需要两个步骤。

  1. 使您的本地存储库与以下内容保持同步:

    git fetch 上游;git 合并上游/master

  2. 让 GitHub 上的 fork 与本地存储库保持同步

    git推送原点大师

请参阅GitHub Fork A Repo了解一些解释。您需要将“上游”设置为您派生的存储库的远程位置。

对于“被拒绝的提交”,如果您在本地分支上进行了这些操作,那么您只需删除该分支即可。如果它不在本地分支上,那么您需要将分支的 HEAD 重置回您选择的提交。喜欢:

# Assume you are on master and need to go back to commit BeadBabe
git checkout -b temp
git branch -f master BeadBabe
git checkout master
git branch -d temp
Run Code Online (Sandbox Code Playgroud)

走了。