树枝上的问题,在叉子上弄乱了我的主人

时间:2015-02-05 22:20:27

标签: git

我已经让自己陷入了与Git的混战中,我不知道自己做了什么,或者如何回到我原本预期的位置。

我将完成我的工作并记住:

  1. forked F#Charting Repo并克隆了它。
  2. 我做了一个分支IsMarginVisibleSupport
  3. 向分支机构做了一次提交。
  4. 将更改推送到我的遥控器。
  5. 制作公关。
  6. Don Syme将其合并到F#Charting Repo。
  7. 我在Git Hub上删除了我的分支。
  8. 已检出master并执行了git up
  9. 在本地删除了分支。
  10. 我认为一切都很好......

    然后我去做另一次改变

    1. 创建了另一个分支IsMarginVisible-TestsAndComments
    2. 做了4次提交。
    3. 这个分支看起来不错。 我现在尝试使用可能在F#Charting遥控器上进行的任何更改来更新我的master。我不知道在这个过程中我做了什么或什么时候,我不确定我做了什么,我从各个地方找到了东西,但现在我的历史看起来像这样:

      enter image description here

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

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

      在我再次发送PR之前,我想要的就是在我的分支中对Git Hub进行任何更改。

      我有什么想法让它看起来应该好看吗?

2 个答案:

答案 0 :(得分:4)

看起来你意外地提交master(“Uncomment IsMarginVisible”)。因此,您无法执行快速转发到上游/主服务器并创建新的合并提交,从而使提交历史记录变得混乱。

你应该重置你的主人:

  1. git checkout master
  2. 验证您没有任何重要的未经修改的更改后,
  3. git reset --hard upstream/master。这会将任何更改(已提交和未提交)回滚到状态upstream/master
  4. 此时不要拉
  5. git push --force origin master
  6. 您的master现在再次与上游主数据同步,您的fork / origin应该包含上游master中的所有更改。

    请记住,如果您正在为GitHub OSS项目提供福利,请不要致master,这会让生活更轻松。

答案 1 :(得分:0)

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

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

只要您不推送没有造成任何伤害,只需合并您的本地分支并在推送之前验证提交图。