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