假设我们有以下情况: - 我创建了一个新的分支并检查出来(git checkout -b)。 - 在新分支上我更改了一个文件 - 如果我想切换回master,git会抛出以下警告:“error:checkout会覆盖对以下文件的本地更改...”
我认为这就是git的行为方式。我有其他同事在同一个项目上工作,但当他们做同样的事情时,警告不会出现,git只是简单地切换分支。它甚至似乎自动合并文件,git状态在两个分支上显示相同。为什么我会收到警告但他们没有?这是一个固定的东西吗?
提前致谢。
答案 0 :(得分:1)
如果HEAD
(您当前的提交)中的文件状态与您尝试签出的分支中的状态不同,则应该只会出现该错误,因为git不容易确保它可以将您的本地更改带到新分支。
你的第一个例子有点令人困惑,但是:
我创建了一个新分支并将其签出(git checkout -b)。 - 在新分支上我更改了一个文件 - 如果我想切换回master,git会抛出以下警告:“错误:以下文件的本地更改将被checkout覆盖......”
我认为既然你收到了警告,你要么是基于master
之外的其他东西创建新分支,要么你创建了一个提交,在进行进一步的本地修改之前引入了对该文件的更改。试图再次结帐master
。
答案 1 :(得分:1)
如果您创建分支并在该分支上编辑文件,并且在未提交的情况下,请在主服务器上发生任何其他更改之前检出主分支,您将不会收到该警告。
只有当两个分支之间的任何文件不同时,git才会发出错误。