git - 带有 GIT 乱码的 vc 文件

标签 git dropbox corruption

GIT控制的文件版本在什么情况下会出现乱码?这是我的问题,但这是上下文:我正在学习 git 并且一直在使用本地存储库,今天看起来有几个文件已损坏(或其他)。所有的文本看起来都是这样的:‘Œ…fÅ�ÅˇÅ�õˇÅ�≤ÍÈ(例如)。自添加以来,这些文件在所有 git 快照中都是乱码。让事情变得更复杂的是,repo 存储在 Dropbox 中,并且还被用于存储开发网络服务器 (MAMP) 的网络文件。知道发生了什么吗?我在网上找不到任何有用的东西。

更新:现在看起来有些文件已经完全消失了;例如,我在打开一条消息时收到此消息:无法打开别名“test.php”,因为找不到原始项目。

更新 2:我一直在思考这个问题,我认为我忽略了与一般问题相关的相关细节:我将 .git 目录向上移动了一个目录,即在这个路径中,Dropbox/Project/gitRepo/,.git 目录从 gitRepo 移动到 Project。它提交没有问题,但随后在该事件和其他一些 git 操作之间发生了损坏。

最佳答案

你不能以这种方式移动 .git 目录,这势必会混淆 git,因为你如果提交了一个 foo.php 文件,它现在变成了 gitRepo/foo.php。

现在,如果您将 .git 目录恢复到它所属的位置,您可以像这样进行转换(我很确定我在这里使用的是 bash shell 的特定功能):

Dropbox/Project/gitRepo$ mkdir gitRepo
Dropbox/Project/gitRepo$ git mv !(gitRepo) gitRepo
Dropbox/Project/gitRepo$ git ci -m "Move everything in subdir"
Dropbox/Project/gitRepo$ cd ../..
Dropbox$ mv Project/gitRepo Project2
Dropbox$ cp -r Project/* Project2/
Dropbox$ cd Project2
Dropbox/Project2$ git add .
Dropbox/Project2$ git ci -m "Import upper directory"

关于git - 带有 GIT 乱码的 vc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10397190/

相关文章:

git - 如何创建跨 git 分支的符号链接(symbolic link)?

linux - 如何在 Linux 中将 git 存储库从一台机器克隆到另一台机器?

python - 任务中的 celery 任务

c++ - SQLite 文件锁定和 DropBox

database - SQLite WAL 在电源故障时有多安全?

linux - linux上创建硬盘报错

git - 无法使用 git+ssh 克隆

git - 为什么 git 不 merge 某些更改?

python - 使用 Python SDK 加速生成 Dropbox 可共享链接的大量请求?

c - 有没有办法读取文本文件并将其保存在 C 中的动态字符数组中,之前尝试一下并得到 'malloc(): memory Corruption'