【问题标题】:Git branch checkout says files would be overwritten alothough my working directory is cleanGit分支结帐说文件将被覆盖尽管我的工作目录很干净
【发布时间】:2016-12-29 06:48:08
【问题描述】:

我有以下分支 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 显示“工作目录很干净”

所以为了将b4-selector-removal-new 合并到php-merge-2016 分支,我首先尝试在我的php-merge-2016 分支上。当我使用git checkout php-merge-2016 切换到php-merge-2016 时,它会毫无问题地被签出,这里git status 再次显示工作目录是干净的,因为我还没有进行任何更改。

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

您对以下文件的本地更改将被结帐覆盖:
站点/所有/主题/base/css/info-grid.css
站点/所有/主题/base/css/info-grid.css.map
网站/所有/主题/桌面/css/print.css
网站/所有/主题/桌面/css/print.css.map
网站/所有/主题/mobile/css/ifa-upload.css
网站/所有/主题/mobile/css/ifa-upload.css.map
请在切换分支之前提交您的更改或存储它们。
中止

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

为什么我会收到此错误?解决方法是什么。我没有使用git checkout -f,因为我不确定它会做什么。我对git 还不是很熟悉,但我很担心使用任何会强制执行某些操作的东西。

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

请帮忙!

【问题讨论】:

  • 您是 Windows 用户吗?告诉我你的行尾。
  • 我在 Ubuntu 14.04 LTS 上。
  • 有什么建议吗?
  • git status 在文件被忽略时显示“干净的工作目录”。你的.gitignore 是什么?您也可以通过git check-ignore 进行验证

标签: git merge git-checkout


【解决方案1】:

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

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

可能您为文件手动设置了假设不变或跳过工作树。 在这种情况下,更改不会影响 git status。

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 2015-02-13
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    相关资源
    最近更新 更多