16

我的笔记本电脑上有我的个人小型 git 存储库。我刚刚提交了更改并检查了我没有什么要提交的 - 每个暂存和修改的文件都已提交。

之后,我已经将所有文件从这个 repo 复制到另一个位置,然后繁荣!我有未提交的更改。

我相信我缺少一些基本的 git 规则。任何人都可以建议我吗?

4

6 回答 6

15

我做了什么,跑

git diff | grep -B 2 @@ | grep +++

获取实际更改的文件,然后还原所有其他文件

于 2013-01-24T07:58:39.177 回答
12

您在 windows 上的文件可能有回车换行换行符结尾,并且您的 windows 框上可能有 core.autocrlf true。不要在不同平台之间复制它。而是在 linux 机器上创建一个新的 git 存储库并从 Windows 机器中提取。您可以使用git bundlegit daemon在 Windows 机器上公开存储库。或者,您可以在 linux 机器上创建一个裸仓库,git push --mirror然后从 Windows 机器复制到它,然后将其克隆到您希望最终版本结束的地方。

或者 - 很可能您已经可以git reset --hard HEAD按原样在 linux 机器上执行并修复它。可能您应该首先删除除 .git 文件夹之外的所有内容,以确保工作树完全干净。

于 2012-07-16T14:25:29.887 回答
3

如果您没有任何东西可以丢失,请执行以下操作:

git checkout .

这会将工作树恢复到您之前的提交

于 2016-11-23T13:21:29.363 回答
2

文件夹之间的权限是否改变?Git 将注册权限的更改。

于 2012-07-16T14:11:50.130 回答
1

从 Windows 复制到 Linux 引入了文件权限的差异,这些更改也被 git 跟踪。

于 2012-07-16T15:32:30.183 回答
1

我面临同样的问题。但是,我已将文件从主机 linux 系统复制到 Virtual Box 来宾系统。一些链接被删除,而一些文件权限被更改,我可以通过执行 git config core.filemode false 来修复。

于 2012-07-25T10:31:58.850 回答