我刚把我的文件从旧电脑迁移到新电脑。这包括一些开发git存储库。
但是我想由于文件是被复制的,所以datestamps是不同的,所以git现在把它们看作是未提交的更改,尽管文件中没有其他的更改。
对此最好做什么,只需提交文件,还是有git魔术(命令)告诉git,一切都还好?
发布于 2021-05-21 12:45:46
TLDR:文件复制 repos而不是git跨不同文件系统克隆它们(EXT4 vs NTFS/ not 32)将使git抱怨。
全答
当他在吉特和一个知性朋友交谈时,他想出了这个问题。
当我将数据(包括回购)从具有Linux文件系统的旧PC迁移到新的Linux PC上时,由于没有网络连接,我将所有数据复制到用窗口的文件系统格式化的USB HD上,从而丢失了一些文件信息,而Git报告了所有的信息,必须再次检入。
因此,解决方案是只在Linux文件系统上移动repo。
我在Linux文件服务器上建立了一个远程回购,将本地的工作恢复从旧的PC推到远程的git服务器,然后将远程复制到新的PC上。
额外积分
克隆并不能拉动所有的远程分支。我找到了这个解决方案来拉动所有的远程分支。
全拉式https://gist.github.com/grimzy/a1d3aae40412634df29cf86bb74a6f72
#!/usr/bin/env bash
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all感谢大家的帮助、时间和建议。
发布于 2021-05-21 10:17:02
git查看文件的内容。
修改日期是指示应该重新计算索引的触发器,但如果文件在同一位置具有完全相同的内容,则不会显示为“修改”。
为了确认这些文件有不同的内容,您可以查看git计算的散列:
# get the hash for the file in the current commit :
git ls-tree HEAD path/to/file
# compute the hash for the file on disk :
git hash-object path/to/file如果散列相等,则可能遇到索引未正确刷新的问题,请尝试运行:
git update-index --refresh要让git重新检查所有文件(注意:如果文件在修改后仍然出现,请添加评论或更新您的问题,确实会有一些奇怪的事情发生)。
如果散列是不同的,内容肯定是不同的。您必须更仔细地查看该文件的两个版本之间的变化,例如,通过比较每个版本的十六进制转储。
https://stackoverflow.com/questions/67617525
复制相似问题