Mac下搭建Git 本地库

需求:使用闲置机器搭建一个项目组内部的Git Repository,以供项目组内部管理一些自己的小项目。

需求分解:
1、项目组成员可以通过clone,pull,push获取到服务器上的最新的代码。
2、项目组成员可以把本地的repository的代码推送到服务器上。
3、可以通过网页查看git本地库的状态。

实现过程:
1、在服务器上创建Git仓库。
mkdir git_repo/test.git
cd git_repo/test.git
git init –bare

创建完之后,test.git 下得到如下目录:


        本例中使用git协议(其他三种为local,ssl,http)作为传输协议,git传输协议的好处在于速度快。 使用Git协议,要求在服务器端启动一个特殊的守护进程来监听类似于SSH服务的特定端口(9418),另外,想要支持Git协议的仓库,还需要在仓库中创建git-export-daemon-ok文件,这是git协议提供服务的前提条件。
touch git-daemon-export-ok

sudo /usr/local/git/libexec/git-core/git-daemon –base-path=/Library/WebServer/Documents/ --syslog --verbose --pid-file=/var/run/git-daemon.pid --user=root --group=wheel --detach --enable=upload-pack --enable=upload-archive --enable=receive-pack

注: --base-pathz指定了Git仓库的根目录
    --user,--group指定了用户和用户组,

2、clone远程仓库到本地(默认使用git协议)
git clone git://<local-ip>/test.git

clone远程仓库,会在当前目录新加test目录

3.在本地仓库新加文件,并push到远程库
cd test
touch README
git add .
git commit –m “add README”

git remote add local git://<local-ip>/test.git
git push local master


4、新建一个本地库,添加文件并push到一个远程库
创建本地库
mkdir test2
git init
touch README
git add .
git commit –m “add README”


创建远程库
mkdir 
mkdir git_repo/test2.git
cd git_repo/test2.git
git init –bare
touch git-daemon-export-ok


把本地库内容推送到远程库
cd test2
git remote add local2 git://<local-ip>/test2.git
git push local2 master


5、为远程仓库配置网页,让用户可以通过网页查看远程库信息。
Git自带了一个叫做GitWeb的CGI脚本,用户可以通过如下的命令生成一个git repository的简单web界面。
git instaweb

该命令默认使用lighttpd作为轻量级服务器。Linux系统都默认安装了lighttpd服务,Mac因为预装了Ruby,可以使用webrick服务器,指定方法如下:
git instaweb --httpd=webrick

这会在 1234 端口开启一个 HTTPD 服务,随之在浏览器中显示该页,十分简单。关闭服务时,只需在原来的命令后面加上 --stop 选项就可以了
git instaweb --httpd=webrick --stop

猜你喜欢

转载自ningandjiao.iteye.com/blog/1515599