基本命令

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