首页 > 代码库 > 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密钥。这样可以省去每次都输密码。
大概需要三个步骤:
本地生成秘钥
首先先确认一下是否已经有一个公钥了。SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。
# cd ~/.ssh
# ls
关键是看有没有用 something 和 something.pub 来命名的一对文件,这个 something 通常就是 id_dsa 或 id_rsa。有 .pub 后缀的文件就是公钥,另一个文件则是密钥。假如没有这些文件,或者干脆连 .ssh 目录都没有,可以用 ssh-keygen 来创建。
# ssh-keygen
一直回车即可
添加公钥到你的github帐户
查看公钥
# cat ~/.ssh/id_rsa.pub
登陆github帐户点击 SSH Keys -> 点击 Add SSH key
然后你复制上面的公钥内容,粘贴进“Key”文本域内。 title域,你随便填一个都行。 完了,点击 Add key。
修改你本地的ssh remote url
编辑remote url. 使其不用https协议,改用git 协议
可以使用浏览器登陆你的github,在上面可以看到你的ssh协议相应的url
# vi /home/ecloud/.git/config
1.3.3 解决冲突的常用方法
本地文件与服务器端文件不同步时,执行git会抱错
常用的解决办法就算让服务端文件完全覆盖本地
# git checkout 报错文件路径
git的搭建与使用