- 主题:把 git 布署到一个共享的 nfs 目录里面会怎么样?
假设有两台电脑挂载了同一个服务器 nfs 目录到 ~/gitrepo/
我在里面 git init 了一个 demo 仓库。
那么两个人就这样子直接使用这个 demo 仓库,直接在里面 git commit 会有什么问题吗?
这样子两个人共用工作区,当然不太好了。换一种做法:
cd ~
git clone /mnt/gitrepo/demo.git
这样子我在 demo 工程里面操作完,两个人同时执行 git push 会出什么问题吗?仓库在 git push 的时候会加锁吗?
--
FROM 183.253.147.*
非fastforward push不上去的
【 在 hgoldfish 的大作中提到: 】
: 假设有两台电脑挂载了同一个服务器 nfs 目录到 ~/gitrepo/
:
: 我在里面 git init 了一个 demo 仓库。
:
: 那么两个人就这样子直接使用这个 demo 仓库,直接在里面 git commit 会有什么问题吗?
:
: 这样子两个人共用工作区,当
: ..................
发自「今日水木 on Redmi K30 5G」
--
FROM 111.201.23.*
第一种不行,第二种问题不大,但是不建议。
推荐你在服务器部署一个gitea。
这是常见的工作流。
【 在 hgoldfish 的大作中提到: 】
:
: 假设有两台电脑挂载了同一个服务器 nfs 目录到 ~/gitrepo/
:
: 我在里面 git init 了一个 demo 仓库。
:
#发自zSMTH@23054RA19C
--
FROM 113.143.104.*
为啥要这样,看起来毫无意义
【 在 hgoldfish 的大作中提到: 】
: 假设有两台电脑挂载了同一个服务器 nfs 目录到 ~/gitrepo/
:
: 我在里面 git init 了一个 demo 仓库。
:
: 那么两个人就这样子直接使用这个 demo 仓库,直接在里面 git commit 会有什么问题吗?
:
: 这样子两个人共用工作区,当
: ..................
--
FROM 111.201.129.*
可能跟 nfs的挂载参数有关系,要nfs4才完整支持文件锁,local file lock选项不能开,sync / async 不确定有没有影响
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 假设有两台电脑挂载了同一个服务器 nfs 目录到 ~/gitrepo/
:
: 我在里面 git init 了一个 demo 仓库。
:
--
FROM 115.199.100.*
第二种只要 nfs 支持文件锁就没啥问题对吧?
git push 会不会在仓库里面先创建一个锁文件,如果有另外一个 git push 检测到这个锁文件就禁止另外一个 push? 需要文件系统支持 flock?
我知道有很多 git 服务器。只是想实验一种新的方法。
【 在 VincentGe 的大作中提到: 】
: 第一种不行,第二种问题不大,但是不建议。
: 推荐你在服务器部署一个gitea。
: 这是常见的工作流。
: ...................
--
FROM 120.41.147.*
async 的 nfs,打开文件时也得去服务器处理。
我之前看的资料说 sync/async 只影响文件打开之后的读写。
【 在 StephenLee 的大作中提到: 】
: 可能跟 nfs的挂载参数有关系,要nfs4才完整支持文件锁,local file lock选项不能开,sync / async 不确定有没有影响
--
FROM 120.41.147.*
git不依赖文件系统的锁
git的push是原子性的
具体你实验或看git源码
【 在 hgoldfish 的大作中提到: 】
:
: 第二种只要 nfs 支持文件锁就没啥问题对吧?
:
: git push 会不会在仓库里面先创建一个锁文件,如果有另外一个 git push 检测到这个锁文件就禁止另外一个 push? 需要文件系统支持 flock?
:
#发自zSMTH@23054RA19C
--
FROM 113.143.104.*
你这样说我就放心了。
看源代码要花费比较多的时间。所以我就直接在论坛这边问一下了。看看大家有没有相关的经验。
【 在 VincentGe 的大作中提到: 】
: git不依赖文件系统的锁
: git的push是原子性的
: 具体你实验或看git源码
: ...................
--
FROM 120.41.147.*
你别放心,你放心我就担心了,数据无价,不要乱来。
我建议你按照常见的开发模式来。
git push是通过引用实现的,它会在远程仓库创建一个引用,然后进行检查,然后进行移动引用。
【 在 hgoldfish @ [LinuxDev] 的大作中提到: 】
:
: 你这样说我就放心了。
:
: 看源代码要花费比较多的时间。所以我就直接在论坛这边问一下了。看看大家有没有相关的经验。
:
#发自zSMTH@23054RA19C
--
FROM 113.143.104.*