工作总结之git分享篇
前言
有空了,来分享一波平常笔者自己git使用的干货,也做一个分享
干货
git pull
- 首先先纠正一个误区
git pull并不是一个操作而是相当于git fetch + git merge
其实以上都没有用,做个了解 - 不带参数
笔者常用的就是这个命令
当git pull不带参数的时候做了什么呢:
如果git pull不加任何参数,默认会获取所有远程分支的内容(相当于git fetch不加参数,应该是被追踪过的),注意不是所有分支都进行merge,是本地的当前分支进行merge。
ps: 不带参数的情况实测适用于git clone下来的代码,不适用于手动切换分支之后的情况 - 执行该命令有冲突,还没有开发工具

执行该命令有冲突

根据建议,笔者选择隐藏自己的内容

隐藏后再次git pull,别人的内容拿到了

放出自己的内容,这个时候就会有冲突,注意git有冲突时会直接在文件中输出

冲突的样子

因为没有开发工具hh,直接打开记事本解决冲突,此处选择保留双方的代码,实际情况请和你的同事商量

提交解决的冲突

推送解决冲突后的内容
ps:因为没有使用工具,使用https推送到gitee或者github的时候,可能不会弹出让你输入账号密码,可以手动增加

- 以上都是屁话,图一乐,一般都用工具
但是继续往下,你会发现大不一样
git push
- 不带参数
当git push不带参数的时候做了什么呢:
默认情况下,git会选择origin作为远程仓库,你的当前分支作为要推送的分支(默认只推送当前分支)。
ps:一般情况下,在日常开发过程中,直接使用不带参数的git push和git pull命令就可以完成当前分支文件的推送和拉取操作。
git commit
- 提交命令
需要注意的是,该命令只会提交暂存区里面的内容,可以使用git add fileName1 fileName2,然后执行git commit -m "提交说明"
git merge
- 作用
合并分支,在git pull时也见识过一点 - 什么时候使用
笔者曾就职过两家公司,第一家的开发流程是dev -> test -> prd,第二家开发流程是个人分支 -> dev -> prd,其实都大同小异,该冲突都得冲突,只要不开发的同一个模块都行,但是后者是最麻烦的,每个人都要去合并代码,而前者只需要固定的人去合并代码就行了,大家都在dev做开发。
然后合并方式,笔者两者都用,具体是哪两者呢,一个是开发工具,另一个是命令行,笔者为啥会用到命令行呢,难道是装b吗,其实不是,原因是前端使用的vscode,vscode没有提供相关的图形界面,具体如下(都让开,我要装b了,别打我):
- 命令行方式(从yyh到dev)
git pull在yyh分支时执行,保持该分支代码最新
git checkout -b dev:切换到dev
git pull:在dev分支时执行,保持该分支代码最新
git merge yyh:合并yyh到dev
git push:推送到远程
ps:前面的不再是屁话 - 图形化方式(开发工具)

切换到yyh,并且拉取最新的代码

切换到dev,并且拉取最新的代码

合并到dev,并且推送到远程
合并完成!
git stash
- 作用
将本地没有commit的代码暂存,不包括未被版本控制的文件(红色文件) - 什么时候使用
一个是前面遇到的git pull的时候,另一个就是正在开发某一个功能,突然告诉你,另一个功能比较着急,优先级更高,你就可以用这个了(不用跟老板或者是产品犟了)
这是笔者经常用的一个功能了 - 罗嗦一下
- 命令行
git stash save "隐藏说明": 隐藏代码
git stash apply:应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储。是的你可以stash多次。 - 图形化方式(开发工具)

笔者经常使用的是开发工具隐藏的hh
推荐的一些图形化工具
笔者在这里墙裂推荐SourceTree和vscode,前者是因为windows和mac都有(小乌龟好像只有windows吧),还有它真的很好看(界面,我也成一个颜狗了);后者是因为足够的轻量化(windows和mac也都有),虽然不能图形化合并代码,但是可以图形化解决冲突(不想用记事本打开就用它吧,笔者经常拿它解决冲突,hh)
总结
以上是笔者工作以来经常用到的git干货,如果能给到路过的旅行者一点帮助,笔者也会感到非常的开心哒