首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理未提交的更改

问如何处理未提交的更改
EN

Stack Overflow用户
提问于 2021-05-20 09:19:17
回答 2查看 375关注 0票数 0

我刚把我的文件从旧电脑迁移到新电脑。这包括一些开发git存储库。

但是我想由于文件是被复制的,所以datestamps是不同的,所以git现在把它们看作是未提交的更改,尽管文件中没有其他的更改。

对此最好做什么,只需提交文件,还是有git魔术(命令)告诉git,一切都还好?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

代码语言:javascript
复制
#!/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

感谢大家的帮助、时间和建议。

票数 0
EN

Stack Overflow用户

发布于 2021-05-21 10:17:02

git查看文件的内容。

修改日期是指示应该重新计算索引的触发器,但如果文件在同一位置具有完全相同的内容,则不会显示为“修改”。

为了确认这些文件有不同的内容,您可以查看git计算的散列:

代码语言:javascript
复制
# 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

如果散列相等,则可能遇到索引未正确刷新的问题,请尝试运行:

代码语言:javascript
复制
git update-index --refresh

要让git重新检查所有文件(注意:如果文件在修改后仍然出现,请添加评论或更新您的问题,确实会有一些奇怪的事情发生)。

如果散列是不同的,内容肯定是不同的。您必须更仔细地查看该文件的两个版本之间的变化,例如,通过比较每个版本的十六进制转储。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67617525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档