Git分支结账表示文件将被覆盖,而我的工作目录是干净的

时间:2016-08-22 16:15:15

标签: git merge git-checkout

我有以下分支机构 master -> php-merge-2016master -> css-merge-2016master -> css-merge-2016 -> b4-selector-removal。首先,我需要merge b4-selector-removal-newphp-merge-2016

目前我正在处理分支b4-selector-removal,所有更改都已提交并推送以删除存储库,git status显示&#34;工作目录已清除&#34; < / p>

因此,要将b4-selector-removal-new合并到php-merge-2016分支,我首先尝试在php-merge-2016分支上。当我使用php-merge-2016切换到git checkout php-merge-2016时,它会在没有问题的情况下检出来再次git status显示工作目录是干净的,因为我还没有制作任何变化。

为了做一些实验,我试图切换回b4-selector-removal-new分支而不做任何事情。但是git现在说:

  

以下文件的本地更改将被结帐覆盖:
      网站/所有/主题/基/ CSS / INFO-grid.css
      网站/所有/主题/基/ CSS / info-grid.css.map
      网站/所有/主题/桌面/ CSS / print.css
      网站/所有/主题/桌面/ CSS / print.css.map
      网站/所有/主题/移动/ CSS / IFA-upload.css
      网站/所有/主题/移动/ CSS / ifa-upload.css.map
  请在更改分支之前提交更改或存储更改   中止

有趣的是,上面显示的文件是我提交和推送的文件,然后在两个提到的分支之间来回切换。

为什么我收到此错误?有什么工作要做。我没有使用git checkout -f,因为我不确定它会做什么。我对git还不太熟悉,但却担心使用任何强迫某事的东西。

我在另一篇文章中看到过,我可以在签出另一个分支之前使用git reset --hard。这是做什么的?如果我在我的情况下使用它,这会无害吗?它会解决这个问题吗?

请帮忙!

1 个答案:

答案 0 :(得分:0)

创建备份。试试git reset --hard

如果这没有帮助,请阅读此Git - Difference Between 'assume-unchanged' and 'skip-worktree'

您可能为您的文件手动设置假设未更改或跳过工作树。 在这种情况下,更改不会受到git状态的影响。