您的位置:首页 > 其它

Git daemon使用小记

2015-04-12 13:36 295 查看
平时项目中我们常遇到这样的需求,需要在自己电脑上clone台式机上的git代码,从而省略了向Github远程服务器上传代码的过程。免除了一些授权Access问题。幸好有Git Daemon神器:

前提

代码是通过Git托管的,如果使用SVN的话,多增加一个Git repo也是可以的。

Step by Step

进入到自己工程所在的目录下,以Users/mingong/project/Sheldon为例:
cd  project/Sheldon


在Git项目根目录下开启Daemon服务器
git daemon --base-path=. --export-all --reuseaddr --informative-errors  —verbose


使用ifconfig查看本机电脑内网IP地址:
ifconfig
,以我的电脑为例,查看到的IP地址为
10.113.241.150


clone/pull
代码到另外一台电脑(两台电脑需在同一个内网下即可),为模拟需要,直接到我的Downloads目录下面模拟进行后续步骤。

首先我需要在Doanloads文件夹中
clone project: git clone git://10.113.241.150/sheldon


ls可以看到我的Downloads中已经成功clone了sheldon工程,clone了工程的下一步就是pull, 当A电脑上的代码变动之后,我需要直接更新代码,首先进入sheldon根目录中:
git pull git://10.113.241.150/


增加push权限

在B电脑上clone代码后,B电脑上的伙伴修改完代码会需要将代码push回A电脑的工程中,

在第2步中开启的git daemon给可访问的客户端read权限,在需要开启write权限时,我们需要给git daemon增加
—enable=receive-pack
,执行命令如下,

git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors  —verbose


There is one quirk: client can’t push into your active git branch. Before pushing, user on the server should change the branch, if client wants to push to this branch.

客户端B不能直接提交master到当前活跃分支,所以可以在B新建一个分支,只要提交分支到A的repo中即可,由A决定是否进行分支merge.

$ git checkout -b sharing
# made some changes ...
$ git commit -am "add sharing feature"
$ git push -u origin sharing
...
* [new branch]      sharing -> sharing
...


在服务器端merge分支

$ git checkout master
$ git merge sharing


至此,push工作也就基本完成了。Git 还是很强大的。

参考网址: taming-the-git-daemon-to-quickly-share-git-repository
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: