二、Git

摘要:
Git是LinusTorvalds为了帮助管理Linux内核开发而是一个开放源码的版本控制软件。Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必有服务器端软件支持。仓库中的每个文件的改动都由git跟踪。
1.Git

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而是一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必有服务器端软件支持。

2.安装
[root@jenkins ~]# yum install git -y
[root@jenkins ~]# git --version
git version 1.8.3.1

3.仓库

对应的就是一个目录,这个目录中的所有文件被git管理起来。以后会将一个项目的根目录,作为仓库。仓库中的每个文件的改动 都由git跟踪。

私有:团队内部成员可访问
公开:所有成员可访问

#新建仓库并初始化
[root@jenkins ~]# mkdir /springboot
[root@jenkins /springboot]# git init

[root@jenkins /springboot]# ll -a
drwxr-xr-x   3 root root  36 Nov 17 11:42 .
dr-xr-xr-x. 18 root root 262 Nov 17 11:06 ..
drwxr-xr-x   7 root root 132 Nov 17 11:45 .git


4.配置git
[root@jenkins /springboot]# git config --global user.name "zzc"
[root@jenkins /springboot]# git config --global user.email "zzc141145@126.com"
[root@jenkins /springboot]# git config -l
user.name=zzc
user.email=zzc141145@126.com

5.添加SSH公钥至Gitlab仓库
[root@jenkins /springboot]# ssh-keygen

[root@jenkins /springboot]# cat ~/.ssh/id_rsa.pub 
ssh-rsa 
------- ------- 省略 ------ -------

#复制秘钥至Gitlab仓库

二、Git第1张

6.链接远程仓库
[root@jenkins /springboot]# git remote add origin git@www.zzcweb.top:k8s/myjava.git

#查看远程连接
[root@jenkins /springboot]# git remote -v 
origin	http://www.zzcweb.top/k8s/myjava.git (fetch)
origin	http://www.zzcweb.top/k8s/myjava.git (push)

#删除远程连接
[root@jenkins /springboot]# git remote rm origin  

二、Git第2张

7.将代码上传Gitlab仓库
1、git add [文件路径|.(代表当前目录中的所有的文件)]  
#提交一个文件到GIT缓冲区
[root@jenkins /springboot]# git add index.html


2、git status   #主要查看仓库目录下文件在git中提交的状态
[root@jenkins /springboot]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	deleted:    index.html
#
# Untracked files:   #未跟踪文件
#   (use "git add <file>..." to include in what will be committed)
#
#	index.html


3、git rm --cached [文件路径]    #将文件在缓冲区中删除
[root@jenkins /springboot]# git rm --cached index.html


4、git commit  #将工作区内容提交至缓冲区
参数 :
     -m : 添加备注信息
[root@jenkins /springboot]# git commit -m '注释'
[master e766396] 注释
 1 file changed, 5 deletions(-)


6、git log:查看git日志
[root@jenkins /springboot]# git log
commit 2a0f285bcd849657667058eed8bb1034942981c6
Author: zzc <zzc141145@126.com>
Date:   Wed Nov 17 16:51:11 2021 +0800

    注释


5、git push origin [分支]  #推送到远程仓库 
参数:
	-f : 强制推送
#提交本地git缓冲区内的内容到远程仓库, 如果有冲突,可以使用--force参数强制提交		指定分支:git push origin master
 --   origin  是指远程
 --   master  是指远程仓库的分支  
[root@jenkins /springboot]# git push origin master

8.Git回滚
git reset --hard [commit id]:回退版本信息
#注意:

[root@jenkins /springboot]# git log
commit e0f4aac4e1971d625aa78f23381426a8230fcf83
Author: zzc <zzc141145@126.com>
Date:   Wed Nov 17 17:09:44 2021 +0800

    html

commit 6866a3cf207558178eebbf15be73f6f5f16ea126
Author: zzc <zzc141145@126.com>
Date:   Wed Nov 17 17:09:00 2021 +0800

    yaml


[root@jenkins /springboot]# git reset --hard 6866a3cf207558178eebbf15be73f6f5f16ea126
HEAD is now at 6866a3c yaml


[root@jenkins /springboot]# git log
commit 6866a3cf207558178eebbf15be73f6f5f16ea126
Author: zzc <zzc141145@126.com>
Date:   Wed Nov 17 17:09:00 2021 +0800

    yaml

#回滚后只是在本地Git缓冲区回滚,如果要远程仓库文件回滚需重新上传一次。分支被保护需在gitlab取消保护分支才能上传成功
[root@jenkins /springboot]# git push -f origin master
Total 0 (delta 0), reused 0 (delta 0)
To git@www.zzcweb.top:k8s/myjava.git
 + b5690e4...6866a3c master -> master (forced update)
 
#取消保护:仓库>>>>>>分支>>>>>>>>项目设置>>>>>>>>>Protected branches

二、Git第3张

9.分支
dev	  : 开发分支
test  : 测试分支
pre   : 预发布分支
master:正式生产环境分支

