GIT版本控制系统

目录

一.git安装与介绍

1.git的概述

2.GIT的安装

二.GIT的运用

1.先进入仓库文件创建用户与邮箱

2.写入数据基本命令测试

3.HEAD指针

4.Git分支

5.免密通信

6.git其他操作命令:

7.踩坑瞬间


一.git安装与介绍

1.git的概述

git是一种开源的分布式的vcs(version control system)版本控制系统。

集中式 SVN

分布式 GIT

关网:Gitee - 基于 Git 的代码托管和研发协作平台

GitHub: Where the world builds software · GitHub

git是服务

服务端:就是提供git仓库服务供客户端访问使用的

客户端:访问git仓库使用数据及修改数据

所谓的服务端安装的其实也是git

git 基本概念

--git仓库:保存所有数据的地方

--工作区:从仓库提取出来的文件,放在磁盘上使用或修改

--暂缓区:保存下次提交文件信息的列表信息也就add之后的列表

2.GIT的安装

yum源准备

~]# vim /etc/yum.repos.d/CentOS-Base.repo 
[extras]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/
name=Qcloud centos extras - $basearch
[os]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/os/$basearch/
name=Qcloud centos os - $basearch
[updates]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/updates/$basearch/
name=Qcloud centos updates - $basearch
​
~]# vim /etc/yum.repos.d/CentOS-Epel.repo 
[epel]
name=EPEL for redhat/centos $releasever - $basearch
failovermethod=priority
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/epel/RPM-GPG-KEY-EPEL-7
enabled=1
baseurl=http://mirrors.tencentyun.com/epel/$releasever/$basearch/

服务端:

# 腾讯yum或阿里的都可以
~]# dnf -y install git    # centos8服务端安装git
# 或7的安装方法
~]# yum  -y install git
~]# mkdir /var/lib/git   # 创建git目录
~]# git init /var/lib/git/project --bare  # 创建空仓库,用来存储项目数据
# --bare 不加这个则仓库只能看不能写

客户端:

~]# yum -y install git   # 客户端安装git
~]# git clone 192.168.4.20:/var/lib/git/project  # 克隆仓库

二.GIT的运用

1.先进入仓库文件创建用户与邮箱

# 使用前先创建用户
~]# cd project/   # 进入仓库
~]# git config --global user.name "abc"   # 定义客户端用户名
~]# git config --global user.email "abc@abc.com"  # 定义客户端邮箱
​
~]# ls  ./git (管理仓库文件)
~]# cat ./gitconfig  //检查用户与邮箱是否创建

2.写入数据基本命令测试

~]# echo "abc001" > 001.txt (写入内容测试)
~]# git add . 
# (当有多个文件的时候可以先指定单个)将仓库有变化的文件提交到暂存区(只是通知系统暂时记住【为了永久保存】);可以把点换成指定的日志信息
​
~]# git commit -m "001"
# 提交之前暂存区的数据永久保存到仓库(小的改变不保存)(-m 定义日志提示信息)
​
~]# git push  
# 将本地仓库数据推送到远程git仓库服务器中
# 或者
~]# git push -u origin master
​
~]# git log   
# 查询完整日志
~]# git log --pretty=oneline   
# 精简日志
~]# git log --oneline  
# 最精简日志
~]# git reflog   
# 本机操作日志
​
~]# Git status 
# 查看并告诉下一步操作
​
## 测试删除
~]# rm -rf project/
~]# git clone 192.168.4.20:/var/lib/git/project
## 注意已经导入过一次用户不需要重复定义,(自动保存在当前加用户下)可查看
~]# cat ~/.gitconfig 
[user]
    name = keyao
    email = 2023630895@qq.com
~]# git log --oneline  # 精简日志,此时只有一条操作日志
~]# git reflog   # 本机操作日志,此时还有删除前的日志记录

思维导图

img

img

3.HEAD指针

可以将仓库恢复到过去的状态(类似虚拟机快照,只能对本仓库)

~]# git reflog  #查看日志,找到旧数据所在时间节点
~]# git  reset  --hard  xxxx   
#回到过去,xxxx是时间节点的记录
#把需要找回的数据,从仓库中拷贝到另外一个目录
#  --hard 强制恢复
​
~]# git  reset  --hard  xxxx    #回到现在
#在之前的目录找回旧数据
Ls .. #(查看上一次修改的目录下文件) ls .. 

