git是基本是现在代码管理的必备工具了,作为程序员当然需要了解git的常规操作。



例如开发资讯功能,新建分⽀为: feature/information
修补Bug分⽀ 修补Bug分⽀是基于master创建的临时分⽀,主要⽤于修改线上的Bug,并要及时上 线。bugfix分⽀测试通过后直接并⼊master分⽀。然后develop分⽀同步master分⽀代码,其他 特性分⽀同步develop分⽀代码
通过了解以上内容,对git有一个初步的认识。
至于一些git提交规范其实网上已经有很多了,这里举两个比较常用的:
feat:新功能或功能变更相关fix:修复bug相关当然你也可以使用husk来校验git commit 的规范,这里不作重点叙述,请自行官方文档
A:使用git stash 或 git stash save '暂存说明' 将其暂存至栈中,然后切换分支修复完你的bug之后,再切回你原来的dev分支,使用git stash list查看暂存记录,再使用git stash pop 出栈即可
A:git stash apply默认是使用第一个存储,即stash@{0},如要使用其他记录使用git stash apply stash@{$num},此场景下应为git stash apply stash@{1}
git stash save "save message" 执⾏存储时,添加备注,⽅便查找,只有git stash 也要可以的,但查找时不⽅便识别。
git stash list 查看stash了哪些存储
git stash show 显示做了哪些改动,默认show第⼀个存储,如果要显示其他存贮,后⾯加stash@{$num},⽐如第 ⼆个 git stash show stash@{1}
git stash show -p 显示第⼀个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} - p ,⽐如第⼆个:git stash show stash@{1} -p
git stash apply 应⽤某个存储,但不会把存储从存储列表中删除,默认使⽤第⼀个存储,即stash@{0},如果要使⽤ 其他个,git stash apply stash@{$num} , ⽐如第⼆个:git stash apply stash@{1}
git stash pop 命令恢复之前缓存的⼯作⽬录,将缓存堆栈中的对应stash删除,并将对应修改应⽤到当前的⼯作 ⽬录下,默认为第⼀个stash,即stash@{0},如果要应⽤并删除其他stash,命令:git stash pop stash@{$num} ,⽐如应⽤并删除第⼆个:git stash pop stash@{1}
git stash drop stash@{$num} 丢弃stash@{$num}存储,从列表中删除这个存储
git stash clear 删除所有缓存的stash
A:先使用git log查询你上一次提交的记录的hash值

使用git reset --hard hash将本地回滚到上次提交的状态。
如果不小心提交了,则使用 git push -f 强推代码覆盖你的上一次push。

A:
需要使用变基操作
先将你的代码提交到本地(比如dev分支)git commit -m 'xxx'。
(切换至你要变基的分支(比如master)git checkout master 然后拉取(git pull)master最新代码,最后再切回dev分支进行变基(git rebase master))或 (直接变基到远程master分支(其实就是最新的master)git rebase origin/master),然后git pull,这时候你的dev分支就会是master的最新分支。
之后切回master分支,将dev代码合到master里,整个历史记录就会程线性,不会有交叉的痕迹,并且你新提交的代码是在最前面。
git pull其实是默认使用git fetch + git merge去合并代码的,为了使记录更清晰,怎么破A:全局修改git pull即可
git config --global --add pull.rebase true
或你只想在当前项目rebase
git config --local --add pull.rebase true
A:两个选择合并或放弃
先说合并冲突:
在你解决完冲突后先add冲突文件然后使用 git rebase --continue
这时候会进入vim编辑模式查看你的一些提交啥的,一般这里不需要修改什么,直接输入:wq保存退出即可。
放弃直接执行 git rebase --abort即可
A:在dev分支执行git subtree push --prefix=dist origin beta
preifx='指定的文件夹' '分支名'
A:
先使用git fetch origin 来获取远程更新
然后使用git branch <newbranch> <tag> 基于tag拉取分支
git checkout newbranch
修复完bug之后git push origin newbranch 提交到远程
A:git config --local http.proxy 127.0.0.1:'port' IP地址一般是你自己的本地代理
SSL certificate problem: certificate has expiredA:最快的解决方法就是关掉SSL验证,git config --global http.sslVerify false
A:
新增一项:
git config --local/--global/--system --add section.key value (默认是添加在local配置中)
删除一项:
git config --local/--global/--system --unset section.key
local(本仓库)、global(全局)、system(系统)
也可以手动编辑 git config --local/--global/--system -e/-edit
欢迎补充或者有什么问题直接留言,我会及时查看并修复,此篇也会持续更新,建议点赞收藏关注三连♥️