01 DevOps 之 Git 命令使用

1. 前言

由于项目没有外网,需要在内网打镜像。但自己对git 还不是太熟悉。看着pipline 一脸懵逼。所有针对git 命令在工作中常用的参数及用法简单学习记录下。因为git 是DevOps中的编码的一部分,下面先介绍下DevOps整体的框架。

1.1 DevOps介绍

DevOps的前生今世
DevOps是一种方法或理念,它涵盖开发、测试、运维的整个过程。DevOps是提高软件开发、测试、运维、运营等各部门的沟通与协作质量的方法和过程,DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作,强调通过自动化的方法去管理软件变更、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。
在这里插入图片描述

1.2 DevOps 工具链

DevOps兴起于2009年,近年来由于云计算、互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现了 一大批优秀的工具,这些工具包括开发、测试、运维的各个领域,例如:GitHub、Git/SVN、Docker、Jenkins、 Hudson、Ant/Maven/Gradle、Selenium、QUnit、JMeter等。下图是DevOps相关的工具集:
在这里插入图片描述

1.3 企业级DevOps 知识体系

在这里插入图片描述

2. git 常用参数

git 技能树链接

2.1 git全局设置

git config --global user.name "xxxxx"
git config --global user.email "xxxxxx@xxx.com"
#解决每次拉取都需要输入密码
#方法一:这会在gitconfig目录下创建一个文件,用于记录账号和密码
git config --global credential.helper store
#方法二:拉取时指定账户和密码
git clone http://账户:密码@仓库地址 <拉取后指定目录> <--branch=分支名>
git clone  http://liuyan:liuyan123@192.168.221.143:9000/liuyan/xm-admin.git xm-admin --branch=liuyan

2.2 创建git仓库

mkdir no-temp
cd no-temp
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/xxxx/xxxx.git
git push -u origin master

2.3 git 原理图

首先看下git 的原理图
在这里插入图片描述

git init #初始化项目文件目录,会在项目目录中增加一个.git用于上传你的项目
git remote add origin +仓库地址 #上传操作
git add . #将文件添加至暂存区,类似于点击文件,选择复制,这样粘贴板里有复制的文件,add操作大致如此
git commit -m "对本次操作需要添加的注释"#对本次操作需要添加的注释
git push #将你的文件传送至github仓库
git pull #为避免出错,每次开发完成以及开发结束后都应该git pull一下

2.4 git 命令速查表

在这里插入图片描述

3. 工作中常用的git命令

3.1 创建文件夹并初始化本地仓库

mkdir test
cd test
git init

3.2 关联本地仓库和远程仓库

git remote add origin http://192.168.221.143:9000/liuyan/xm-admin.git
#说明:
#origin表示远程库的名字,可以随意,一般默认为origin;
#origin后面表示远程仓库的真实地址,如下图所示。我这里使用的是SSH地址,当然也可以使用HTTPS地址,复制过来就行。

3.3 拉取代码分支(标签)

git clone http://192.168.221.143:9000/liuyan/xm-admin.git xm-admin --branch=liuyan 
#liuyan是自己在代码仓库新建的分支,也可换成master等其他分支或标签
#有的同学可能会用git pull,git pull = git fetch + git merge,因为pull拉取会合并本地文件,可能会导致冲突。
#这一步操作可能会要求输入密码

3.4 创建本地分支,并切换到本地分支

cd xm-admin
git branch dev 
git checkout dev
git branch -a
#* dev
#  liuyan
#  remotes/origin/HEAD -> origin/master

3.5 更新分支代码[此处从分支liuyan更新]

git pull origin liuyan
#1115.txt是在gitlab 新建的文件
remote: Counting objects: 2, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From http://192.168.221.143:9000/liuyan/xm-admin
 * branch            liuyan     -> FETCH_HEAD
Updating a101c2c..b30e758
Fast-forward
 1115 => 1115.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename 1115 => 1115.txt (100%)

