努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • Gitlab安装与仓库管理

    • gitlab安装与基本配置
    • 容器部署SVN-Subversion
    • Git使用手册
      • 安装
      • 创建版本库
        • 添加文件到仓库
      • 版本管理
        • 查看版本记录
        • 回退版本
      • 远程仓库
        • SSH 添加验证
        • 仓库管理
        • 仓库迁移,保留commit记录和tag,branch
        • 远端仓库回退
        • 分支管理
    • svn迁移到gitlab
  • Jenkins管理

  • jenkins工具集成

  • pipeline流水线学习

  • GitHub技巧

  • 扩展

//
  • DevOps
  • Gitlab安装与仓库管理
yangfk
2019-12-25

Git使用手册

//

# Git使用手册

# 安装

官网下载:https://git-scm.com/downloads (opens new window) 下载完成后使用默认进行安装。

安装完成后,在开始菜单里找到 Git -> Git Bash,配置用户和邮箱,用于提交代码(commit) 记录是谁提交的,(写真实名称,别写小名)

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
1
2
  • clone记住用户密码

git config --global credential.helper store

# 创建版本库

# 创建目录仓库
mkdir <仓库name> 

# 进入仓库
cd <仓库name>

# 此命令用于显示当前目录
pwd

# 把当前目录初始化成Git仓库,也不一定必须在空目录下创建Git仓库,选择一个已经有文件的目录直接`git init`也是可以的。
git init
1
2
3
4
5
6
7
8
9
10
11

# 添加文件到仓库

# 添加指定文件或文件夹到缓存区,文件需添加后缀
git add <文件或文件夹name>                   # 单个文件
git add <文件或文件夹name> <文件或文件夹name>  # 多个文件

# 或 全部文件同时添加到缓存区
git add .
git add --all .  #前面有过add,但又删除了,忽略移除的文件

# 把文件从缓存区提交至仓库
git commit -m "提交描述"

# .gitigonre 文件
忽略不需要提交的文件或目录
1
2
3
4
5
6
7
8
9
10
11
12
13

# 版本管理

# 查看文件是否变更,显示 新增/删除/被改动等 的文件
git status

#比对修改的文件,已经存在commit里面
git diff test.txt 

1
2
3
4
5
6

# 查看版本记录

# 查看所有版本记录,包括本地 reset 回滚标签的记录
git reflog

# 查看版本记录
git log   # 显示版本号、提交时间等信息
git log --decorate -5 #5个记录

# 查看commit 标签和提交内容,5个
git log --decorate --oneline -5
1
2
3
4
5
6
7
8
9
  • git log 参数
git log -1 --pretty=format:%s #获取提交说明

%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 --date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  • pipeline获取当前提交内容

env.commitMessage = sh(script: "git log -1 --pretty=format:%s", returnStdout: true).trim()

# 回退版本

在Git中,用HEAD表示当前版本,也就是最新的提交d829c33...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

# 回退到上一个版本
git reset --hard HEAD^

# 跳转到指定标签,如果想要跳转回去,查看所有log记录:git reflog
git reset --hard d829c33
1
2
3
4
5

# 远程仓库

# SSH 添加验证

使本机能关联远程仓库,首次需要SSH验证

  • Windows

yfklife_cn.jpg

  • Linux

yfklife_cn.jpg

# 创建SSH Key,一路回车,如果已经存在,直接拷贝 id_rsa.pub 文件
ssh-keygen -t rsa -C "邮件地址"
1
2

登陆GitLab,右上角头像 > settings > SSH Keys,在key的文本框里粘贴 cat ~/.ssh/id_rsa.pub 文件的内容

  • 测试检出仓库.仓库类型为 SSH ,能正常clone检出,说明配置正常

git clone git@git.yfklife.cn:zlt/XXX.git

yfklife.cn.jpg

# 仓库管理

  • 从远程克隆项目
# 从远程库克隆项目
git clone <仓库地址>

# 克隆指定分支
git clone -b <分支名> <仓库地址>
1
2
3
4
5
  • 删除远程仓库
# 删除远程仓库
git remote rm <仓库名>
1
2
  • 查看clone下来的仓库信息
# 查看当前目录下,仓库的配置信息
git config --list

# 查看远程仓库
git remote -v
1
2
3
4
5

# 仓库迁移,保留commit记录和tag,branch

#从原镜像库拷贝一份到本地
git clone --bare https://git.yfklife.cn/dev/old.git

#gitlab 控制台,创建新仓库new2

#镜像原仓库到新的仓库下
cd old.git
git push --mirror git@git2.yfklife.cn/xxx/new2.git
1
2
3
4
5
6
7
8

# 远端仓库回退

打开gitlab 控制台 => 进入需要操作的仓库 => Settings => Repository => Protect a branch

临时去掉默认的 Master 的 Protected

yfklife.cn.jpg

强制push到远端master主干,推送完之后,再此开启,防止无心之人把代码归零

git push -f origin master

# 分支管理

  • 创建,删除分支
# 创建分支
git checkout -b <分支名>

# 切换到master 主干
git checkout master

# 删除分支,需要先切换出分支
git branch  -D  dev

# 修改分支名
git branch -m <原分支名> <新分支名>
1
2
3
4
5
6
7
8
9
10
11
  • 查看分支
# 查看分支时,在分支前带 * 号的表示当前的分支
git branch
1
2
  • 合并分支
# 合并本地的分支
git merge <分支名>

# 合并远程的分支
git merge <远程仓库名>/<分支名>
1
2
3
4
5

注意,是将指定分支合并到当前分支,并非当前分支合并到指定分支。

  • 推送主干或分支代码
# 把文件推送到远程仓库,分支名不存在会自动创建分支(开启了允许创建分支)
git push -u <仓库名> <分支名>

# 示例
git push -u origin master
git push origin dev 

# 你在哪个分支,就推送哪个
git push 
1
2
3
4
5
6
7
8
9
  • 帮助命令

git help

参考文档 (opens new window)

//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2022/09/29, 10:44:04
容器部署SVN-Subversion
svn迁移到gitlab

← 容器部署SVN-Subversion svn迁移到gitlab→

最近更新
01
Linux Polkit 权限提升漏洞(CVE-2021-4034)
03-28
02
postgreSQL维护
03-17
03
trivy系统漏洞扫描
02-25
更多文章>
Theme by Vdoing | Copyright © 2019-2025 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//