【发布时间】:2018-02-23 07:18:48
【问题描述】:
我在 U 盘上有一个 git 存储库,想将它复制到我的硬盘上。我尝试使用rsync -rXP、cp 和 ubuntu 中的 gui 复制它,但在复制的版本上,所有提交似乎都消失了。当我输入 git log 或 git reflog 时,我得到了
fatal: your current branch 'master' does not have any commits yet
文件 .git/logs/HEAD 显示所有提交,但 git 看不到它们。
如何在不丢失任何数据的情况下移动存储库?
编辑1+3+5: 使用的命令:
rsync -rXP usb_folder/ hdd_folder-
cp -rp usb_folder hdd_folder(hdd_folder 位于 /home) rsync -a usb_folder/ hdd_folder- 使用
sudo chown和sudo chmod -v -R a+rwx usb_folder更改所有权+ 复制。文件权限实际上并没有改变(事实证明这在 fat32 文件系统上不起作用,应该知道 -.-')
当我将存储库复制到同一个 U 盘上的新文件夹时,提交仍然存在
EDIT2:
我不想使用git clone,原因是提到了here,因为我有一堆我需要测试的未跟踪文件
编辑4:
存储库可能是用 git for Windows 创建的。 Windows 行尾或版本有问题?提交存在于 USB 记忆棒上
EDIT5:
这似乎是文件系统的问题(USB 记忆棒是 fat32)和/或 Windows 的 git(存储库可能是用 Windows 的 git 创建的)。我可以将存储库复制到 Windows 10 pc 和 git bash 中的git log 将正确显示所有提交。如果我使用 ubuntu 子系统检查,所有提交都消失了(尽管某些文件由于某种原因暂存)
【问题讨论】:
-
您输入的确切命令是什么?
-
rsync -rXP usb_folder/ hdd_folder,cp -rp usb_folder hdd_folder。不使用 X (rsync) 和 p (cp) 标志会得到相同的结果。如果我将文件夹复制到同一个 U 盘上的文件夹中,提交仍然存在 -
git clone会这样做。 -
我无法重现这个。我会同意@DonBranson 的评论。
-
您应该在问题中提及为什么您不想以正常方式执行此操作。
标签: git ubuntu-16.04