CentOS 7.x下Git的安装与基础使用

  • A+
所属分类:DevOps gitlab & jenkins

一、说明

1.1、Git介绍

    GIT是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

1.2、Git的存储形式

  • Git:分布式版本管理系统
  • Gitlab:git私有库解决方案
  • Githab:git公有库解决方案

二、Git安装

2.1、环境准备

    如果是新安装的操作系统,需要做系统基础优化请参考:CentOS 7.x – 最小化安装系统后基础优化

# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

# uname -a

Linux linux-node1.example.com 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# hostname -I

192.168.56.11 172.16.1.11

2.2、下载软件包与依赖

# cd /usr/local/src

# wget https://github.com/git/git/archive/v2.7.4.zip        #下载git软件包

# yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker           #安装依赖

2.3、编译安装Git

# unzip v2.7.4.zip      #解压软件包

# cd git-2.7.4/

# make prefix=/usr/local/git all        #编译

# make prefix=/usr/local/git install        #安装

# rm -rf /usr/bin/git

# ln -s /usr/local/git/bin/git /usr/bin/git         #建软连接

# git --version        #查看git版本

三、Git使用

3.1、初始化

# mkdir test         #创建初始化目录

# cd test/

# git init           #初始化过目录后,这个目录就被版本控制了

# git config --global user.name "zhuimengren"       #用户

# git config --global user.email zmr_admin@163.com      #用户的邮箱,

[root@linux-node1 test]# git config --list       #查看信息

user.name=zhuimengren

user.email=zmr_admin@163.com

core.repositoryformatversion=0

core.filemode=true

core.bare=false

core.logallrefupdates=true

注:至此初始化就完成了

3.2、Git的常用命令

  • git add  :  加入暂存(索引区)
  • git status  : 查看状态
  • git status -s   : 状态概览
  • git diff  : 尚未暂存的文件
  • git diff --staged  : 暂存区文件
  • git commit  : 提交更新
  • git reset  : 回滚
  • git rm  :   从版本库中移除
  • git rm --cached README  : 从暂存区中移除

3.3、git提交文件的过程

# git status

On branch master

 

Initial commit

 

nothing to commit (create/copy files and use "git add" to track)    #没有任何提交

 

# vim index.html      #新建一个文件

# git status     #查看当前状态

On branch master

 

Initial commit

 

Untracked files:

  (use "git add <file>..." to include in what will be committed)

 

    index.html     #发现一个新文件

 

nothing added to commit but untracked files present (use "git add" to track)

# git add index.html    #将文件添加到暂存区

# git status        #查看状态

On branch master

 

Initial commit

 

Changes to be committed:

  (use "git rm --cached <file>..." to unstage)

 

    new file:   index.html     #暂存区发现新文件

 

# git commit -m "test commit" index.html      #将文件提交到本地仓库

[master (root-commit) a857359] test commit

 1 file changed, 1 insertion(+)

 create mode 100644 index.html

# git status    #提交后查看状态

On branch master

nothing to commit, working directory clean    #工作目录是空的(暂存区和工作目录都是空的才会返回这个状态)。

 

# git log     #查看历史提交

commit a8573599b67638db3d3c736d4a55a2eb63f06bb7      #提交的ID

Author: zongyangsun zmr_admin@163.com             #提交人

Date:   Mon Nov 13 19:53:53 2017 +0800       #提交时间

 

    test commit         #提交的说明

3.4、git的区域与状态

1.git区域

CentOS 7.x下Git的安装与基础使用

2.git状态

CentOS 7.x下Git的安装与基础使用

git的四种状态说明:

  • Untracked:未被追踪状态(初始状态)。
  • staged:通过add,提交到暂存区的状态。
  • Unmodified:在暂存区提交到本地仓库之后,未被修改的状态。
  • Modified:已修改状态(表示已提交过本地仓库后又修改了得状态)。

四、git分支管理

4.1、创建分支并切换分支

# git branch about      #建立about分支

# git checkout about      #切换到about分支

Switched to branch 'about'

# git status       #查看状态发现当前在about分支

On branch about           #当前为about分支

nothing to commit, working directory clean

4.2、git分支常用命令

  • git branch        #列表分支
  • git branch -v     #列表分支并且详细输出
  • git branch -D      #删除分支
  • git checkout      #切换分支

                 注:git checkout 分支名 用于切换分支、git checkout -- 文件名 撤销对文件的修改

  • git merge         #合并(代码、分支等)
  • git branch --merge  #查看那些分支被合并过
  • git branch --no-merge  #查看那些分支还没有被合并
  • git log            #查看提交的版本
  • git stash           #做一个暂存区
  • git tag             #打标签

4.3、合并分支merge和rebase的区别

  • merge合并分支会出现一次新的提交

CentOS 7.x下Git的安装与基础使用

  • rebase合并分支不会出现新的提交

CentOS 7.x下Git的安装与基础使用

4.4、回滚操作

  • reset的参数

--soft:缓存区和工作目录都不会被改变。

--mixed:默认选项,缓存区和指定的提交同步,但工作目录不受影响。

--hard:缓存区和工作目录都同步到指定的提交

五、git远程仓库

5.1、本地目录、暂存区、本地仓库、远程仓库之间的命令

CentOS 7.x下Git的安装与基础使用

5.2、git远程管理命令介绍

  • git clone https://github.com/guohongze/adminset.git     #从github上下载文件
  • git pull      #把远程代码拉到本地目录,并合并代码
  • git fetch     #把远程代码拉到本地目录,不做合并代码操作
  • git push origin master     #上传代码
  • git remote      #查看仓库
  • git remote -v     #查看仓库详细格式
  • git remote add xxx http://xxx     #创建一个仓库
  • git remote show origin
  • git remote rename pb paul
  • git tag -a v1.0 -m 'abc'        #给制定提交添加标签

 

好了,git就介绍到这里,喜欢请关注,后续会更新gitlab、jenkins等

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: