Git安装及使用

IPHostname备注
192.168.88.31servergit服务端
192.168.88.33clientgit客户端

环境说明:firewalld关闭,selinux关闭。
需求
下载源码包编译安装或者yum安装
服务端创建git用户,配置空仓库
创建无秘钥登录证书
客户端命令使用:克隆、修改git配置、 添加修改文件到暂存区、 提交修改到本地仓库、 提交修改到远程服务器。

1.服务端安装Git
①yum源安装

[root@server ~]# yum -y install git

②编译安装

wget https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz
[root@client ~]# tar -zxvf git-2.10.0.tar.gz
[root@client ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 	//安装所需依赖包
[root@client ~]# yum remove git 			//卸载旧版git
[root@client ~]# cd git-2.10.0
[root@client git-2.10.0]# make prefix=/usr/local/git all  //编译
[root@client git-2.10.0]# make prefix=/usr/local/git install  //安装
[root@client git-2.10.0]# vim /etc/profile		//底部加上Git相关配置信息
PATH=$PATH:/usr/local/git/bin 	
[root@client git-2.10.0]# source  /etc/profile
[root@client git-2.10.0]# git --version       
git version 2.10.0 

2.服务端创建git用户并创建空仓库

[root@server ~]# useradd -m git			//创建git用户
[root@server ~]# passwd git				//创建git用户密码
更改用户 git 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[git@server ~]$ su - git				//变更帐号为git并改变工作目录至git的家目录
密码:
上一次登录:一 3月 16 16:16:49 CST 2020pts/0 上
[git@server ~]$ pwd
/home/git
[git@server ~]$ mkdir project.git		//创建git仓库目录
[git@server ~]$ cd project.git/			
[git@server project.git]$ git init --bare	//git仓库的初始化
初始化空的 Git 版本库于 /home/git/project.git/
[git@server project.git]$ chown -R git:git /home/git/project.git/	//授权

3.客户端访问方式

[root@server ~]# git clone file:///home/git/project.git/   //本地访问
正克隆到 'project'...
warning: 您似乎克隆了一个空版本库。

[root@client ~]# git clone git@192.168.88.31:/home/git/project.git //远程访问
正克隆到 'project'...
git@192.168.88.31's password: 
warning: 您似乎克隆了一个空版本库。

git clone http://192.168.88.31:/home/git/project.git   
										//web访问,服务端需搭建web服务器

4.创建无秘钥登录证书

[root@server ~]# su - git
[git@server ~]$ ssh-keygen -t rsa    	//两机都需执行
Generating public/private rsa key pair.
Enter file in which to save the key (/home/git/.ssh/id_rsa): 
Created directory '/home/git/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/git/.ssh/id_rsa.
Your public key has been saved in /home/git/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:aTQb6oQ0fqNQo7WdvcyfAAOWuA4Zja3Phlw7y2oBpF8 git@server
The key's randomart image is:
+---[RSA 2048]----+
|                 |
| = . .           |
|= + X   +        |
|o+ OEB = =       |
|=.+o+ X S        |
|.Bo..= B .       |
|..*o. . =        |
| o. o    o .     |
|...o      o      |
+----[SHA256]-----+
[git@server ~]$ cd .ssh/
[git@server .ssh]$ cat id_rsa.pub >> authorized_keys
[git@server .ssh]$ chmod 600 authorized_keys
[git@server .ssh]$ chmod 700 ~/.ssh
[git@server .ssh]$ su - root 
密码:
上一次登录:一 3月 16 17:46:04 CST 2020从 192.168.88.31pts/1 上
[root@server ~]# scp /home/git/.ssh/authorized_keys 192.168.88.33:/root/.ssh

[root@client ~]# chmod 600 /root/.ssh/authorized_keys      
[root@client ~]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDD3vXM4gyjjeSMX+Wlh2HjBaPCqXeltTyox0iuyESGMq+lnOJ18UvYViHzoB7re0/VKRO6L5wlCBR4CF78Mr7G74tVTi3A5HndtAamIwZr/Vd1ucGDkl7ctzKiIP9mben3bbBZ/1kZtR8mFjD5TDbt+20+EMn1WWHvqZcvuAye08TfVTrjSi4RetEvQOMV36TgE6V8BucdIHfo+bvUIxd4N4HL7p2dW5iuXR47FeqBdtzEjby4LsePrfk+MKN58JAJCqWT2LgIb/M1NirA23Kw6twVQPxC4wKxhTEyh7PcMXKlYyWAjd9IGoKHH5m+pFCSgXo9fscHBSw7uwree5pL root@client
[root@server ~]# vi /home/git/.ssh/authorized_keys   //将client的公钥复制到server的authorized_keys里
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCavi2Vmk26YwQkoSuo73ydt95afdDvD8NhM22+TGeY4HEUak0wAG0hYD2
rR7WoS/ri1uOvt+XfASlMGMpvvKvJex2HSio4cnjRqFKJWETjCxxSvWl5UicauhZYe9QsdSgOnK1d/GMkyJyAY8XhMJX0NR
y66O21u7NsxSasBmETuePqkWfM2uODiHh9D0gOVPDv3y7qeXSPdSTS/z4yc7X5iPuXLsqHt4ihqvWl0B10aNCww1gDuNpEM
XqM5Pdwf6IN4co3V2BEiDERsDNvhBEXiWxbmYS3cZ8QZJQbJaTI//8uMXEDTz1NdArpOtk/cN3ETeBrCW4nCErh52X265a7
 git@server
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDD3vXM4gyjjeSMX+Wlh2HjBaPCqXeltTyox0iuyESGMq+lnOJ18UvYViH
zoB7re0/VKRO6L5wlCBR4CF78Mr7G74tVTi3A5HndtAamIwZr/Vd1ucGDkl7ctzKiIP9mben3bbBZ/1kZtR8mFjD5TDbt+2
0+EMn1WWHvqZcvuAye08TfVTrjSi4RetEvQOMV36TgE6V8BucdIHfo+bvUIxd4N4HL7p2dW5iuXR47FeqBdtzEjby4LsePr
fk+MKN58JAJCqWT2LgIb/M1NirA23Kw6twVQPxC4wKxhTEyh7PcMXKlYyWAjd9IGoKHH5m+pFCSgXo9fscHBSw7uwree5pL
 root@client
 [root@client ~]# ssh git@192.168.88.31		//免密登陆测试
Last login: Mon Mar 16 18:48:27 2020 from 192.168.88.33
[git@server ~]$ exit
登出
Connection to 192.168.88.31 closed.
[root@server ~]# vi /etc/passwd			//修改后会导致git用户无法切换
git:x:1000:1000::/home/git:/bin/git-shell	//修改/bin/git-shell

5.客户端命令使用

clone 将远程服务器仓库克隆到本地
config 修改git配置
add 添加修改文件到暂存区
commit 提交修改到本地仓库
push 提交修改到远程服务器

①克隆服务端git仓库到客户端本地

[root@client ~]# mkdir git
[root@client ~]# cd git/
[root@client git]# git clone git@192.168.88.31:/home/git/project.git
正克隆到 'project'...
warning: 您似乎克隆了一个空版本库。
[root@client git]# ll
总用量 0
drwxr-xr-x. 3 root root 18 3月  16 18:53 project

②修改git配置

$ git config --global --list    # 查看全局配置
$ git config --global user.name hoby    # 修改提交名
$ git config --global alias.br branch   # 修改简写
$ git config --unset alias.co   # 删除配置项
$ git config --global core.ignorecase false # 关闭忽略大小写

③对数据进行修改

[root@client project]# echo "TEST.33" > 1.html
[root@client project]# git add .   //添加修改文件到暂存区
[root@client project]# ll
总用量 4
-rw-r--r--. 1 root root 8 3月  16 19:39 1.html
[root@client project]# git commit -m "TEST.33"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@client.(none)') 
//出现此错误时,使用git命令添加user.name和user.email
[root@client project]# git config --global user.name "users"
[root@client project]# git config --global user.email "577529195@qq.com"
[root@client project]# git commit -m "TEST.33"    //将暂存区里的改动给提交到本地的版本库                 
[master(根提交) 9e4aa26] TEST.33
 1 file changed, 1 insertion(+)
 create mode 100644 1.html
[root@client project]# git remote add origin git@192.168.88.31:/home/git/project.git
fatal: 远程 origin 已经存在。
//确认本地和远程的状态是否正常
[root@client project]# git push origin master //本地推送到远程服务器
Counting objects: 3, done.
Writing objects: 100% (3/3), 212 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.88.31:/home/git/project.git
 * [new branch]      master -> master

④查看仓库数据状态

[root@client project]# git status			//未修改前
# 位于分支 master
无文件要提交,干净的工作区
[root@client project]# vi 1.html 
TEST.33
HI word
[root@client project]# git status			//修改1.html后
# 位于分支 master
# 尚未暂存以备提交的变更:
#   (使用 "git add <file>..." 更新要提交的内容)
#   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
#       修改:      1.html
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值