我分支一个新的分支......
git checkout -b loginComponent
我创建了一个新文件并对现有文件进行了一些更改。然后我决定......嗯,我不喜欢我所做的......所以我的目标是在我分支之前回去。所以我打字......
git checkout master
期待文件恢复到我分支之前。
我收到以下消息:
A app/login.component.html
A app/login.component.ts
M app/webff.component.ts
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
但是,这不会发生。文件(login.component.html,login.component.ts)仍然存在,webff.component.ts中的修改仍然存在。
我错过了什么吗?我似乎记得这在过去有效......答案 0 :(得分:3)
更改分支时更改仍然存在。要将更改重置为HEAD,请使用以下命令:
git reset --hard
请注意,这将删除任何未提交的更改。
答案 1 :(得分:2)
将新文件提交到新分支。然后结帐主人。
或者,git reset --hard
答案 2 :(得分:1)
'git checkout -f'还将工作目录中的文件恢复到存储库版本。
答案 3 :(得分:1)
你在这里缺少一些基本的git知识。
完整而完整的答案在这里:git checkout carries unstaged files to the new branch
以下是您的简短摘要。
Git有一种称为 3-states 的东西。
以上描述了3种状态。
The missing part
强> 所有分支之间的工作目录和登台都是 SHARED (* - 有办法绕过它并且每个分支都有干净的3个状态)
但是在你的情况下,工作目录和登台是共享的,所以当你在分支之间“移动”时,所有未提交的内容都将保留在那里,除非你处理它。
阅读本文以了解HEAD是什么,然后按照答案中的说明使用重置 How to move HEAD back to a previous location? (Detached head)