我的笔记本电脑上有我的个人小型 git 存储库。我刚刚提交了更改并检查了我没有什么要提交的 - 每个暂存和修改的文件都已提交。
之后,我已经将所有文件从这个 repo 复制到另一个位置,然后繁荣!我有未提交的更改。
我相信我缺少一些基本的 git 规则。任何人都可以建议我吗?
我的笔记本电脑上有我的个人小型 git 存储库。我刚刚提交了更改并检查了我没有什么要提交的 - 每个暂存和修改的文件都已提交。
之后,我已经将所有文件从这个 repo 复制到另一个位置,然后繁荣!我有未提交的更改。
我相信我缺少一些基本的 git 规则。任何人都可以建议我吗?
我做了什么,跑
git diff | grep -B 2 @@ | grep +++
获取实际更改的文件,然后还原所有其他文件
您在 windows 上的文件可能有回车换行换行符结尾,并且您的 windows 框上可能有 core.autocrlf true。不要在不同平台之间复制它。而是在 linux 机器上创建一个新的 git 存储库并从 Windows 机器中提取。您可以使用git bundle
或git daemon
在 Windows 机器上公开存储库。或者,您可以在 linux 机器上创建一个裸仓库,git push --mirror
然后从 Windows 机器复制到它,然后将其克隆到您希望最终版本结束的地方。
或者 - 很可能您已经可以git reset --hard HEAD
按原样在 linux 机器上执行并修复它。可能您应该首先删除除 .git 文件夹之外的所有内容,以确保工作树完全干净。
如果您没有任何东西可以丢失,请执行以下操作:
git checkout .
这会将工作树恢复到您之前的提交
文件夹之间的权限是否改变?Git 将注册权限的更改。
从 Windows 复制到 Linux 引入了文件权限的差异,这些更改也被 git 跟踪。
我面临同样的问题。但是,我已将文件从主机 linux 系统复制到 Virtual Box 来宾系统。一些链接被删除,而一些文件权限被更改,我可以通过执行 git config core.filemode false 来修复。