用GIT vc'd的文件乱码

时间:2012-05-01 02:52:26

标签: git dropbox corruption

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

更新:现在看起来有些文件已经消失了;例如,我收到此消息打开一个:The alias “test.php” can’t be opened because the original item can’t be found.

更新2:我一直在考虑这个问题,我认为我忽略了与一般问题有关的相关细节:我将.git目录向上移动了一个目录,即在此路径中{{ 1}},.git目录从gitRepo移动到Project。它承诺没有问题,但随后腐败发生在该事件和其他一些git行动之间。

1 个答案:

答案 0 :(得分:1)

你不能以这种方式移动.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"