如何阻止 OneDrive 在 Windows 上下载 git.exe?

How do I stop OneDrive from downloading git.exe on Windows?

我在 Windows 上使用 Git 有一段时间了,但最近更改了设置并得到了这个。

在 Git Bash 的几乎每个命令(也在 PowerShell 和 Github 桌面上)我得到

git.exe is being downloaded on OneDrive

(翻译可能不完全一样)

最近更改的设置是将我的存储库移动到 OneDrive 文件夹,以便它们在两个会话之间同步:即工作桌面和远程虚拟机。

I can see that this may not be ideal, but it really works for me since I have the same settings on both sessions, and not really get used to doing many commit-push-pull. Not the main topic here, but feel free to comment.

(Edit): Upon reading solution, there are other ways to set this syncing that doesn't mess up with the internals of Git. Look for that instead. Thanks.

无论如何,奇怪的是通知只发生在远程虚拟机上,而不是桌面上。

我在回购协议中看到了一些关于某些文件的通知,然后我将其归因于 OneDrive 对我移动的每个 移动 文件都很管闲事。但后来我也看到了我不知道的文件,并且总是 git.exe 附在通知上。

在第一种情况下,我尝试调低 OneDrive 的通知。有人可能会说微软确实有不让用户设置通知的背景,所以我还在寻找。

谢谢。

大多数文件同步工具,如 OneDrive 和 Dropbox,都是通过逐个文件同步数据来运行的。如果您正在处理单个文字处理文档或电子表格,这是一种很好的方法。但是,当您使用 Git 存储库时,它就不那么好了。

在分支之间更改或进行提交时,Git 会同时更改并创建大量文件。为了正确同步,所有创建的文件必须以类似的顺序写入:必须写入所有 blob,然后是树,然后是提交,然后是可以更新的引用。如果你不按顺序执行此操作,你的存储库可能会损坏,因为你可能有引用不存在的对象的分支(或引用其他不存在的对象的对象)。

此外,这些工具最终可能会删除您希望在工作树中拥有的文件或重新创建您不需要的文件。所以总的来说,您不想使用这些工具之一同步任何 Git 存储库。

您可以使用 git bundle 编写捆绑文件并同步它,或者您可以使用 rsync 同步存储库,前提是它在您这样做时处于空闲状态(未被修改)。请注意,如果您同步工作树,Git 将需要在您将其同步到新机器时刷新所有文件,而且 Git 不会尝试防御有权访问的不受信任的用户工作树。

通过 OneDrive 同步您的 Git 安装本身也不是一个好主意,这听起来可能正在发生。相反,在每台机器上独立地为 Windows 安装 Git,并且不要尝试同步它。 OneDrive 应该有配置选项让你控制同步的内容。