git 服务器搭建和管理
来源:互联网 发布:centos 伪静态 编辑:程序博客网 时间:2024/05/21 17:26
注意:
使用ssh协议的时候,库的路径可以是绝对路径
使用git协议的时候,必须搭建Gitosis管理,且库的路径是相对于/home/git/repositories库的家目录的
/home/git/repositories 可以是其他目录的软链接
1. 安装git
# apt-get install git
# sudo addusr git
# mkdir /home/git/.ssh
# chown git:git /home/git/.ssh
# chown -R git:git /opt/git/
# chown -R git:git /home/git/*
# su git //切换到git初始化,后面都是以git用户登录操作的
# ssh-keygen
# touch /home/git/.ssh/authorized_keys
将允许用户的公钥配置到.ssh目录下的authorized_keys文件 --- 这样就能使用ssh协议获取和提交代码了
2. git 权限管理配置Gitosis --即git协议环境的搭建
a. 安装Gitosis
# apt-get install python-setuptools
# git clone git://eagain.net/gitosis.git
或者: git clone https://github.com/res0nat0r/gitosis.git
# cd gitosis
# sudo python setup.py install
# mv /home/git/.ssh/authorized_keys /home/git/.ssh/authorized_keys.bak -- 必须做,因为gitosis会有自己的authorized_keys,当存在这个文件的时候,这个文件会生效,导致gitosis 配置的git协议不生效,只能使用ssh协议加绝对路径访问
# ssh-copy-id -i ~/.ssh/id_rsa.pub git@server_ip 这个操作会自动生成authorized_keys,千万别操作
b. 配置权限管理仓库
Gitosis 默认的仓库家目录默认在/home/git/repositories,如果需要更默认仓库的家目录路径,只要给他们直接建立软链接即可.(假设我们的库家目录指统一定在/opt/git)
# ln -s /opt/git /home/git/repositories
c. 导入具有配置权限管理仓库的管理员的公钥 (只有被导入公钥的用户,才能操作权限管理仓库,其他用户的公钥只要放在权限管理仓库的kerdir下即可)
# sudo -H -u git gitosis-init < /home/git/.ssh/id_dsa.pub
// # sudo chmod 755 /opt/git/gitosis-admin.git/hooks/post-update
d. 启动sshd服务
# sudo apt-get install openssh-server
# /etc/init.d/ssh start
# netstat -tnlp |grep ssh
e. 添加git用户
# git clone git@gitserver:gitosis-admin.git
copy 用户的公钥到keydir下面,并在gitosis.conf添加用户权限数组等信息
# git push
3. 添加工程仓库
a. 不存在基础项目时:
# cd /opt/git
# mkdir project.git
# cd project.git
# git init --bare
b. 在已有项目上创建仓库
# git clone --bare my_project my_project.git
# scp -r my_project.git user@git.example.com:/opt/git
c. 添加项目到gitosis
#vim
-------
[gitosis]
loglevel=DEBUG --- 调试级别,可以看~/.gitosis日志
[group write]
writable = ics mboot
members = scott josie jessica
[group read]
readonly = ics mboot
members = john
-------
d. 为仓库添加新分支: -- 直接clone下来再添加分支,再提交,这样会出现问题,因为库里面没有分支供合并你提交的内容
在客户端:
# mkdir project
# cd project
# git init
# touch readme -- 需要创建一些源文件提交,要不会报下面的错误
error: src refspec master does not match any.
error: failed to push some refs to 'git@192.168.15.121:tv608/ics.git'
# git add .
# git remote add origin git@gitserver_ir:project.git --- origin 为给远程起的别名
# git push origin master -- 把当前分支推送为仓库master分支
e. 开启远程git协议访问控制 // 其实git clone git@gitserver_ir:project.git 这样的格式是使用ssh登录git服务器,是在ssh通道上面执行git协议的
# sudo apt-get install git-daemon-run
安装后会创建下面两个用户
# cat /etc/passwd | grep git
gitlog:x:117:65534::/nonexistent:/bin/false
gitdaemon:x:118:65534::/nonexistent:/bin/false
# dpkg -L git-daemon-run -- 查看安装包安装了哪些文件
# vim /etc/sv/git-daemon/run
修改--export-all --base-path=/opt/git 为你git 的仓库根目录,并添加--export-all参数
加入 --export-all 后,在git仓库中就不必创建git-daemon-export-ok文件。
--enable=receive-pack 加入这个参数后,客户可以提交代码更新,默认是不允许的
# sudo sv stop git-daemon
# sudo sv start git-daemon
或者:
#sudo runsv git-daemon
# git clone git://serverip/project
or
# git clone git://serverip/project.git
4. git 操作
添加远程仓库,命名为origin或者 aaa
# git remote add origin git@gitserver:project.git
向远程仓库origin的master分支提交更新
# git push origin master
回滚操作
# git reset
git reset --soft/mixed/hard commit_id 取消commit
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一 级。如果还要提交,直接commit即可。
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到 某个版本,只保留源码,回退commit和index信息
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
使用ssh协议的时候,库的路径可以是绝对路径
使用git协议的时候,必须搭建Gitosis管理,且库的路径是相对于/home/git/repositories库的家目录的
/home/git/repositories 可以是其他目录的软链接
1. 安装git
# apt-get install git
# sudo addusr git
# mkdir /home/git/.ssh
# chown git:git /home/git/.ssh
# chown -R git:git /opt/git/
# chown -R git:git /home/git/*
# su git //切换到git初始化,后面都是以git用户登录操作的
# ssh-keygen
# touch /home/git/.ssh/authorized_keys
将允许用户的公钥配置到.ssh目录下的authorized_keys文件 --- 这样就能使用ssh协议获取和提交代码了
2. git 权限管理配置Gitosis --即git协议环境的搭建
a. 安装Gitosis
# apt-get install python-setuptools
# git clone git://eagain.net/gitosis.git
或者: git clone https://github.com/res0nat0r/gitosis.git
# cd gitosis
# sudo python setup.py install
# mv /home/git/.ssh/authorized_keys /home/git/.ssh/authorized_keys.bak -- 必须做,因为gitosis会有自己的authorized_keys,当存在这个文件的时候,这个文件会生效,导致gitosis 配置的git协议不生效,只能使用ssh协议加绝对路径访问
# ssh-copy-id -i ~/.ssh/id_rsa.pub git@server_ip 这个操作会自动生成authorized_keys,千万别操作
b. 配置权限管理仓库
Gitosis 默认的仓库家目录默认在/home/git/repositories,如果需要更默认仓库的家目录路径,只要给他们直接建立软链接即可.(假设我们的库家目录指统一定在/opt/git)
# ln -s /opt/git /home/git/repositories
c. 导入具有配置权限管理仓库的管理员的公钥 (只有被导入公钥的用户,才能操作权限管理仓库,其他用户的公钥只要放在权限管理仓库的kerdir下即可)
# sudo -H -u git gitosis-init < /home/git/.ssh/id_dsa.pub
// # sudo chmod 755 /opt/git/gitosis-admin.git/hooks/post-update
d. 启动sshd服务
# sudo apt-get install openssh-server
# /etc/init.d/ssh start
# netstat -tnlp |grep ssh
e. 添加git用户
# git clone git@gitserver:gitosis-admin.git
copy 用户的公钥到keydir下面,并在gitosis.conf添加用户权限数组等信息
# git push
3. 添加工程仓库
a. 不存在基础项目时:
# cd /opt/git
# mkdir project.git
# cd project.git
# git init --bare
b. 在已有项目上创建仓库
# git clone --bare my_project my_project.git
# scp -r my_project.git user@git.example.com:/opt/git
c. 添加项目到gitosis
#vim
-------
[gitosis]
loglevel=DEBUG --- 调试级别,可以看~/.gitosis日志
[group write]
writable = ics mboot
members = scott josie jessica
[group read]
readonly = ics mboot
members = john
-------
d. 为仓库添加新分支: -- 直接clone下来再添加分支,再提交,这样会出现问题,因为库里面没有分支供合并你提交的内容
在客户端:
# mkdir project
# cd project
# git init
# touch readme -- 需要创建一些源文件提交,要不会报下面的错误
error: src refspec master does not match any.
error: failed to push some refs to 'git@192.168.15.121:tv608/ics.git'
# git add .
# git remote add origin git@gitserver_ir:project.git --- origin 为给远程起的别名
# git push origin master -- 把当前分支推送为仓库master分支
e. 开启远程git协议访问控制 // 其实git clone git@gitserver_ir:project.git 这样的格式是使用ssh登录git服务器,是在ssh通道上面执行git协议的
# sudo apt-get install git-daemon-run
安装后会创建下面两个用户
# cat /etc/passwd | grep git
gitlog:x:117:65534::/nonexistent:/bin/false
gitdaemon:x:118:65534::/nonexistent:/bin/false
# dpkg -L git-daemon-run -- 查看安装包安装了哪些文件
# vim /etc/sv/git-daemon/run
修改--export-all --base-path=/opt/git 为你git 的仓库根目录,并添加--export-all参数
加入 --export-all 后,在git仓库中就不必创建git-daemon-export-ok文件。
--enable=receive-pack 加入这个参数后,客户可以提交代码更新,默认是不允许的
# sudo sv stop git-daemon
# sudo sv start git-daemon
或者:
#sudo runsv git-daemon
# git clone git://serverip/project
or
# git clone git://serverip/project.git
4. git 操作
添加远程仓库,命名为origin或者 aaa
# git remote add origin git@gitserver:project.git
向远程仓库origin的master分支提交更新
# git push origin master
回滚操作
# git reset
git reset --soft/mixed/hard commit_id 取消commit
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一 级。如果还要提交,直接commit即可。
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到 某个版本,只保留源码,回退commit和index信息
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
- git 服务器搭建和管理
- 搭建git服务器和权限管理(git + gitolite)
- ubuntu11.10搭建git服务器, 使用gitosis管理git服务器
- git 服务器搭建和使用
- Git服务器搭建和使用
- Git服务器搭建和配置
- 搭建git服务器做源代码管理
- git服务器搭建及gitolite权限管理
- 代码管理之git服务器搭建
- 搭建git服务器进行管理项目
- git服务器搭建及gitolite权限管理
- 在linux(CentOS)上搭建git服务器和配置gitolite权限管理
- 在linux(CentOS)上搭建git服务器和配置gitolite权限管理
- Git服务器 - 搭建git
- Git 搭建Git服务器
- Ubuntu10.04搭建Git服务器和GitWeb
- Ubuntu10.04搭建Git服务器和GitWeb
- ubuntu搭建git服务器和心得体会
- HibernateTemplate及generator用法(转)
- intent传递字符串数组
- 最强修改/解析APK教程
- 利用Selenium搭建Nunit测试框架
- MyEclipse下实现邮箱收发功能可能遇到的问题及解决办法
- git 服务器搭建和管理
- VS2008(VC++)使用Ado读取SQL Server和Access数据库
- Java <->Json
- wxPython打包相关
- Android 4.2.2原生Launcher修改使之可以运行过程小结
- Android RelativeLayout 如何使控件伴随左侧控件位置变换,而不使控件被挤走
- 基础的重要性
- repo 服务器环境搭建及客户端使用
- 创建历史表