Git服务器的搭建和使用

Posted 头痛不头痛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git服务器的搭建和使用相关的知识,希望对你有一定的参考价值。

1. 安装Git

yum -y install git 

 

2. 创建git用户

adduser git

 

3. 创建证书登陆

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

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

 

4. 初始化

[[email protected]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每次一登录就自动退出。
[[email protected]01 opt]# tail -1f  /etc/passwd
git:x:1002:1006::/home/git:/usr/bin/git-shell

 

7. 克隆远程仓库

  在客户端操作

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

 

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

 

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

[[email protected] demo]$ git config --global user.name "Scott Cho"
[[email protected] demo]$ git config --global user.email "[email protected]"
[[email protected] demo]$ git config --global core.editor vim

 

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

[[email protected] demo]$ echo "I successfully cloned the Git repository" > readme.txt
[[email protected] demo]$ git add readme.txt 
[[email protected] demo]$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#    new file:   readme.txt
#
[[email protected] demo]$ git log
fatal: bad default revision HEAD
[[email protected] 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
[[email protected] demo]$ git log
commit b548d3bd469cf5f183e9be9a3b2949f6361b5385
Author: Scott Cho <[email protected]>
Date:   Mon Feb 27 17:42:29 2017 +0800

    Clone the Git repository

 

10. 定义远程的Git服务器

[[email protected] demo]$ git remote add server ssh://[email protected]:2121/opt/demo.git

 

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

[[email protected] 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://[email protected]:2121/opt/demo.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from server.

 

以上是关于Git服务器的搭建和使用的主要内容,如果未能解决你的问题,请参考以下文章

Git服务器搭建与Jenkins交互下代码

搭建Git服务器

Ubuntu搭建Gitlab服务器

使用 Git 来管理 Xcode 中的代码片段

git服务器gitlab之搭建和使用转

用Gitolite搭建服务器上的Git