git实践
据说再2016年我就开始接触git,当时还用台式机、笔记本作为两个用户进行git的一些实践和原理的了解,但是正儿八经在项目中用git还是现在,经过一年多的实践呢,入了一些坑所以觉得是时候展现真正的技术了,简单积累一下我比较常用的。
** git提交规范 **
这块是很重要很重要的,在代码评审、问题追溯、代码回滚、代码培训等的时候都需要用到这个东西,但是团队内暂时还没有对此做硬性要求。不过我个人是一直比较注重提交的内容,因为以前吃过亏,没有友好的commit内容某些场景下很难定位。虽然我比较注重但是还是比较游击队的打法,最近看到了个东西叫commitizen,它可以配置一套标准的提交规范,所以准备用起来。
配置commitizen
https://juejin.im/post/5cbd1fdf5188250a546f565f
可借助工具使提交更加规范:安装cz-conventional-changelog,即使用第三方的提交模板,这儿表示用的AngularJS的提交模板
用husky配合git hooks 进行预检查
package.json
{
1 | "husky": { |
git 储藏
常用git stash命令:
(1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
(2)git stash list :查看stash了哪些存储
(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
(4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
(5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
(6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
(7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
(8)git stash clear :删除所有缓存的stash
git 回滚
//回滚上一次提交
git reset HEAD~
// 修改最近一次提交的备注
git commit --amend
// 修改某一次提交的备注,最后的数字2指的是显示到倒数第几次
git rebase -i HEAD~2
git 合并
1 | //是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中 |
git 切换分支
//对于已经拉取到本地的分支之间的切换
git checkout 分支名
//对于还没有拉取到本地的分支
git checkout -b remote分支名 本地分支名
git 撤销merge
1 | //经常在切换分支时,一不小心就merge错了分支或者合并时遇到冲突想取消操作,这命令就好用了 |
git 撤销
1 | git reset --soft: 将分支回退到指定提交,工作区维持现状不变,暂存区会在现有基础上增加该commit之后的提交。 |
回退到某个版本并应用指定的几次提交
1 | 切换到目标分支上, 假如当前状态为新合并进了一条commit,只需执行 git reset --hard HEAD~1即可回退到合并前。 |
根据关键字搜索提交记录
1 | git log --all-match --grep=登录 |