今天遇到一个问题,怎么在两台电脑之前分享Git Repo。之前的做法是使用AirDrop传输,或者用Skype发送。今天了解到一种新的方法,git提供了git daemon
,可以很方便地分享本地Git Repo的读写权限。
git daemon
启动了一个TCP服务,通过git://
协议分享Git Repo,默认的端口号是9418
,它会监听该端口,提供服务。但是需要注意的是,这种方式是不安全的,通常只在安全的值得信赖的网络中使用。如果想要安全的解决方案,应该使用SSH协议。
步骤是:
1.进入想要分享的Project目录:
1
|
|
2.clone裸仓库:
1
|
|
完成后,git会在当前目录下创建一个名为Project.git的目录。
3.在Project.git目录下创建一个名为git-daemon-export-ok的文件:
1
|
|
这是为了让daemon知道只分享该Git Repo,也可以在运行git daemon
时加上--export-all
,这样所有的Git Repo都会被分享。
4.将Project.git目录移动到你想要分享的目录中:
1
|
|
5.运行git daemon
命令:
1
|
|
这样就可以clone本地的Git Repo了:
1
|
|
-–base-path=
,所有的请求都是该path的相对链接,运行上面的git clone
命令时,daemon会理解path为/Shared/Project.git
。
通过上述步骤,只能通过git://
协议获得clone的权限,如果需要获得push的权限,可以在运行git daemon
命令时加上--enable=receive-pack
,或者进入Shared/Project.git
目录,输入:
1 2 |
|
git会在当前目录下的config文件中添加以下配置:
1 2 |
|
这时就可以允许其他用户拥有push的权限。默认上该权限是关闭的,因为使用的协议并未进行验证,也就是说任何人可以push任何东西到Git Repo中,包括清除它。这意味着只能在一个封闭的局域网中设置它。
参考文献