如何在分叉存储库上强制推送主控

时间:2018-07-10 14:29:55

标签: git github

我刚完成一次面试的代码挑战。这是我最初所做的:

  • 从他们的代码挑战存储库中分叉
  • 克隆了我的分叉大师
  • 在克隆的master上创建了一个新的本地分支
  • 过去一周对它做了很多承诺
  • 从功能分支中将大量PR反馈给我的分叉主控器

现在我已经完成,他们将对其进行审查。我们的目标是在新的PR中显示我所有工作的全部差异。这是一个关于如何从他们那里进行建议的建议,但是我想确保我理解它以及如何做到这一点。

  • 确保您的代码提交分支具有本地和远程副本,以确保安全保存
  • 然后强行将干净的母版副本推送到您的仓库中
  • 然后您的公开PR建议将您的代码提交分支合并到您刚推送的主版本中

我不太确定要执行什么步骤。我是否在本地签出主人,然后强行推向主人?该命令是什么样的?

-然后强行将原版的干净副本推送到您的仓库中 他们在说哪个大师,我的分叉存储库或我从中分叉的原始大师?

我有点迷茫。我认为他们说的是强迫原始主控器(我从中派生的主控器)覆盖我的分叉主控器,然后从我的分叉代码提交分支到我的分叉存储库进行PR。

我正确地假设这是我需要做的吗?:

git checkout master (because I'm in my feature branch locally currently)
git reset --hard upstream/master  
git push origin master --force (which I assume is the same as this: `git push --force origin`?)

现在单击我的分叉存储库上的拉取请求按钮,将左侧更改为我的分叉主控,将右侧更改为我的PR的功能分支

1 个答案:

答案 0 :(得分:1)

如果您已经完成了功能分支中的所有工作(如您所愿),则无需强制执行任何操作,因为fork中的master分支与原始分支中的master分支是同一提交。回购(通过比较提交哈希来验证)。如果是这种情况,只需打开功能分支(在您的分支中)到主节点(在您的分支中)的拉取请求即可。

编辑:没关系,我读得不好。

您确实需要强制推动。

如果知道要推送的哈希,则可以在单个命令中完成。从github上公司回购的master分支中获取该哈希。然后:

git push -f origin <hash-goes-here>:master

在回购:中,将origin(原始主提交)左侧的哈希推到右侧的分支(您的主分支)。请在此处查看此命令的完整文档:https://git-scm.com/docs/git-push