git checkout-b,提交一些文件,签回原始分支,抱怨被覆盖的更改
这让我感到惊讶,我想不出这怎么可能git checkout-b,提交一些文件,签回原始分支,抱怨被覆盖的更改,git,Git,这让我感到惊讶,我想不出这怎么可能 git checkout-b newbranch 提交除Foo.java以外的一些文件 git checkout master(我所在的原始分支)出现错误: 错误:您对以下文件的本地更改将被签出覆盖: Foo.java 请在切换分支之前提交或隐藏更改 但我已经上了师父的课。因此,我执行通常的工作流程: git隐藏 git签出主机 它自动合并成功。为什么它需要自动合并呢?为什么它需要阻止我的git签出离开master,而不是回到master?我正在试图理解gi
git checkout-b newbranch
Foo.java
以外的一些文件git checkout master
(我所在的原始分支)出现错误:
错误:您对以下文件的本地更改将被签出覆盖:Foo.java 请在切换分支之前提交或隐藏更改
git隐藏
git签出主机
它自动合并成功。为什么它需要自动合并呢?为什么它需要阻止我的
git签出
离开master
,而不是回到master
?我正在试图理解git何时做出这些抱怨的逻辑。当您使用git checkout-b时,它实际上并没有消失,而是保持在同一个提交状态。这就是为什么它允许您签出并保留所有本地更改。“返回”到master会更改提交(并实际修改工作树),这就是为什么它会覆盖您的更改。您在另一个分支上修改了Foo.java
吗?@larsmans我认为我没有。我有时也认为我没有编辑文件,但我发出的一些命令确实修改了。也许您的IDE在末尾添加了一个换行符之类的东西。请务必执行git status
和git diff Foo.java
。我已经在一个新的存储库上进行了测试,效果非常好。