AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1462339
Accepted
174140
174140
Asked: 2019-07-22 04:20:21 +0800 CST2019-07-22 04:20:21 +0800 CST 2019-07-22 04:20:21 +0800 CST

git存储库在操作系统和文件系统之间是否可移植

  • 772

... 特别是通过 FAT32 或 exFAT USB 闪存盘移动时?

即使工作副本可能会发生权限更改,并且明显删除符号链接(如果使用它们)......这些是 Git 将很好地检测到的更改,除此之外,目录内容是否.git/足够可靠允许将存储库从一个操作系统和/或文件系统移动到另一个?例如 Windows、常见的 Linux 发行版、macOS、NTFS、ext FS、APFS ...

如有必要,我可以假定 Git 版本 2+。

git
  • 2 2 个回答
  • 716 Views

2 个回答

  • Voted
  1. Best Answer
    user1686
    2019-07-22T05:45:12+08:002019-07-22T05:45:12+08:00

    是的,存储库数据库通常可以跨所有现代操作系统移植,包括Windows。它不依赖于任何扩展属性,到目前为止也不依赖于区分大小写。数据库中的文件名似乎最多 52 个字符。

    主要要求是文件名保留其大小写,即使在不区分大小写的文件系统上也是如此(例如,如果您将 .git/HEAD 从 ext4 复制到 FAT32 到 APFS 到 HFS+ 到 ext4,它应该保留 .git/HEAD 而不是成为 .git/head ). 幸运的是,上面列出的所有文件系统都是大小写保留的,所以这很好。

    要记住的一件事是每个分支或标签都表示为 .git/refs 下的一个单独文件。Git 强加了一个严格的字符集限制以便与任何文件系统一起工作,但这并不总是足够的——如果你正在移动到一个不区分大小写的文件系统(比如 APFS 或 NTFS)最好希望存储库不包含多个分支或标签仅在大小写上有所不同。同样,Git 也不禁止使用旧版 DOS 设备名称,例如aux或nul作为分支/标签名称。


    (从技术上讲,跨不同文件系统移动存储库可能会丢失一些文件元数据,例如对象 blob 的“只读”( a-w) 状态,但这不是 Git 本身所关注的东西。)


    如果您仅将 FAT32 用作临时传输,请考虑使用git pack-refs --all --prune并rm -rf .git/logs避免任何分支名称问题,尽管它们不太可能。同时运行 agit repack -d; git prune以减少松散对象文件的数量。

    您甚至可以使用它git bundle来创建一个包含全部或部分提交历史记录的传输友好型 blob。

    • 5
  2. harrymc
    2019-07-22T06:02:52+08:002019-07-22T06:02:52+08:00

    虽然复制.git目录在大多数情况下都有效,但有一些注意事项需要注意:

    • git-svn 可能会记住一些您不想复制的用户信息,例如姓名和电子邮件地址,例如在.git/logs/refs/remotes/trunk.

    • 克隆的存储库将包含一个返回到复制命令不会取消创建的父级的链接。您可以使用删除该链接git remote remove origin。

    • 如果.git目录中有符号链接,则需要确保取消对它们的引用。例如:

      cp -r -L <source-repo-dir> <destination-repo-dir>
      
    • 一些配置项可能因平台而异,例如自定义差异驱动程序和引用外部程序的挂钩脚本。在不同平台之间复制时,应该验证诸如core.ignorecase、core.autocrlf、 和可能的其他一些项目。core.safecrlfcore.fileMode

    • git clone 是一个安全的操作,可以在计算机之间操作:

      git clone ssh://[email protected]/path/to/my-project.git
      

      克隆会自动创建一个名为“origin”的远程连接,指向原始存储库,从而轻松与中央存储库进行交互。

    阅读以下选择性移动 git 目录的教程可能会很有趣:

    如何移动完整的 Git 存储库

    • 2

相关问题

  • Windows 10:无法打开(以前的)Git 存储库中的 .ttf 文件

  • GitLab:您不能推送 . 您只能推送使用您自己的已验证电子邮件之一提交的提交

  • 更改 git init 默认分支名称

  • 混帐添加。命令不工作

  • 提交后从git恢复已删除的文件

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    Windows 10 服务称为 AarSvc_70f961。它是什么,我该如何禁用它?

    • 2 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Marko Smith

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)

    • 4 个回答
  • Marko Smith

    我如何知道 Windows 安装在哪个驱动器上?

    • 6 个回答
  • Martin Hope
    Albin 支持结束后如何激活 WindowsXP? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch Windows 10 删除大量小文件的速度非常慢。有什么办法可以加快速度吗? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Ctrl+C 和 Ctrl+V 是如何工作的? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve