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
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
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
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
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
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
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
2
3
4
5
# 远程仓库
# SSH 添加验证
使本机能关联远程仓库,首次需要SSH验证
- Windows
- Linux
# 创建SSH Key,一路回车,如果已经存在,直接拷贝 id_rsa.pub 文件
ssh-keygen -t rsa -C "邮件地址"
1
2
2
登陆GitLab,右上角头像 > settings > SSH Keys,在key的文本框里粘贴
cat ~/.ssh/id_rsa.pub
文件的内容
- 测试检出仓库.仓库类型为 SSH ,能正常clone检出,说明配置正常
git clone git@git.yfklife.cn:zlt/XXX.git
# 仓库管理
- 从远程克隆项目
# 从远程库克隆项目
git clone <仓库地址>
# 克隆指定分支
git clone -b <分支名> <仓库地址>
1
2
3
4
5
2
3
4
5
- 删除远程仓库
# 删除远程仓库
git remote rm <仓库名>
1
2
2
- 查看clone下来的仓库信息
# 查看当前目录下,仓库的配置信息
git config --list
# 查看远程仓库
git remote -v
1
2
3
4
5
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
2
3
4
5
6
7
8
# 远端仓库回退
打开gitlab 控制台 => 进入需要操作的仓库 => Settings => Repository => Protect a branch
临时去掉默认的 Master 的 Protected
强制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
2
3
4
5
6
7
8
9
10
11
- 查看分支
# 查看分支时,在分支前带 * 号的表示当前的分支
git branch
1
2
2
- 合并分支
# 合并本地的分支
git merge <分支名>
# 合并远程的分支
git merge <远程仓库名>/<分支名>
1
2
3
4
5
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
2
3
4
5
6
7
8
9
- 帮助命令
git help
//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2022/09/29, 10:44:04