基本命令#
clone(克隆):从远程仓库中克隆代码到本地仓库。
checkout(检出):从本地仓库中检出一个仓库分支然后进行修订。
add(添加):在提交前先将代码提交到暂存区。
commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本。
fetch(抓取):从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
pull(拉取):从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge。
push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库。
设置配置信息#
1
2
| git config --global user.name "自己的用户名"
git config --global user.email "自己的邮箱"
|
查看配置信息#
1
2
| git config --global user.name
git config --global user.email
|
基本使用#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| git init
#初始化仓库
git status
#查看的修改的状态(暂存区、工作区)
git add [单个文件名|通配符]
#(工作区 --> 暂存区)
git commit -m '注释内容'
#(暂存区 --> 本地仓库)
git log [option]
#查看提交日志
#--all 显示所有分支
#--pretty=oneline 将提交信息显示为一行
#--abbrev-commit 使得输出的commitId更简短
#--graph 以图的形式显示
git reset --hard <commitID>
#版本回退
git reflog
#查看已经删除的提交记录
|
分支类型#
master(生产) 分支#
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
release(发布)分支#
是从master创建的分支,一般作为线上发布的分支,用于发布线上版本,发布完成后需要合并到master分支。
pre(预发布)分支#
是从master创建的分支,一般作为预发布环境的分支,用于预发布线上版本,预发布完成后需要合并到master分支,准备上线。
develop(开发)分支#
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线 要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
test(测试)分支#
是从master创建的分支,一般作为测试环境的分支,用于测试线上版本,测试完成后需要合并到master分支,准备上线。
feature/xxxx分支#
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完 成后合并到develop分支。
hotfix/xxxx分支#
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、 develop分支。
相关命令#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| git branch
#查看本地分支
git branch <分支名>
#创建本地分支
git checkout <分支名>
#切换分支
git checkout -b <分支名>
#创建并切换分支
git merge <分支名称>
#合并分支
git branch -d <分支名>
#删除分支,需要检查是否有未合并的提交记录
git branch -D <分支名>
#不做任何检查,强制删除
|
远程仓库#
理解要点:#
clone:将整个远程仓库复制到本地,用于初次获取远程代码。
fetch:从远程仓库获取最新代码到本地,但不自动合并到当前分支。
pull:从远程仓库获取最新代码,并自动合并到当前分支。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| git remote add <远端名称> <仓库路径>
#远段名称,默认是origin,取决于远端服务器设置
#仓库路径,从远端服务器获取此URL
git remote
#查看远程仓库
git push [-f] [--set-upstream] [远端名称] [本地分支名][:远端分支名]
#-f 表示强制覆盖
#--set-upstream,也可以写作-u 推送到远端的同时并且建立起和远端分支的关联关系,将来使用 git push 或 git pull 时省略远程分支的名称
git branch -vv
#查看关联关系
git clone <仓库路径> [本地目录]
#从远程仓库克隆
git fetch [远端名称] [分支名称]
#从远程仓库中抓取
git pull [远端名称] [分支名称]
#从远程仓库中拉取
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #1. 简单的推送:将当前分支的更改推送到远程仓库的同名分支。
git push
#2. 指定远程仓库和分支:将当前分支的更改推送到远程仓库的 main 分支。
git push origin main
#3. 设置上游分支:将当前分支的更改推送到远程仓库的 main 分支,并将本地分支与远程分支关联。
git push -u origin main
#4. 强制推送:将当前分支的更改强制推送到远程仓库的同名分支,覆盖已有的提交。
git push -f
#5. 指定本地分支名和远程分支名:将本地的 feature 分支推送到远程仓库的 main 分支。
git push origin feature:main
|