创建git服务器上用的裸仓库方法
2014-10-20 09:08
197 查看
方法一:
1.初始化一个空的裸仓库
$ cd /home/repo
$ mkdir teamwork.git
$ cd teamwork.git
$ git init - -bare 注:这是在服务器上运行的,是为了初始化一个根级的git仓库
2.空仓库是不能clone的,所以需要某一个有写权限的人初始 化一个版本
usr@pc1:~/work$ mkdir teamwork-ori
usr@pc1:~/work$ cd teamwork-ori/
usr@pc1:~/work/teamwork-ori$ git init 注:这是在用户端的PC上执行的,为的是初始化一个本地的版本库
usr@pc1:~/work/teamwork-ori$ echo “/*add something*/” > hello
usr@pc1:~/work/teamwork-ori$ git add .
usr@pc1:~/work/teamwork-ori$ git commit -am “initial version”
usr@pc1:~/work/teamwork-ori$ git remote add origin git@<server>:teamwork.git
usr@pc1:~/work/teamwork-ori$ git push origin master
到此为止teamwork已经有了一个版本了,team的其他成员只要先clone一下 teamwork仓库,就可以任意玩了。
方法二:
1.把现有仓库导出为裸仓库 — 即一个不包含当前工作目录的仓库。
做法直截了当,克隆时用
2.把裸仓库移到服务器上
有了裸仓库的副本后,剩下的就是把它放到服务器上并设定相关协议。假设一个域名为 git.example.com 的服务器已经架设好,并可以通过 SSH 访问,我们打算把所有 Git 仓库储存在/opt/git 目录下。只要把裸仓库复制过去:
$ scp -r my_project.git user@git.example.com:/opt/git
现在,所有对该服务器有 SSH 访问权限,并可读取 /opt/git 目录的用户都可以用下面的命令克隆该项目:
$ git clone user@git.example.com:/opt/git/my_project.git
如果某个 SSH 用户对 /opt/git/my_project.git 目录有写权限,那他就有推送权限。如果到该项目目录中运行 git init 命令,并加上 --shared 选项,那么 Git 会自动修改该仓库目录的组权限为可写(译注:实际上 --shared 可以指定其他行为,只是默认为将组权限改为可写并执行 g+sx,所以最后会得到 rws。)。
$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared
由此可见,根据现有的 Git 仓库创建一个裸仓库,然后把它放上你和同事都有 SSH 访问权的服务器是多么容易。现在已经可以开始在同一项目上密切合作了。
1.初始化一个空的裸仓库
$ cd /home/repo
$ mkdir teamwork.git
$ cd teamwork.git
$ git init - -bare 注:这是在服务器上运行的,是为了初始化一个根级的git仓库
2.空仓库是不能clone的,所以需要某一个有写权限的人初始 化一个版本
usr@pc1:~/work$ mkdir teamwork-ori
usr@pc1:~/work$ cd teamwork-ori/
usr@pc1:~/work/teamwork-ori$ git init 注:这是在用户端的PC上执行的,为的是初始化一个本地的版本库
usr@pc1:~/work/teamwork-ori$ echo “/*add something*/” > hello
usr@pc1:~/work/teamwork-ori$ git add .
usr@pc1:~/work/teamwork-ori$ git commit -am “initial version”
usr@pc1:~/work/teamwork-ori$ git remote add origin git@<server>:teamwork.git
usr@pc1:~/work/teamwork-ori$ git push origin master
到此为止teamwork已经有了一个版本了,team的其他成员只要先clone一下 teamwork仓库,就可以任意玩了。
方法二:
1.把现有仓库导出为裸仓库 — 即一个不包含当前工作目录的仓库。
做法直截了当,克隆时用
--bare选项即可。裸仓库的目录名一般以
.git结尾,像这样:
$ git clone --bare my_project my_project.git Initialized empty Git repository in /opt/projects/my_project.git/ 现在my_project.git目录中已经有了一份 Git 目录数据的副本。
2.把裸仓库移到服务器上
有了裸仓库的副本后,剩下的就是把它放到服务器上并设定相关协议。假设一个域名为 git.example.com 的服务器已经架设好,并可以通过 SSH 访问,我们打算把所有 Git 仓库储存在/opt/git 目录下。只要把裸仓库复制过去:
$ scp -r my_project.git user@git.example.com:/opt/git
现在,所有对该服务器有 SSH 访问权限,并可读取 /opt/git 目录的用户都可以用下面的命令克隆该项目:
$ git clone user@git.example.com:/opt/git/my_project.git
如果某个 SSH 用户对 /opt/git/my_project.git 目录有写权限,那他就有推送权限。如果到该项目目录中运行 git init 命令,并加上 --shared 选项,那么 Git 会自动修改该仓库目录的组权限为可写(译注:实际上 --shared 可以指定其他行为,只是默认为将组权限改为可写并执行 g+sx,所以最后会得到 rws。)。
$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared
由此可见,根据现有的 Git 仓库创建一个裸仓库,然后把它放上你和同事都有 SSH 访问权的服务器是多么容易。现在已经可以开始在同一项目上密切合作了。
相关文章推荐
- git 本地库的创建以及如何完成服务器仓库的分支的映射和同步
- 服务器上Git创建仓库
- git 常用命令总结和git服务器代码仓库创建
- Git基本使用方法——本地创建一个 git 项目推送到远程空仓库
- 在服务器上创建git仓库
- 服务器上创建git仓库
- git 使用笔记以及github注册以及创建仓库方法
- 创建 Git 源码服务器仓库
- Git 基本介绍、获取Git仓库方法、创建分支
- git使用方法---仓库的创建及更新
- 搭建git服务器—创建本地git仓库
- 新建git仓库到服务器 和 客户端遇到的问题和解决方法
- GIT的服务器仓库和本地仓库的创建于区别
- [CodeVersion--GIT]在自己服务器上创建私有代码仓库
- git 手误在桌面上创建了本地仓库,解决方法
- 在Linux系统中使用Gitblit工具创建Git仓库的方法
- git服务器创建,冲突解决,远程仓库获取指定文件
- 误操作删除服务器上git仓库的处理方法
- 使用layman来同步管理你远程的git,svn仓库的方法[原创]
- 收集的比较全的automation服务器不能创建对象 异常原因和解决方法第1/2页