我需要切换到较旧的提交来检查我之后删除的程序的旧功能。
为此我检查了相应的提交:
git checkout 367af0345d0b09ab3ade1c7856462f68e5eafe86
然后我更改了一些关于这个已弃用的功能的代码。但这只是为了检查我想忽略所有这些。
现在验证已经完成我想回到最新的工作代码:
git checkout master
但不幸的是,我收到了一个听起来很糟糕的警告:
git checkout master
Checking out files: 100% (281/281), done.
Warning: you are leaving 183 commits behind, not connected to
any of your branches:
367af03 message
e5eee29 message
6999d77 message
... and 179 more.
If you want to keep them by creating a new branch, this may be a good time
to do so with:
git branch new_branch_name 367af0345d0b09ab3ade1c7856462f68e5eafe86
Switched to branch 'master'
确实我想保留最后183次提交,但我不想创建一个新的分支,只是回到我暂时恢复之前的状态......
事情是,现在这些183次提交实际存在于我的代码中,因此它们并没有像警告所示那样丢失。
我错过了什么?
答案 0 :(得分:0)
你查了一个版本,git肯定告诉你:
你处于分离头部'州。你可以环顾四周,做实验 更改并提交它们,您可以放弃您在此中提交的任何提交 通过执行另一次结账而不影响任何分支的状态。
如果您想创建一个新分支以保留您创建的提交,您可以 通过再次使用-b和checkout命令来执行此操作(现在或稍后)。例如:
git checkout -b new_branch_name
然后,你在这个分离的HEAD 状态下做了一些提交,这些提交在任何分支上都没有。
然后,您再次签出master
,将这些提交放在后面。
做什么取决于您的需求:
git gc
367af0
指向您的软件的已发布版本并且您正在为此旧版本创建修复),那么您应该执行git告诉您的操作:查看新分支持有这些修复对于将来,如果您只想在git checkout <REVISION>
之后直接使用某个版本,请执行git checkout -b tmp_playing_around
或类似的操作,以避免分离头状态出现问题。