首页 > 代码库 > Git服务器的搭建和使用

Git服务器的搭建和使用

1. 安装Git

yum -y install git 

 

2. 创建git用户

adduser git

 

3. 创建证书登陆

  收集所有客户端需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

   保证ssh不输入密码能连接到git用户

 

4. 初始化

[root@app-01 opt]# git init --bare demo.git
Initialized empty Git repository in /opt/demo.git/

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。

 

5. 把owner改为git

chown -R git:git demo.git/

 

6. 禁用shell登陆

 将/bin/bash改成/usr/bin/git-shell;这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
[root@app-01 opt]# tail -1f  /etc/passwd
git:x:1002:1006::/home/git:/usr/bin/git-shell

 

7. 克隆远程仓库

  在客户端操作

[root@wls12c DEV]$ git clone ssh://git@120.77.85.77:2121/opt/demo.git
Initialized empty Git repository in /root/DEV/demo/.git/
warning: You appear to have cloned an empty repository.
[root@wls12c DEV]$ ls
demo

 

   至此git服务器就搭建完成了。

 

8. 初始化客户端的工作环境

[root@wls12c demo]$ git config --global user.name "Scott Cho"
[root@wls12c demo]$ git config --global user.email "root@wls12c.com"
[root@wls12c demo]$ git config --global core.editor vim

 

9. 向Git本地仓库中提交一个新文件

[root@wls12c demo]$ echo "I successfully cloned the Git repository" > readme.txt
[root@wls12c demo]$ git add readme.txt 
[root@wls12c demo]$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#    new file:   readme.txt
#
[root@wls12c demo]$ git log
fatal: bad default revision HEAD
[root@wls12c demo]$ git commit -m "Clone the Git repository"
[master (root-commit) b548d3b] Clone the Git repository
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 readme.txt
[root@wls12c demo]$ git log
commit b548d3bd469cf5f183e9be9a3b2949f6361b5385
Author: Scott Cho <root@wls12c.com>
Date:   Mon Feb 27 17:42:29 2017 +0800

    Clone the Git repository

 

10. 定义远程的Git服务器

[root@wls12c demo]$ git remote add server ssh://git@120.77.85.77:2121/opt/demo.git

 

11. 将文件提交到远程Git服务器

[root@wls12c demo]$ git push -u server master
Counting objects: 3, done.
Writing objects: 100% (3/3), 262 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git@120.77.85.77:2121/opt/demo.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from server.

 

Git服务器的搭建和使用