【问题标题】:git shows many changes in repository after moving project foldergit 在移动项目文件夹后显示存储库中的许多更改
【发布时间】:2014-03-31 10:44:38
【问题描述】:

我对 git 很陌生,但已经很享受它了。这是我当前的问题:

  • 一些信息:
    • 我正在扩展一个朋友作为存档给我的项目。该文件夹包含 git 存储库,并且起源于 github。
    • 在清理完不必要的东西后,我在 BitBucket 上注册了一个帐户,并将整个项目推到了那里,并且从源头上没有跟踪
    • 我一直很好地工作:创建分支、提交、合并,一切都很顺利。一个月以来,我开始在一个分支上工作并更改了一些文件(我认为大约 20 个)。一切似乎都很好。
  • 问题:
    • 几天前,我决定将项目文件夹从一个分区移动到另一个分区(我在 Macbook 上工作,我将它从 Windows 分区移动到 MacOS 的分区
    • git status'ed 时,我注意到我项目中的所有文件都被认为已修改,而不仅仅是我当前的更改。现在我不知道我的更改是什么,分支也没用。我该怎么做才能只看到我的更改?我还没有触及项目的大部分内容,整个历史都很好。

【问题讨论】:

    标签: git git-branch git-diff


    【解决方案1】:

    移动存储库时的问题主要是由于更改了文件模式。因此,对于您的回购,您可以

    git config core.filemode false
    

    当你做一个新的时候

    git status
    

    现在您应该不会看到这么多已更改的文件。如果您移动了许多存储库,那么更改当前用户的全局 git 行为将更有意义。

    git config --global core.fileMode false
    

    有关更改模式设置和 git 的更多信息,请参阅此答案:

    https://stackoverflow.com/a/1580644/2815227

    【讨论】:

      【解决方案2】:

      你可以使用命令

      git diff
      

      查看所有文件的更改,或

      git diff filename
      

      查看特定文件的更改。 很可能您的文件的权限已更改。因此,您必须查看这些更改是否对您未来的工作是必要的......查看差异可能有助于您进行一些清理。如果你想恢复一些你可以做的改变

      git checkout filename
      

      删除不必要的修改

      【讨论】:

      • 此外,您可以使用git diff <commit hash> filename 来区分历史中的特定点
      • 非常感谢,克里斯!确实,存在文件权限问题: git diff 仅显示权限更改,所以我按照stackoverflow.com/questions/1580596/… 做了一个 git config core.fileMode false 现在它显示我只有我修改过的文件。
      • @bosch 不客气。如果这解决了您的问题,您可以接受答案:这样其他人可以看到问题已解决。
      • 我在回复之前尝试接受它,但我不知道如何;我以为我没有足够的声望点。我终于成功了,再次感谢!
      【解决方案3】:

      你可以使用:

      git checkout -- .
      

      试试这个:

      git config core.filemode false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-02
        • 2013-08-27
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-01
        相关资源
        最近更新 更多