分支问题,把我的主人搞砸了
Problems with branches, messed up my master on a fork
我已经陷入了 Git 的困境,我真的不知道我做了什么,或者如何回到我期望的地方。
我会回顾我所做的并记住所做的事情:
- 我 forked F# Charting Repo 并克隆了它。
- 我做了一个分支
IsMarginVisibleSupport
- 对分支进行了一次提交。
- 将更改推送到我的遥控器。
- 进行了 PR。
- Don Syme 将其合并到 F# Charting Repo。
- 我删除了 Git Hub 上的分支。
- 检查了
master
并进行了 git up
。
- 本地删除分支。
我觉得一切都很好...
然后我又去改了
- 创建了另一个分支,
IsMarginVisible-TestsAndComments
- 对其进行了 4 次提交。
这个分支上一切正常。
我现在 尝试 更新我的 master
可能在 F# Charting 远程上所做的任何更改。我不确定在这个过程中何时何地我做了这件事,我也不确定我做了什么,我从不同的地方找到了东西,但现在我有一个看起来像这样的历史:
我不知道我做了什么...
此外,在某些时候,我已将我的分支推送到 GitHub:另外,我已将 pushed 我的分支推送到 GitHub。
我想要的只是在我再次发送 PR 之前关闭我分支中的 Git Hub。
我有什么想法可以让它看起来像它应该的样子吗?
在您的本地计算机上输入 git reflog
,您将看到到目前为止所做的全部历史记录。
从您在此处显示的图表来看,您的分支似乎尚未合并到主分支中。
只要你不推送就没有伤害,只需合并你的本地分支并在推送之前验证提交图。
您似乎无意中提交了 master
(“Uncomment IsMarginVisible”)。因此,您无法快进到 upstream/master 并创建了一个新的合并提交,使您的提交历史变得混乱。
你应该重置你的主人:
git checkout master
git reset --hard upstream/master
在确认您没有任何重要的未提交更改之后。这会将任何更改(已提交和未提交)回滚到 upstream/master
! 的状态
- 此时不要拉
git push --force origin master
您的 master
现在再次与上游主机同步,您的分支/origin
应该具有上游 master
.
中的所有更改
记住,如果您正在为 GitHub 个 OSS 项目开发分支,请不要承诺 master
,这会让生活更轻松。
我已经陷入了 Git 的困境,我真的不知道我做了什么,或者如何回到我期望的地方。
我会回顾我所做的并记住所做的事情:
- 我 forked F# Charting Repo 并克隆了它。
- 我做了一个分支
IsMarginVisibleSupport
- 对分支进行了一次提交。
- 将更改推送到我的遥控器。
- 进行了 PR。
- Don Syme 将其合并到 F# Charting Repo。
- 我删除了 Git Hub 上的分支。
- 检查了
master
并进行了git up
。 - 本地删除分支。
我觉得一切都很好...
然后我又去改了
- 创建了另一个分支,
IsMarginVisible-TestsAndComments
- 对其进行了 4 次提交。
这个分支上一切正常。
我现在 尝试 更新我的 master
可能在 F# Charting 远程上所做的任何更改。我不确定在这个过程中何时何地我做了这件事,我也不确定我做了什么,我从不同的地方找到了东西,但现在我有一个看起来像这样的历史:
我不知道我做了什么...
此外,在某些时候,我已将我的分支推送到 GitHub:另外,我已将 pushed 我的分支推送到 GitHub。
我想要的只是在我再次发送 PR 之前关闭我分支中的 Git Hub。
我有什么想法可以让它看起来像它应该的样子吗?
在您的本地计算机上输入 git reflog
,您将看到到目前为止所做的全部历史记录。
从您在此处显示的图表来看,您的分支似乎尚未合并到主分支中。
只要你不推送就没有伤害,只需合并你的本地分支并在推送之前验证提交图。
您似乎无意中提交了 master
(“Uncomment IsMarginVisible”)。因此,您无法快进到 upstream/master 并创建了一个新的合并提交,使您的提交历史变得混乱。
你应该重置你的主人:
git checkout master
git reset --hard upstream/master
在确认您没有任何重要的未提交更改之后。这会将任何更改(已提交和未提交)回滚到upstream/master
! 的状态
- 此时不要拉
git push --force origin master
您的 master
现在再次与上游主机同步,您的分支/origin
应该具有上游 master
.
记住,如果您正在为 GitHub 个 OSS 项目开发分支,请不要承诺 master
,这会让生活更轻松。