工作总结之git分享篇
工作总结之git分享篇
前言
有空了,来分享一波平常笔者自己git使用的干货,也是做一个总结
干货
git pull
- 首先先纠正一个误区
git pull
并不是一个操作而是相当于git fetch + git merge
其实以上都没有用,做个了解(有人觉得git fetch
比较安全,但是该冲突还得冲突,最重要的是解决冲突) - 不带参数
笔者常用的就是这个命令
当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 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
复制分支
git checkout dev
:切换到需要复制的分支
git pull
:保持代码最新
git checkout -b test
:创建新的分支test
git push origin test
:推送到远端
git pull
:此时会报错,是因为没有做关联
git branch --set-upstream-to=origin/test
:做关联
git pull
:不再报错
cherry pick
- 作用
曾经被朋友形容的是摘桃。作用就是从另一个分支获取某些提交 - 笔者只用过图形化的操作方式
摘桃并推送,即可获取prd分支的提交到dev分支
初始化一个项目
可以使用git init
和git clone
,笔者几乎都是用的后者,也不用啥图形化工具,具体命令git clone -b 分支名 http链接或者ssh链接
推荐的一些图形化工具
笔者在这里墙裂推荐SourceTree和vscode,前者是因为windows和mac都有(小乌龟好像只有windows吧),还有它真的很好看(界面,我也成一个颜狗了),笔者除了开发工具和命令行外,就是它用的最多了;后者是因为足够的轻量化(windows和mac也都有,甚至Linux上也有),虽然不能图形化合并代码,但是可以图形化解决冲突(不想用记事本打开就用它吧,笔者经常拿它解决冲突,hh)
总结
以上是笔者工作以来经常用到的git干货,如果能给到路过的旅行者一点帮助,笔者也会感到非常的开心哒