4.Git分支

常见的分支规范如下:

分支名作用
MASTER分支MASTER是主分支,是代码的核心
DEVELOP分支DEVELOP最新开发成果的分支
RELEASE分支为发布新产品设置的分支
HOTFIX分支为了修复软件BUG缺陷的分支
FEATURE分支为开发新功能设置的分支

当项目内容比较多时,可以在git中使用分支,不同分支的文件可以互不干扰而不用创建多个仓库

~]# git branch                  
# 查看分支,*代表目前所在分支
# 如果没有看到,需要提交一个对象,commit之后才会真正建立master分支,此时才可以建立其它分
​
~]# git branch hotfix             # 创建新分支,
~]# git checkout hotfix           # 切换到新分支
​
## 注意:此时ls查看本地有master的文件,这是git的特性,在master创建的文档所有分支都可以看到(项目描述文档),但分支创建之后master再次修改则就看不到了
​
~]# echo "hotfix-001" > hotfix001.txt   
# 创建属于hotfix分支的文件
~]# git add .   
# 提交到暂存区
~]# git commit -m "hotfix001"          
# 提交到本地仓库
~]# git checkout master               
# 切换回默认分支
​
~]# echo master > master.txt
~]# git add .
~]# git commit -m "master"
~]# git checkout master
~]# git merge hotfix      
Merge branch 'hotfix'
...... # 合并日志,可写可不写
# 将hotfix分支的数据与当前分支合并
~]# ls
a.txt  hotfix001.txt  master.txt
# 合并之后在提交一次不然可能会报错

分支中的特殊情况:

如果分别在不同分支,创建同名文件,内容不同,再进行合并时,会发生冲突,此时需要手工修改冲突文件,修改完之后,就可以解决冲突

~]# git merge hotfix   
# 合并分支,失败,因为两个分支有同名文件,但内容不同
    CONFLICT (add/add): Merge conflict in test.txt
    Automatic merge failed; fix conflicts and then commit the result.
​
~]# vim abc.txt   
# 手动修改文件(看要保存谁),保存退出后即可解决
~]# git add .   //提交到暂存区
~]# git commit -m "abc+"   //提交到本地仓库

5.免密通信

使用ssh协议建立连接,实现

~]# ssh-keygen    # 创建ssh秘钥
~]# ssh-copy-id 192.168.4.20   # 传递秘钥到4.20
~]# git clone 192.168.4.20:/var/lib/git/test   # 克隆不需要密码
~]# cd test    # 进入仓库
~]# echo xyz > xyz    # 创建文件,然后提交
~]# git add .
~]# git commit -m "xyz"
~]# git push    # 上传到服务器也无需密码
~]# Git pull (更新下拽最新数据)

6.git其他操作命令:

~]# git remote -v  
# 查看远程服务器名字与ip(绑定了几台,默认两个是一台的名字)
~]# git remote add tom 192.168.4.20:/var/lib/git/test   
# 与新服务器关联,名字叫tom
​
~]# echo test01 > test01.txt   # 创建测试文件
~]# git add .
~]# git commit -m "test01"
~]# git push -u origin master    
# 指定名为origin的远程服务器提交数据到master分支
​
~]# git remote remove origin   
# 删除名为origin的远程服务器
​
~]# git remote -v
~]# echo test02 > test02.txt   # 创建测试文件分支(当有多台远程服务器)
​
~]# git remote add origin 
~]# 192.168.4.20:/var/lib/git/web  
# 添加名为origin的服务器
~]# git pull tom master 更新数据
~]# git pull web master   
# 从web服务器的master分支下载数据,如果是克隆命令的话可以复制整个仓库的数据,如果是使用pull下载数据,仅仅会下载服务器有而客户机没有的数据

7.踩坑瞬间

1)制做仓库时不加--bare报错与解决

# 客户端在项目中添加
~]# vim .git/config
......
[receive]
  denyCurrentBranch = ignore

2)git push 失败
# 指定节点
~]# git push -u origin master

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值