Linux——Git工具的使用

简介

1.DevOps: Development和Operations的组合
可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集

  • 减少变更范围
  • 加强发布协调
  • 自动化
  • 更小、更频繁的变更──意味着更少的风险
  • 让开发人员更多地控制生产环境
  • 更多地以应用程序为中心来理解基础设施
  • 定义简洁明了的流程
  • 尽可能地自动化
  • 促成开发与运营的协作

2.git:分布式版本控制系统,是当前最流行的版本控制软件。

​ 林纳斯.拖瓦兹

3.公开的代码仓库:

  • github.com 国外
  • gitee.com 国内–码云

4.版本控制系统分类:

  • 集中式:代码集中存储在中央服务器,开发者的客户端只有部分自己的代码,假如中央服务器出问题,会出现数据丢失。传统的版本控制系统:CVS、 SVN
  • 分布式:每台服务器都拥有所有代码,任意一台服务器崩溃,从其他服务器复制过来就好。git

安装Git

Git是什么?

  • Git对于一个程序员来说,并不陌生。Git的全称是:分布式版本控制系统。

  • git支持分布式部署,可以有效、高速的处理从很小到非常大的项目版本管理。

  • 用最简单的话语解释就是,当我们在git上建立一个版本库(版本库又叫仓库,我们可以把它理解为目录),如果我们需要对文件进行修改时,可以对原来的文件进行提交并简单的说明,后续方便还原文档。

1.安装Git

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

2.声明自己的名字和邮箱

[root@git ~]# git config  --global  user.name "wangwu"
[root@git ~]# git config  --global  user.email "[email protected]"

3.创建版本目录

[root@git ~]# mkdir /data
[root@git ~]# cd /data/
[root@git data]# git init   // 初始化当前目录为版本库
初始化空的 Git 版本库于 /data/.git/  
[root@git data]# ls -a
.  ..  .git

自动生成**.git**目录:

命令 解释
branches 分支目录
config 定义目录特有的配置选项
description 仅供git web使用
HEAD 指定当前的分支
hooks git钩子文件
info 包含一个全局排除文件(exclude)
objects 存放所有的数据内容
refs 指针文件
index 暂存区文件

Git基础命令

1.上传到暂存区

命令 解释
git add readme.txt 单个文件上传
git add . 当前目录所有文件上传
git status 查看暂存区
git rm --cached readme.txt 把文件从暂存区撤销
git checkout – readme.txt 已经提交到暂存区,之后再修改内容出错,想回到上次暂存区版本
[root@git data]# vim readme.txt
111111111
[root@git data]# git add readme.txt
[root@git data]# git status 
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#	新文件:    readme.txt
#
[root@git data]# git rm --cached readme.txt
rm 'readme.txt'
[root@git data]# vim test.txt
11111111
[root@git data]# git add test.txt
[root@git data]# git status 
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#	新文件:    test.txt
#
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#	readme.txt
[root@git data]# vim test.txt 
222222222222
11111111
[root@git data]# git checkout  -- test.txt
[root@git data]# cat test.txt 
11111111

2.上传到版本库

[root@git data]# git add readme.txt
[root@git data]# git status 
# 位于分支 master
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
#	新文件:    readme.txt
#
[root@git data]# git commit  -m "add readme.txt file" //上传到版本库
[master 64e4cd2] add readme.txt file
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt
[root@git data]# git status 
# 位于分支 master
无文件要提交,干净的工作区

3.修改readme.txt内容,使用diff命令查看异同

[root@git data]# vim readme.txt 
111111111
222222222
333333333
[root@git data]# git diff readme.txt
diff --git a/readme.txt b/readme.txt
index bb81b3c..0f4b9be 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,3 @@
 111111111
+222222222
+333333333

(1)如果想要提交

[root@git data]# git add readme.txt
[root@git data]# git commit -m "add readme.txt file "
[master d8184e2] add readme.txt file
 1 file changed, 2 insertions(+)

4.查看版本状态,比对工作区和版本库的异同

[root@git data]# git status 

5.查看历史记录

