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



这是场景:我从Github分叉某人的存储库并将其克隆到本地目录。我进行更改,提交它并将其推送到我的分支存储库。然后,我向原始存储库发送拉取请求,但由于某种原因被拒绝。然后,原始存储库从其他人那里获得一些提交,使我的分支版本过时。现在,如何获取原始存储库的最新版本(到我的分支存储库和本地)?另外,如何从 Github 中删除我被拒绝的提交提交的提交历史记录?

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

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

上面的结帐命令是,如果分支主节点在那里,请继续用上游/主节点覆盖它,

如果它不存在,则从上游/主节点创建它。

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

编辑:它应该是-B

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

在 GitHub 上保持分支存储库同步是一个两步过程。

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

    git fetch upstream; git 合并上游/主

  2. 在 GitHub 上保持分支与本地存储库同步

    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

逝。

最新更新