移动项目文件夹后,git 显示存储库中的许多更改

bos*_*sch 6 git git-diff git-branch

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

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

mcv*_*vkr 5

移动 repo 时的问题主要是由于更改了文件模式。所以对于你的回购,你可以

git config core.filemode false
Run Code Online (Sandbox Code Playgroud)

当你做一个新的

git status
Run Code Online (Sandbox Code Playgroud)

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

git config --global core.fileMode false
Run Code Online (Sandbox Code Playgroud)

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

/sf/answers/110645111/


Chr*_*aes 4

你可以使用命令

git diff
Run Code Online (Sandbox Code Playgroud)

查看所有文件的更改,或者

git diff filename
Run Code Online (Sandbox Code Playgroud)

查看特定文件的更改。您的文件的权限很可能已更改。因此,您必须看看这些更改对于您未来的工作是否是必要的……看到差异可能会帮助您进行一些清理。如果您想恢复一些更改,您可以执行以下操作

git checkout filename
Run Code Online (Sandbox Code Playgroud)

删除不必要的修改

  • 非常感谢,克里斯!事实上,存在文件权限问题:_git diff_ 仅显示权限更改,因此我按照 http://stackoverflow.com/questions/1580596/how-do-i-make-git 执行了 _git config core.fileMode false_ -ignore-mode-changes-chmod 现在它只显示我修改的文件。 (3认同)