首页 > 代码库 > git的搭建与使用

git的搭建与使用

1. git搭建及无密码访问

1.1 git与gitlab

GIT(分布式版本控制系统), 是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

Gitlab是使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

下面介绍二者的搭建,可以按需选择其中一种搭建。

1.2 服务端搭建(基于CentOS)

1.2.1搭建git服务

(1)安装git

# yum -y install git

(2)查看git版本

# git --version

CentOS7 默认安装的是Git 1.8.3.1

(3)创建git目录和一个空git仓库

# cd /

# mkdir git

# cd git

# git init --bare test.git

到此一个简单的Git服务器仓库就创建完成

(4)创建git运行用户并设置密码

# useradd git

# passwd git

因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把用户git的权限变为可读:

# chown -R git:git test.git

禁用shell登录,出于安全考虑,创建的git用户不允许登录shell,这可以通过终端编辑/etc/passwd文件完成。

# vi /etc/passwd

找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

1.2.2搭建gitlab

以下的yum源均属于网络源

(1)安装和配置必要的依赖关系

# sudo yum install curl policycoreutils openssh-server openssh-clients

# sudo systemctl enable sshd

# sudo systemctl start sshd

# sudo yum install postfix

# sudo systemctl enable postfix

# sudo systemctl start postfix

# sudo firewall-cmd --permanent --add-service=http

# sudo systemctl reload firewalld

(2) 添加GitLab包服务器和安装包

# sudo yum install gitlab-ce

(3) 配置和启动 GitLab

# sudo gitlab-ctl reconfigure

(4)登陆IP配置

技术分享

(5)关闭gitlab的自动启动# systemctl disable gitlab-runsvdir.service

(6) 开启gitlab的自动启动

# systemctl enable gitlab-runsvdir.service # systemctl start gitlab-runsvdir.service # gitlab-cmd start

1.3 客户端的基本使用

1.3.1 基本使用

常用操作如下:

1.获取一个url对应的远程Git repo, 创建一个local copy.

# git clone <URL>

2 .查看修改更新了哪些文件# git status 3 .添加文件 # git add <*> 4.查看已经添加了的文件 # git status

5. 抓取远程仓库所有分支更新并合并到本地

# git pull

6. 查看远程服务器地址和仓库名称

# git remote -v

7.从版本库中删除文件

# git rm <file>

1.3.2 客户端无密码访问

背景:

Git使用https协议,每次pull, push都要输入密码,比较麻烦。 使用git协议,然后使用ssh密钥。这样可以省去每次都输密码

大概需要三个步骤:

  1. 本地生成秘钥

首先先确认一下是否已经有一个公钥了。SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。

# cd ~/.ssh 

# ls

关键是看有没有用 something 和 something.pub 来命名的一对文件,这个 something 通常就是 id_dsa 或 id_rsa。有 .pub 后缀的文件就是公钥,另一个文件则是密钥。假如没有这些文件,或者干脆连 .ssh 目录都没有,可以用 ssh-keygen 来创建。

# ssh-keygen

一直回车即可

  1. 添加公钥到你的github帐户

查看公钥

# cat ~/.ssh/id_rsa.pub

技术分享

登陆github帐户点击 SSH Keys -> 点击 Add SSH key

技术分享

技术分享

然后你复制上面的公钥内容,粘贴进“Key”文本域内。 title域,你随便填一个都行。 完了,点击 Add key

  1. 修改你本地的ssh remote url

编辑remote url. 使其不用https协议,改用git 协议

可以使用浏览器登陆你的github,在上面可以看到你的ssh协议相应的url

# vi /home/ecloud/.git/config

技术分享

1.3.3 解决冲突的常用方法

本地文件与服务器端文件不同步时,执行git会抱错

常用的解决办法就算让服务端文件完全覆盖本地

# git checkout 报错文件路径

技术分享


git的搭建与使用