近来,需要向开源项目提交代码,终于意识到了git的重要性,原因就不用多说了(人家都采用git来进行代码版本管理)。
于是,花了上午的时间自己搭建了一个git服务器,并把搭建的详细步骤和注意事项与大家分享。
1. git的安装和配置
(1)使用yum源安装git
(2)创建git用户并设置密码
-
#useradd--home/home/git
git
-
#passwd git
-
//注意这里要设置一个密码,建议不要不设密码,网上很多资料都不设密码
(3)创建一个git仓库,验证git是否可用
-
在使用git之前,要设置git的两个全局变量,设置方式为:
-
-
# git config --global user.name "dylan"
-
# git config --global user.email "ustc.dylan@email.com"
-
设置git仓库目录的权限
-
-
# su - git //切换到git用户
-
$ chmod -R 755 /home/git //修改目录的权限
-
创建并初始化一个repository
-
-
$ mkdir /home/git/repo //假设要创建的repository放在/home/git/repo目录下
-
$ cd /home/git/repo
-
$ mkdir test_repo
-
$ cd test_repo
-
$ git init --bare
-
测试新创建的repository是否可用
-
-
su - test (test为另外一个user或者exit,使用root用户)
-
$ cd /home/test
-
$ mkdir repos
-
$ cd repos
-
$ git clone /home/git/repo/test_repo
如果显示"Initialized empty Git repository in /home/git/repo/test_repo/.git/",则说明成功的clone了一个local repository。之后就可以在此repository下进行开发了,比如,添加一个readme.txt文件。
-
-
$ cd test_repo
-
$ vim readme.txt (创建一个文件)
-
$ git add . (注意后面有一个[.])
-
$ git commit -a
-
$ git push origin master
注意:如果此时报错,最大的原因是test_repo的refs和objects目录的权限不够,执行如下操作即可(git server端的repository下的这两个目录)。
-
$ chmod -R 777 refs/
-
$ chmod -R 777 objects/
2. gitosis的安装
(1)python-setuptools的安装(因为gitosis的安装脚本是用python写的)
-
#yum install python-setuptools
(2)gitosis的安装
-
#git clone git://github.com/res0nat0r/gitosis.git//下载gitosis到你想存放的目录下
-
#cd gitosis
-
#python setup.py install //如果没有报错,则说明安装成功
(3)创建是用这个git server的用户的公钥
因为gitosis的访问是通过ssh访问的,所以我们还需要创建一个ssh的访问公钥。找另外一台机器(如果条件允许)作为git server的客户端机器创建公钥,然后传到git服务器上。(如果为了简便,也可在git服务器上创建公钥,使用git用户或者其他用户都行。为了方便,这里采用git服务器,并且使用git用户。
-
# su - git
-
$ ssh-keygen -t rsa
公钥生成了,默认放在/home/git/.ssh/id_rsa.pub下,如果生成公钥时设置了密码,注意记住密码,为了简单,我这里没有设置密码。
(4)配置gitosis
gitosis对git的各种管理通过gitosis-admin.git这个项目来完成,gitosis-admin.git项目本身又被置于git下管理,所以需要先在client端clone gitosis-admin.git, 根据需求修改后,将修改提交到git server即可生效。
此处的含义就是:你想在哪对gitosis进行配置,就需要在哪clone到gitosis-admin.git.
-
假设在于gitosis不同的另外一台机器上,使用git用户将gitosis-admin.git clone到本地。
-
-
git clone git@192.168.x.xx:/home/git/repositories/gitosis-admin.git
-
修改gitosis配置文件gitosis.conf
-
-
$ vim gitosis.conf
-
//会看到如下内容
-
-
[gitosis]
-
-
[group gitosis-admin]
-
writable = gitosis-admin
-
members = git@compute-29-01.local
gitosis.conf 文件是用来设置用户、仓库和权限的控制文件(对于gitosis.conf文件的详细含义,以及keydir目录下公钥的作用,将会另写文档说明,在此不再详述),只需知道gitosis仓库是可写的,支持的用户有git
(5)新添加repository
修改gitosis-admin的配置文件gitosis.conf,新添加一个repository,例如:
-
[gitosis]
-
[group gitosis-admin]
-
writable = gitosis-admin
-
members = git@compute-29-01.local
-
[group test_repo] //新添加的仓库名称
-
writable = test_repo //此仓库的读写权限,此处为可写
-
members = user1@host1 user2@host2 //可以访问此仓库的用户名@主机名
-
假设当user1,来访问这个test_repo仓库时,需要输入如下命令:
-
git clone user1@git_server_ip:/home/git/repo/test_repo.git
此时会要求输入user1的密码,此密码就是创建user1的公钥时输入的密码。那么gitosis又是怎么来确定user1的身份的呢? 这就要求必须事先将user1产生的公钥传给管理员,即对gitosis-admin有权限操作的管理人员,然后由他将公钥拷贝到keydir目录下,然后,执行git add,git push即可。
分享到:
相关推荐
华为OceanStor系列存储多路径软件适用于RedHat/CentOS,华为存储多路径软件适用于RedHat/CentOS
OEL/Redhat/CentOS等linux平台gcc、g++的全套rpm安装包
RedHat/CentOS ext4无法格式化大分区 补充ext4格式化方式
该资料包提供了在redhat/centos 6版本上安装createrepo命令所需的rpm包,并提供安装说明文档,以及如何配置制作yum本地源的指导文档。
zabbix snmp redhat7/centos7 离线安装包zabbix snmp redhat7/centos7 离线安装包zabbix snmp redhat7/centos7 离线安装包
RedHat/CentOS7离线安装Oracle11g_R2_x64所需的依赖包。 rpm -ivh \ mpfr-3.1.1-4.el7.x86_64.rpm \ compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm \ libmpc-1.0.1-3.el7.x86_64.rpm \ libXau-1.0.8-2.1.el7.x86_64....
通用版redhat6或者centos6的yum源
ansible-nexus3-oss, Ansible角色为 redhat/centos提供 Nexus 仓库管理器 3.x Ansible角色:Nexus 3-操作系统这里角色在 centos/rhel上安装和配置 Nexus 存储库管理器 操作系统 版本 3.x 。除了 blobstores -related...
并将检测日志输出到当前目录下以当前文件名开头以.log结尾的文件中,测试环境centos7.3以及redhat8测试通过(脚本留有联系信息,下载后不能用可以联系) zookeeperPath='/opt/app/kafka_2.11-2.1.0/bin' ...
oracleasm-support-2.1.8-1.el6.x86_64 oracleasmlib-2.0.4-1.el6.x86_64 安装顺序: rpm -ivh kmod-oracleasm-2.0.8-15.el6_9.x86_64.rpm rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm rpm -ivh ...
Redhat6.6下测试通过。安装说明: 1.解压并且解包 输入命令:tar -zxvf apache-tomcat-6.0.53.tar.gz 在目录下有apache-tomcat-6.0.53文件夹,重命名为tomcat 2、修改环境变量 在目录/etc下修改profile文件 export ...
红帽系统的双网卡绑定文档,复制代码,只修改IP即可直接用
Redhat 使用CentOS的yum源进行升级或软件安装 分类: linux 2012-07-19 15:54 1113人阅读 评论(0) 收藏 举报 Redhat默认的源不但速度不给力,而且软件版本陈旧,今天试着将Redhat默认源替换为CentOS的163源,发现...
5.暂时不支持centos和redhat 版本为6.x的系统自动安装 6.可同时按住Ctrl和c停止脚本的安装运行 7.若运行脚本表明您愿意承担脚本运行带来的风险和责任,请提前检查备份 8.反馈可联系qq 1024588739 9.可安装目前最新版...
RedHat_Linux6.3下Oracle_11g安装图解教程
RedHat7/CentOS7最小化安装Oracle11G所需要的依赖包,通过rpm -ivh --force --nodeps强制安装即可。
VMWare虚拟机上搭建RedHat6和CentOS7.9系统,包括系统的搭建详细流程以及网络IP配置,DNS配置(虚拟机访问外网)。
文字和界面详细描述红帽6.3安装过程,其中一些选择性的安装可根据自己使用情况进行选择。
本教程旨在通过一步步的过程教你在Redhat/CentOS 6操作系统环境下,Linux U盘加载阵列卡驱动(无需制作USB KEY),完成整个操作系统安装过程。
centos/redhat7.x离线安装git,包含整套依赖包以及安装说明文档,如果安装出现yum未注册,请下载本主 Redhat7.6离线替换yum源为网易源 资源包。 centos/redhat7.x离线安装git,包含整套依赖包以及安装说明文档,如果...