作者:fo切為祢 | 来源:互联网 | 2023-06-14 23:07
我的雇主刚刚转用git,所以我的同事还有些缺乏经验。他们现在的所作所为让我很担心,所以我正在写这篇文章。他们在一台机器上克隆了一个 git 存储库,然后通过 Windows 共享共享该存储库。现在,在
我的雇主刚刚转用git,所以我的同事还有些缺乏经验。他们现在的所作所为让我很担心,所以我正在写这篇文章。
他们在一台机器上克隆了一个 git 存储库,然后通过 Windows 共享共享该存储库。现在,在共享存储库的机器上,他们正在处理它。只要不超过一个人同时工作,这种方法的效果出奇地好。
还没有什么爆炸,但我对此有一种不好的预感。
什么可能出错?或者这实际上是安全的吗?
在有人问之前:他们这样做是因为共享目录上有脚本,他们不想复制到他们的机器上。我想讲出来的,但他们喜欢这个主意了很多。
回答
如果他们都永远只读从这个共享区域,这是确定的。(当有人更新共享区域时,他们都必须停止阅读。)
写入共享区域通常是一个坏主意,因为:
- 两个人可以尝试写入同一个文件;
- 一个人可以尝试在其他人写入文件时读取文件。
有些系统会尝试1来协调这类事情(例如,Dropbox)。Git 不是其中之一。不要这样做。(也不要将 Git 存储库放在 Dropbox 区域中。)
基本上,当人们做这种事情时会发生什么,它工作了一段时间,然后它就坏了,没有人能准确地弄清楚发生了什么。2 (这与使用允许线程或其他并发竞争的语言编写的程序相同。)
1字的尝试是在这里是有原因的:这些系统总是有一些角落情况下,他们无法确定哪个版本是正确的“最新”版本,并开始做这样的事情转file.ext
成file.ext (1)
并file.ext (2)
强制用户来解决冲突。对关键的 Git 内部文件(例如保存HEAD
ref的文件)执行此操作将破坏存储库。
2在一些类似的情况下,我得到了丰厚的报酬来弄清楚发生了什么和/或清理烂摊子。随着咨询工作的进行,这些都不错。