Git存储库是否可以进行并发操作?

dro*_*del 12 git

有两种我感兴趣的场景.

  • 存储库是共享的,两个用户希望同时将更改推送到存储库
  • 我想使用cron作业安排每晚或每周"gc".它运行,有人想在操作期间推送或克隆.

在这两种情况下都存在腐败风险吗?

Ari*_*ini 11

Git允许使用悲观并发控制进行并发操作.

必要时,git会创建一些特殊文件来充当锁.

特别是,每次操作修改索引时,git都会创建一个index.lock.git目录中调用的文件来锁定共享资源.Git根据需要创建其他锁文件:例如,.keepgit index-pack操作期间创建文件.

通常,您不必担心使用git进行并发操作:它经过精心设计以支持它们.

有人可以告诉你不要担心gc使用cron作业,因为git本身会gc不时触发.即使这是真的,手册页本身也会建议:

Users are encouraged to run this task on a regular basis 
within each repository to maintain good disk space utilization
and good operating performance.
Run Code Online (Sandbox Code Playgroud)

因此,我认为安排一个工作任务来运行git的垃圾收集并不是一个坏主意.我只是想知道这是不成熟的优化还是你想要解决一个真实的,有问题的问题.我个人从来没有遇到过需要我手动操作的问题gc,但如果你的情况有所不同,我也不会感到惊讶.