3.6 修改本地分支,并查看状态

echo "bbb" > bbb.txt
git status
# On branch dev
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       bbb.txt
nothing added to commit but untracked files present (use "git add" to track)

3.7 提交暂缓区,并上传至远程分支

git add bbb.txt #提交到暂缓区
git commit -m "add bbb.txt " #注释信息
[dev 7ffcc5e] add bbb.txt
 1 file changed, 1 insertion(+)
 create mode 100644 bbb.txt

3.8(修改代码后)推送本地分支到远程分支

git branch -u origin/liuyan #git 把本地分支设成远程分支的跟踪分支:
git branch -vv              #git查看追踪分支:
git push origin dev:liuyan  #git push到远端不同名分支:
#Everything up-to-date报错链接:http://t.csdn.cn/lEf6T

3.9 合并其他分支到master并推送到远程仓库

#1、假如我们现在在dev分支上,刚开发完项目,执行以下命令提交代码到dev分支
git status
git add .
git commit -m 'dev'
git pull
git push -u origin dev
#2、然后我们要把dev分支的代码合并到master分支上 ,所以首先切换到master分支上
git checkout master
#3、如果是多人开发的话 需要把远程master上的代码pull下来,保险起见,最好pull一下
git pull origin master
#4、然后我们把dev分支的代码合并到master上
git merge dev
#5、然后查看状态
[root@gitlab xm-admin]# git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean
#6 上面的意思就是你有1个commit,需要push到远程master上
git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To http://192.168.221.143:9000/liuyan/xm-admin.git
   c647f96..8cdba14  master -> master
#7、合并完成,最后开发的时候 切换分支到 dev 就可以了 git checkout dev

3.10 删除代码仓库代码

3.10.1删除master分支代码

#1.拉取代码
git pull origin master
#2.删除代码
git rm 2200.txt 1115_01.txt test1115.txt bbb.txt
#3.重新提交
git add .
git commit -m "delete 2200.txt 1115_01.txt test1115.txt bbb.txt"
git push origin master

3.10.1删除其他分支代码

#1.拉取分支代码
git clone http://192.168.221.143:9000/liuyan/xm-admin.git  --branch=liuyan
#2.删除代码
cd xm-admin
git rm 1115_01.txt 2200.txt bbb.txt liuyan.md
#重新提交代码到分支liuyan'
git add .
git commit -m "delete 1115_01.txt 2200.txt bbb.txt liuyan.md"
git push origin liuyan
#以下是删除输出结果
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 241 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote:
remote: To create a merge request for liuyan, visit:
remote:   http://192.168.221.143:9000/liuyan/xm-admin/merge_requests/new?merge_request%5Bsource_branch%5D=liuyan
remote:
To http://192.168.221.143:9000/liuyan/xm-admin.git
   8cdba14..c09dd50  liuyan -> liuyan

4. 其他常用参数

4.1 克隆最近一次版本

git clone --depth=1

#当项目过大时,git clone时会出现error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504 Gateway Time-out的问题,如下图
在这里插入图片描述
#原因分析:
#如果我们执行git clone 这个仓库时,会把所有的历史协作记录都clone下来,这样整个文件会非常大,其实对于我们直接使用仓库,而不是参与仓库工作的人来说,只要把最近的一次commit给clone下来就好了。这就好比一个产品有很多个版本,我们只要clone最近的一个版本来使用就行了 。实现这个功能就需要用到git clone --depth=1命令
#原因分析:
#如果我们执行git clone 这个仓库时,会把所有的历史协作记录都clone下来,这样整个文件会非常大,其实对于我们直接使用仓库,而不是参与仓库工作的人来说,只要把最近的一次commit给clone下来就好了。这就好比一个产品有很多个版本,我们只要clone最近的一个版本来使用就行了 。实现这个功能就需要用到git clone --depth=1命令

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值