这几天遇到git的一个问题。
假设我有一个分支“master”。我创建了一个分支“normal”,然后“git checkout normal”,然后我稍微修改了我的代码。
如果我“git checkout master”,然后执行“git status”,我在分支上所做的更改正常可见,而我在完全不同的分支上!
我以前不是这样的。我不得不说我现在完全无能为力。我不知道发生了什么。
你能帮我一下吗?我有 git 2.3.3,我在 Manjaro Linux 上。
答案1
你没有提交你的更改普通的分支。只有工作目录中的文件被更改。
即使工作目录发生变化,您也可以在 Git 分支之间切换。如果没有冲突,Git 将显示:
M test.txt
Switched to branch 'master'
这并不意味着这些变化现在掌握分支。它们只是在工作目录中。因此,您现在可以将它们提交到掌握(git commit -a
)或查看普通的并在那里提交。
如果您的本地更改和您想要检出的分支上的更改之间存在冲突,Git 将显示错误:
error: Your local changes to the following files would be overwritten by checkout:
test.txt
Please, commit your changes or stash them before you can switch branches.
Aborting
在这种情况下,您要么提交这些更改,stash
要么完全放弃以检出所需的分支。