git

306 阅读2分钟

git stash

git-stash用法小结

作用:将你当前未提交到本地(和服务器)的代码推入到Git的栈中
git stash:   储藏当前修改,把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。
stash是本地的,不会通过git push命令上传到git server上。
    
git stash save:  给stash加一个message来记录版本
git stash pop:  恢复之前缓存的工作目录,删除缓存堆栈中的第一个stash,并将对应修改应用到当前的工作目录下。
    
可使用git stash apply:将缓存堆栈中的stash多次应用到工作目录中,但不删除stash拷贝
    
git stash pop 和 git stash apply 可以在后面加 “@stash{0}” 来指定使用哪个stash,默认使用最近的stash(即stash@{0})
git stash drop:移除stash,后面可以跟着stash名字
git stash clear:删除所有缓存的stash
git stash show: 查看指定stash的diff, 后面可以跟着stash名字
git stash show -p/--patch 查看特定stash的全部diff
git stash branch "test": 恢复储藏的工作然后在新的分支上继续当时的工作

删除分支

git branch -d 本地分支名 =>如果本地分支有没有合并的文件会报错 无法删除
git branch -D 本地分支名 =>强制删除本地分支
推荐直接 git branch -D 即可

git rebase

git checkout story-201907-new
git pull origin story-201907-new
git checkout feat_addapplylist
git rebase story-201907-new
如有冲突,解决冲突后
git add .
git rebase —continue 
git push -f origin feat_addapplylist

git commit 提交规范 & 规范校验

目的: 代码提交信息的说明准确,统一; 方便后期协作和Bug处理

https://github.com/typicode/husky

Commit message格式
<type>: <subject>
type: 用于说明 commit 的类别,只允许使用以下7个标识之一。

feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中
注: 
-冒号后有空格; 
-subject是 commit 目的的简短描述,不超过50个字符,且结尾不加句号(.)
工具: 使用commitlint 和 husky, 在git push之前检测commit messages

回退

git reset –hard HEAD ^   
( ^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD^改成HEAD^^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:git reset –hard HEAD~100 );