我正在开发除master之外的git分支。我不记得它的名字。当我完成它时,我做了
git add .
git commit -am "foo"
我没有推动提交。
我切换到了主人git co master
。我不知道如何回到我的分支并提交更改......
答案 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
。