在结帐时,git不会显示警告覆盖文件

时间:2013-07-04 08:00:33

标签: git

假设我们有以下情况: - 我创建了一个新的分支并检查出来(git checkout -b)。 - 在新分支上我更改了一个文件 - 如果我想切换回master,git会抛出以下警告:“error:checkout会覆盖对以下文件的本地更改...”

我认为这就是git的行为方式。我有其他同事在同一个项目上工作,但当他们做同样的事情时,警告不会出现,git只是简单地切换分支。它甚至似乎自动合并文件,git状态在两个分支上显示相同。为什么我会收到警告但他们没有?这是一个固定的东西吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果HEAD(您当前的提交)中的文件状态与您尝试签出的分支中的状态不同,则应该只会出现该错误,因为git不容易确保它可以将您的本地更改带到新分支。


你的第一个例子有点令人困惑,但是:

  

我创建了一个新分支并将其签出(git checkout -b)。 - 在新分支上我更改了一个文件 - 如果我想切换回master,git会抛出以下警告:“错误:以下文件的本地更改将被checkout覆盖......”

我认为既然你收到了警告,你要么是基于master之外的其他东西创建新分支,要么你创建了一个提交,在进行进一步的本地修改之前引入了对该文件的更改。试图再次结帐master

答案 1 :(得分:1)

如果您创建分支并在该分支上编辑文件,并且在未提交的情况下,请在主服务器上发生任何其他更改之前检出主分支,您将不会收到该警告。

只有当两个分支之间的任何文件不同时,git才会发出错误。