回到提交独立负责人(GIT)

时间:2014-02-10 01:25:55

标签: git

所以我在一个超然的头上,我做了一些改变。我现在处于另一个不同的头上,如何回到我的独立头部,将那个线程改为主人?

由于

$ git commit -m "Connect Users to Fitbit accounts"
[detached HEAD b3b8249] Connect Users to Fitbit accounts
17 files changed, 159 insertions(+), 3 deletions(-)

1 个答案:

答案 0 :(得分:2)

您可以git checkout提交:

git checkout b3b8249

分支基本上是一个命名提交,而git checkout适用于可以解析为提交的所有内容(提交,分支,标记,the reflog),而不仅仅是分支。


正如我提到的reflog:如果你不记得exakt提交哈希,那么reflog是要走的路:

[root@/tmp/test (5d0f65b...)]git checkout master
Switched to branch 'master'
[root@/tmp/test master]touch b
[root@/tmp/test master]git add b
[root@/tmp/test master]git commit -m "Add b"
[master 9bf5987] Add b
 0 files changed
 create mode 100644 b
[root@/tmp/test master]git reflog
9bf5987 HEAD@{0}: commit: Add b
5d0f65b HEAD@{1}: checkout: moving from 5d0f65ba749c8f39773c4edb16ab40c5c58501d4 to master

第一列将告诉您HEAD指向的位置,您可以通过将HEAD@{N}传递给git checkout来检索旧状态:

[root@/tmp/test master]git checkout HEAD@{1}
Note: checking out 'HEAD@{1}'.

...

HEAD is now at 5d0f65b... Add a

reflog会在某些情况下保存您的头部,因为它可以让您检索几乎所有丢失的内容,例如:承诺丢失在一个rebase,承诺在重置等失去。