gpt4 book ai didi

git - 将git目录放在驱动器同步工具中是否危险

转载 作者:行者123 更新时间:2023-12-05 01:27:58 27 4
gpt4 key购买 nike

我喜欢使用“桌面版 google 云端硬盘”,我喜欢将所有内容都放在云端,因为集中所有内容可以使事情井井有条。

但是,git 目录在这样的同步驱动器中是危险的吗?

危险的定义:

  1. “.git”与“所有跟踪文件”不一致。 (同步工具可能会在不同时间更改 .git 及其跟踪文件,这可能会在您提交或推送某些内容时导致灾难。
  2. 让同步工具更改 .git 的所有其他可能的副作用

最佳答案

I love to put everything in the cloud since centralize everything makes things organized.

就个人而言,我通常避免使用文件夹同步服务或 cloud hosted文件夹(如 OneDrive、Google Drive、DropBox 等),因为它们都努力为用户提供简单易用的体验,鉴于 CAP theorem 这是不可能做到的当然适用于文件夹同步服务:所以这些服务普遍拒绝让他们的用户拥有详细的冲突解决工具 - 以及他们无法跟踪文件拆分甚至克隆文件等更改(看着你,OneDrive...) 只会让人头疼。

Is it dangerous to put git directory in drive sync tool

但这也没有实际意义,因为 git 已经是一个工具(和整个生态系统)来保持 repos 同步:只需排除你的 repos来自 Google Drive,并使用 GitHub、BitBucket 或您自己在 NAS 上的自托管 git 服务器托管您的存储库。

至于为什么它是危险的:

  • 主要原因是 git 的工具假定它对您的存储库的 .git 目录和其他软件具有独占访问权限>不会git 处理文件时偷看
    • 虽然 git 确实使用操作系统提供的文件锁和其他 IPC 方法来确保对其文件的独占访问,但第三方文件夹同步软件不会遵守git 自己的 IPC 锁。
    • 还要考虑范围更广的第三方 git 工具(GitKraken、Visual Studio 的 git 集成、TortoiseGit 等),我们不能确定它们是否“安全”,以及用户自己的用于自动化 git 的 shell 脚本很可能也不会有任何类型的锁定。
  • 同步软件通常使用类似 copy-on-write 的功能和 shadow-copies能够获取锁定文件的快照副本。
    • 例如,自从 Windows 7(也许是 Vista?)以来,Windows 的文件资源管理器在您复制和粘贴具有由另一个进程持有的独占锁的文件时使用卷影副本。
    • ...这意味着当您的本地 .git 目录可能处于有效状态时,同步服务保存的 .git 目录的副本可能是处于损坏状态(所以不要恢复它!)因为(据我所知)没有第三方文件夹同步服务尝试制作 .git 目录的事务正确快照副本。

inconsistency of .git with "all tracking files". (sync tool may change .git with its tracking file at different times, which may result in disaster when you commit something or push something.

有点。正如我所说,风险在于,当同步工具正在制作您的本地存储库的副本时,同步服务的您文件夹的远程副本可能包含您的 .git 的不一致副本 目录,在您随后从 Google Drive 或 DropBox 下载您的文件夹之前,问题不会很明显。

all other possible side effects of letting the sync tool change the .git

不胜枚举。只是不要让它发生。


This popular QA功能人们声称他们的 Git 存储库与 DropBox 一起使用,但是高度赞扬的评论警告说他们的方法不会扩展到单个用户之外(而且你不应该无论如何共享一个 git 存储库)。 p>

关于git - 将git目录放在驱动器同步工具中是否危险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69056041/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com