"Google Drive can corrupt repositories" 在 Github 桌面

"Google Drive can corrupt repositories" in Github Desktop

我在创建 "Google Drive can corrupt repositories" 的新存储库时主要使用 Google Drive folder and it is mentioned in Github Desktop

具体有哪些问题,可以采取哪些措施来避免存储库被破坏?

我们发出该警告是因为我们已经看到不少用户的存储库被各种云支持的存储解决方案损坏,例如 Google Drive 和 Dropbox。

问题归结为竞争条件,其中 Git 快速创建和修改文件,而存储解决方案试图跟上。在某些情况下,这可能导致文件 IO 的行为不像 Git 预期的那样。存储解决方案也可能错误地恢复了本应删除的文件。虽然此类问题最有可能在您与其他人共享存储库时发生,但我们已经看到仅将存储用于备份目的的人的问题。

备份 Git 存储库的最佳方法是尽早并经常提交并将您的更改频繁推送到 GitHub,即使您将它们推送到进行中的分支而不是 master或其他长 运行 分支。

如果您不使用 GitHub 或任何其他远程并且您的存储库是本地的,我建议您在 Google 驱动器中创建一个 bare repository,然后克隆您的存储库到 Google 以外的地方开车并从那里工作。每当您进行更改时,您都可以将它们推送到裸存储库。这样,您将拥有所有数据的两个副本,以防 Google 驱动器版本损坏。

Google 开车已经把我的生活搞砸了两次(是的,我需要看到第二次才能相信)。

避免忘记推送到安全位置的解决方案我创建了一些自动化任务。 您可以创建一个计划任务,每隔 X hours/days...等提交并推送您的更改。例如,一个正在进行的分支机构。 使用基于 Unix 的系统 (Mac / Linux) 你可以使用 crontab。

首先创建一个bash脚本,即:/home/myScripts/autoGit.sh

# add and commit changes
cd /home/myProject && /home/myGit commit -a -m "automated commit/push `date`"

# push git server
cd /home/myProject && /home/myGit push origin wip

然后根据需要创建 crontab 作业:

crontab -e

然后将命令添加到文件

mailto: your@email.com
59 * * * 1,2,3,4,5 /home/myScripts/autoGit.sh

这将在周一、周二、周三、周四、周五每 59 分钟提交并推送您的存储库。

希望对您有所帮助

(Google 虚拟云端硬盘用户) 我目前遇到这个问题,我找到的解决方案是将我的 git 存储库放在一个非同步硬盘中,然后在 GoogleFileStream 驱动器中为每个存储库创建一个镜像文件夹,这得到每次我执行 .bat 脚本时复制,使用 robocopy 命令 (Windows).

robocopy "\Git\to\repo1\nonsynced" "\Mirror\target\git\repo1\to\sync" /E /MIR

robocopy "\Git\to\repo2\nonsynced" "\Mirror\target\git\repo2\to\sync" /E /MIR

我像往常一样执行提交和推送,运行 脚本与驱动器同步。这可以通过 FolderMonitor 脚本或任务调度程序命令自动执行。