[root@git data]# git log    //显示详细信息
commit d8184e24bdc83e012b607f74eeb5ad94c55dc250
Author: wangwu <[email protected]>
Date:   Thu Jul 16 19:14:17 2020 +0800

    add readme1.txt file

commit 3caeb4233a33cfe99fb3111c8f130608a4bc0f61
Author: wangwu <[email protected]>
Date:   Thu Jul 16 19:11:26 2020 +0800

    add readme2.txt file

commit ef381c4ae25a1cc46bbd2ca30ec29cc6978b2ba9
Author: wangwu <[email protected]>
Date:   Thu Jul 16 19:09:23 2020 +0800

    add readme3.txt file
[root@git data]# git log  --oneline   //显示摘要信息
d8184e2 add readme1.txt file
3caeb42 add readme2.txt file
ef381c4 add readme3.txt file

6.版本回滚

命令 解释
HEAD^ 回滚到上个版本
HEAD^^ 回滚到上上个版本
HEAD~10 回滚到上10个版本
git log 的版本号(写前7为即可) 按版本号回滚到那个版本
[root@git data]# vim readme.txt  //更改内容
111111111
222222222
333333333
444444444
555555555
666666666
[root@git data]# git reset  --hard HEAD^   // 回滚到上个版本
HEAD 现在位于 64e4cd2 add readme.txt file
[root@git data]# cat readme.txt 
111111111
[root@git data]# vim readme.txt 
111111
222222
333333
444444
[root@git data]# git log --oneline   //查看版本号
3caeb42 add readme.txt file
ef381c4 add readme.txt file
[root@git data]# git reset --hard 3caeb42   //按版本号回滚
HEAD 现在位于 3caeb42 add readme.txt file
[root@git data]# cat readme.txt 
111111
222222

7.回滚动作命令日志

[root@git data]# git reflog 
3caeb42 HEAD@{0}: commit: add readme.txt file
ef381c4 HEAD@{1}: reset: moving to ef381c4
64e4cd2 HEAD@{2}: reset: moving to HEAD^
d8184e2 HEAD@{3}: commit: add readme.txt file
64e4cd2 HEAD@{4}: commit: add readme.txt file
ef381c4 HEAD@{5}: checkout: moving from master to master
ef381c4 HEAD@{6}: commit (initial): add readme.txt file

8.git config 常用配置选项

(1)编辑配置文件

git config -e

[root@git data]# git config --local -e 		//编辑仓库级别配置文件
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
~                                    
[root@git data]# git config --global -e 		//编辑用户级别配置文件
[user]
        name = wangwu
        email = [email protected]

[root@git data]# git config --system -e 		//编辑系统级别配置文件

(2)添加配置项目

git config

[root@git data]# git config --global user.email “[email protected]”
[root@git data]# git config --global user.name “wangwu”

(3)添加别名

git config

[root@git data]# git config --global -e
[user]
        name = wangwu
        email = [email protected]
[alias]
        st = status
        co = checkout
        br = branch
        mg = merge
        ci = commit
        md = commit --amend
        dt = difftool
        mt = mergetool
        last = log -1 HEAD

Git分支

​ 区别于主代码库,创建出来用于新增功能或模块的分支库,仅用户自己有权访问,
修改后合并,一般用于更新版本或添加补丁。

1.查看分支

[root@git data]# git branch 
* master

2.创建分支,切换分支

[root@git data]# git branch  ops
[root@git data]# git checkout  ops
切换到分支 'ops'

3.合并分支

(1)创建并切换到新的分支

[root@git data]# git branch   -b dev

(2)切回master

[root@git data]# git checkout  master 
切换到分支 'master'

(3)合并分支

[root@git data]# git merge dev
Already up-to-date.
[root@git data]# git branch 
  dev
* master
  ops

4.删除分支

[root@git data]# git branch  -d dev 
已删除分支 dev(曾为 3caeb42)。
[root@git data]# git branch 
* master
  ops

猜你喜欢

转载自blog.csdn.net/weixin_45191791/article/details/107496119