分支问题,把我的主人搞砸了

Problems with branches, messed up my master on a fork

我已经陷入了 Git 的困境,我真的不知道我做了什么,或者如何回到我期望的地方。

我会回顾我所做的并记住所做的事情:

  1. forked F# Charting Repo 并克隆了它。
  2. 我做了一个分支IsMarginVisibleSupport
  3. 对分支进行了一次提交。
  4. 将更改推送到我的遥控器。
  5. 进行了 PR。
  6. Don Syme 将其合并到 F# Charting Repo。
  7. 我删除了 Git Hub 上的分支。
  8. 检查了 master 并进行了 git up
  9. 本地删除分支。

我觉得一切都很好...

然后我又去改了

  1. 创建了另一个分支,IsMarginVisible-TestsAndComments
  2. 对其进行了 4 次提交。

这个分支上一切正常。 我现在 尝试 更新我的 master 可能在 F# Charting 远程上所做的任何更改。我不确定在这个过程中何时何地我做了这件事,我也不确定我做了什么,我从不同的地方找到了东西,但现在我有一个看起来像这样的历史:

我不知道我做了什么...

此外,在某些时候,我已将我的分支推送到 GitHub:另外,我已将 pushed 我的分支推送到 GitHub。

我想要的只是在我再次发送 PR 之前关闭我分支中的 Git Hub。

我有什么想法可以让它看起来像它应该的样子吗?

在您的本地计算机上输入 git reflog,您将看到到目前为止所做的全部历史记录。

从您在此处显示的图表来看,您的分支似乎尚未合并到主分支中。

只要你不推送就没有伤害,只需合并你的本地分支并在推送之前验证提交图。

您似乎无意中提交了 master(“Uncomment IsMarginVisible”)。因此,您无法快进到 upstream/master 并创建了一个新的合并提交,使您的提交历史变得混乱。

你应该重置你的主人:

  1. git checkout master
  2. git reset --hard upstream/master 在确认您没有任何重要的未提交更改之后。这会将任何更改(已提交和未提交)回滚到 upstream/master!
  3. 的状态
  4. 此时不要拉
  5. git push --force origin master

您的 master 现在再次与上游主机同步,您的分支/origin 应该具有上游 master.

中的所有更改

记住,如果您正在为 GitHub 个 OSS 项目开发分支,请不要承诺 master,这会让生活更轻松。