签出先前提交后的git状态

时间:2013-12-31 17:59:49

标签: git

我想回退一些提交,因为我的一些同事在最近的更改中打破了构建。所以我做了

git checkout 7bb648abd7381bee5b92c18ff215b4f8a38935ee

其中7bb648abd7381bee5b92c18ff215b4f8a38935ee是一个提交四次提交。

然而,当我做的时候

git status

它返回了

# Not currently on any branch.
nothing to commit (working directory clean)

为什么不告诉我,我在同一个分支,但只有四个提交落后?

2 个答案:

答案 0 :(得分:2)

确实,你已经检查了提交,而不是分支。如果您想在checkout

之后移动分支
git branch -f myBranchName #or "master" if it's the branch you're working on

如果已经存在,它将移动分支myBranchName

但是,请注意:您要更改共享历史记录,因此请务必警告每个在此分支上工作的人员。

请注意,Git不会让你轻易推动它(以确保你知道你在做什么):你必须push -f

答案 1 :(得分:1)

你处于一个独立的头状态。请参阅此答案https://stackoverflow.com/a/5772882/1049112,以获得有关分离头部意义的绝佳解释。

分支(和所有头)仅指向一次提交。除非你做git checkout <branchname>,否则你不在'分支'上。无论何时你做另一个git checkout <something else>,你都不再在那个分支上。