我想回退一些提交,因为我的一些同事在最近的更改中打破了构建。所以我做了
git checkout 7bb648abd7381bee5b92c18ff215b4f8a38935ee
其中7bb648abd7381bee5b92c18ff215b4f8a38935ee是一个提交四次提交。
然而,当我做的时候
git status
它返回了
# Not currently on any branch.
nothing to commit (working directory clean)
为什么不告诉我,我在同一个分支,但只有四个提交落后?
答案 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>
,你都不再在那个分支上。