如何找到我切换回主人后意外提交的git分支

时间:2012-03-07 18:12:21

标签: git

我正在开发除master之外的git分支。我不记得它的名字。当我完成它时,我做了

git add .
git commit -am "foo"

我没有推动提交。

我切换到了主人git co master。我不知道如何回到我的分支并提交更改......

4 个答案:

答案 0 :(得分:2)

执行git branch将列出所有本地分支机构。然后你可以看看你想要的分支:

git branch
git checkout branch-name

在分支上正确提交所有内容后,您可以将其合并回master:

# while on your feature branch
git commit -m "Finishing my feature"
git checkout master
git merge branch-name
git push origin master

请注意您不是从功能分支推送,而是将功能分支合并到master,然后推送master。功能分支通常不会跟踪远程存储库,因此他们无法推送到。

答案 1 :(得分:2)

如果您运行git log -g,您应该会看到如下消息:

commit <commit-id>
Reflog: HEAD@{0} (My Name <me@somehwere>)
Reflog message: checkout: moving from forgot-this-branch to master

这将告诉您最近离开的分支的名称。

答案 2 :(得分:1)

您可以使用reflog显示您去过的地方:

git reflog show HEAD

这将给出HEAD的历史,并将显示如下内容:

9c4d528 HEAD@{0}: checkout: moving from tooling to master

以及影响HEAD的早期变化

答案 3 :(得分:0)

使用git branch列出所有分支。这将有望慢慢记住你的记忆: - )

除非您使用git branch -d(或git branch -D)删除分支,否则分支肯定会出现在该列表中。

然后像往常一样使用git checkout切换回该分支。


您暗示您可能在master上有一些您想要在其他分支上提交的未提交更改。如果是这种情况,git checkout将不适用于脏工作树。在这种情况下,使用git stash save将更改保存到临时更改堆栈,git checkout切换分支,然后git stash pop以删除存储并将更改恢复到工作状态树。然后您可以照常使用git commit