git配置
查看安装的目录
which -a git
查看版本
git --version
配置用户名
git config --global user.name "chenxuan"
配置邮箱
git config --global user.email "2323116368@qq.com"
查看配置信息
git config --global --list
ssh密钥
生成密钥
ssh-keygen -t rsa
注:
-t 加/解密算法
-b 秘钥长度,rsa默认秘钥长度的为 2048
-C 注释,一般是填写用户名
-f 指定生成的秘钥文件名,如果不提供此参数则使用默认文件名,如rsa私钥默认文件名 ~/.ssh/id_rsa ,公钥默认文件名 ~/.ssh/id_rsa.pub
例:ssh-keygen -t rsa -b 2048 -C "ym2048@126.com" -f "github"
后面将公钥信息public key 添加到账户中即可,文件存放在 C:\Users\用户名\.ssh 中
初始化
初始化git
git init
备注:要在使用的文件夹内,运行后会生成一个 .git 文件
连接到远程仓库
git remote add origin git@gitee.com:cx2002/git_test.git
注:git remote add 仓库别名 仓库地址
查看当前连接的仓库
git remote -v
拉代码
拉取该分支的最新代码
git pull origin dev
注:git pull 仓库名 远程分支名
远程分支是与当前分支相同
在子分支上合并本地其它分支代码
git merge dev
注:此时所在分支为合并后的分支,git merge 要合并分支名
下载一个项目和它的整个代码历史
git clone 远程仓库地址名
下载一个项目指定分支和它的整个代码历史
git clone -b 分支名 远程仓库地址名
注意:
git clone 是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地(即将远程库整个下载到本地),是一个本地从无到有的过程。
git pull 在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地 git pull = git fetch + git merge
拉取最新代码
git pull origin master:updateCode
注:git pull 仓库名 本地分支名:远程仓库名
远程分支是与当前分支不相同,但要合并
git提交代码
将更新的文件推加入到暂存区
git add .
注:.代表全部文件,也可以git add 文件名
查看文件状态
git status
注:查看文件状态,在工作区的文件是红色的,在暂存区的文件是绿色的
将暂存区文件剔除到工作区
git restore <文件名>
注:如果该文件在之后又在工作区修改了,剔除之后你会发现你后来工作区写的东西全没了!!
所以,最好使用`git restore --staged <file> `来进行剔除,不然小心白写一天代码!!!
本地提交更新
git commit -m "这是对你本次提交的描述"
> 此时已经提交到本地仓库,但没有push到远程仓库,如何回滚?
> 1. 通过`git log`命令来查看提交日志
> 2. 通过`git reset --soft <版本id>`撤销提交(`git reset --mixed`撤销提交和`add`两个动作)
切换到本地dev分支(此时所在分支:本地dev)
git checkout dev
拉取最新远程仓库的代码(此时所在分支:本地dev)
git pull origin dev
切换到本地cxTest分支(此时所在分支:本地cxTest)
git checkout cxTest
将本地dev整合到本地cxTest中(此时所在分支:本地cxTest)
git merge dev
将本地cxTest推送到远程仓库(此时所在分支:本地cxTest)
git push -u origin cxTest
切换到远程dev分支(此时所在分支:远程dev)
git checkout dev
将远程cxTest分支合并到远程dev中(此时所在分支:远程dev)
git merge cxTest
切换到本地cxTest分支
git checkout cxTest
git分支中常用指令
列出所有本地分支
git branch
列出所有远程分支
git branch -r
新建一个分支,但依然停留在当前分支
git branch name
注:git branch 分支名
新建一个分支,并切换到该分支
git checkout -b name
注:git checkout -b 分支名
本地分支切换
git checkout name
注:git checkout 本地分支名
合并指定分支到当前分支
git merge name
注:git merge 分支名
把本地分支上传到远程仓库
git push test localname
注:git push 仓库名 分支名
此时所在分支:localname
删除分支
git branch -d name
删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
commitizen
Commit Message 标准格式包括三个部分:Header,Body,Footer
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
其中,Header 是必需的,Body 和 Footer 可以省略
一、Header
Header 部分只有一行,包括三个字段:type(必需)、scope(可选)、subject(必需)
1. type
用于说明类型。可分以下几种类型
2. scope
用于说明影响的范围,比如数据层、控制层、视图层等等。
3. subject
主题,简短描述。一行
二、Body
对 subject 的补充。可以多行。
三、Footer
主要是一些关联 issue 的操作。