#查看分支(以*开头的分支名称为当前所在分支)
git branch 
参数: 
	-a  查看所有的分支
	
[root@jenkins /springboot]# git branch 
* master

#创建分支(第一种方式)
git branch [分支名称]

[root@jenkins /springboot]# git branch dev
[root@jenkins /springboot]# git branch 
  dev
  master
* test

#创建分支(第二种方式)
git checkout -b [分支名称]

[root@jenkins /springboot]# git checkout -b pre
Switched to a new branch 'pre'
[root@jenkins /springboot]# git branch 
  dev
  master
* pre
  test
## 区别:
	git branch 创建分支仍留在原分支
	git checkout 创建分支,立即切换至新分支


#切换分支
git checkout [分支名称]

[root@jenkins /springboot]# git checkout test
Already on 'test'
[root@jenkins /springboot]# git branch 
  master
* test

10.不同分支之间数据转换
1.在655分支准备一份文件index.html
[root@jenkins /springboot]# git branch 
* 655
  dev
  master
  pre
  test
[root@jenkins /springboot]# ll
-rw-r--r-- 1 root root 210 Nov 17 18:45 index.html


2.上传代码至远程仓库
[root@jenkins /springboot]# git add index.html
[root@jenkins /springboot]# git commit -m 'test'
[root@jenkins /springboot]# git push origin 655

3.切换到dev分支
[root@jenkins /springboot]# git checkout dev
[root@jenkins /springboot]# git branch 
  655
* dev
  master
  pre
  test

4.拉取远程仓库655分支的内容
[root@jenkins /springboot]# git pull origin 655

5.推送到远程dev分支
[root@jenkins /springboot]# git push origin dev

11.下载代码
1.本地没有仓库
仓库链接:Gitlab >>>>>> 项目 >>>>>>> 克隆 
  git clone [仓库链接]

[root@jenkins ~]# git clone git@www.zzcweb.top:k8s/myjava.git
[root@jenkins ~]# cd myjava/
[root@jenkins ~/myjava]# ll -a
drwxr-xr-x  3 root root  36 Nov 17 19:20 .
dr-xr-x---. 5 root root 242 Nov 17 19:20 ..
drwxr-xr-x  8 root root 163 Nov 17 19:20 .git
-rw-r--r--  1 root root 121 Nov 17 19:20 index.yaml


2.本地已存在仓库
git pull [origin] [分支名称(默认当前分支)]

[root@jenkins ~/myjava]# git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From www.zzcweb.top:k8s/myjava
   6866a3c..d3accc0  master     -> origin/master
Updating 6866a3c..d3accc0
Fast-forward
 index.yaml | 1 +
 1 file changed, 1 insertion(+)

免责声明:文章转载自《二、Git》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Chrome源代码结构浪潮各机型前面板指示灯含义下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jenkins 远程启动nodejs失败,使用pm2守护Nodejs

一、概述 使用Jenkins 远程ssh到linux,使用命令: ssh root@192.168.10.1 'cd /data/test;nohup npm start &' 发现linux服务器的node进程没有启动。但是本地执行命令: cd /data/test;nohup npm start &  是可以启动的。 具体原因,参考链接...

git 本地分支与远程分支 新建/删除/合并

github上已经有master分支 和dev分支 在本地 git checkout -b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 在本地新建分支并推送到远程 git checkout -b test git push origin test 这样远程仓库中也就创建了一个test分支 =====...

root和alias用法

[root] 语法:root path 默认值:root html 配置段:http、server、location、if [alias] 语法:alias path 配置段:location root实例: location ^~ /t/ { root /www/root/html/; } 如果一个请求的URI是/t/a.html时,web服务器将会返回...

centos6.5磁盘扩容

3台虚拟机都是20G磁盘,用着用着发现不够了,先扩容了一台,各种百度...各种坑,每个人的情况不一样,发现不一样的地方最后立即百度查看。一台扩容成功后,打算再扩容一台,目的是留一个记录。(我是用xshell超级用户链接的的虚拟机) 扩容大致分为3步:1.外部设置;2.设置分区;3.重启;4挂载;(挂载过程中解决了物理卷、卷组、逻辑卷、格式化问题,如果挂载失...

开发与OP流程规范(git)

概况 当前文档包涵开发流程规范与上线(OP)流程规范。 通过规范开发流程可以严格控制线上分支的代码质量及稳定性。使用成熟的工作流程模型,可以使团队协作更加流畅。 通过规范上线(OP)流程,保证线上环境的稳定,明确职责。 涉及人员 研发工程师 代码审核员(技术负责人或由技术负责人指定的研发工程师,不可以是开发者本人) 产品经理 测试工程师(未到岗前,产...

git hook相关内容

一、Git钩子 Git 能在特定的重要动作发生时触发自定义脚本,它能完成下列一些很常用的场景: 1.多人开发代码语法、规范强制统一2.commit message 格式化、是否符合某种规范3.如果有需要,测试用例的检测4.服务器代码有新的更新的时候通知所有开发成员5.代码提交后的项目自动打包(git receive之后) 等等... 每一个使用了 git...