近期正值冬招,Pornhup公司也招来了几位实习生,分别是:北大还行静静、清华不错ABCDEF「人称字母哥」,南翔技校盖儿「人称大长腿」
每年实习生来了,一般都有一个实习生培训,让实习生们快速的融入Pornhup的工作环境中。
搁在以前大家都是不愿意去培训的,但是这次不仅公司的老王,老张吵着要去培训这几位实习生,连公司的女程序员都抢着要在实习周去培训他们。
那么到底是什么原因让这几位实习生备受公司的重视?因为北大还行吗?其实是因为来的这几位实习生,男的是长这样子的:
女的是长这样子的
就在公司的各种骨干吵得热火朝天的时候,还是管理者人甲出面,解决了这个问题:
各位,我看这几位高材生,还是我亲自出面培训他们吧,不然显得咋们Pornhup不重视实习生,所以大家都不要争了,就这么愉快的决定了。就由我代替各位直接到前线去亲力亲为吧。
小甲内心OS:这么漂亮的妹子,当然是我来了!
人甲:欢迎各位加入Pornhup公司,相信之前的新员工培训大家已经知道我们公司的规章制度了。那么咱们也废话不多说,主要讲讲咱们公司程序员工作中使用的最重要的工具:版本控制工具Git怎么使用。
Git是什么相信在这里不需要我多解释了吧?
静静、字母哥、大长腿:
人甲:我们公司的Git分支主要涉及到:master,即主分支,这是每个项目必须有的;develop, 开发分支;feature,从develop分支上分出来的功能分支;release, 发布分支;fix,补丁分支;hotfix,热补丁分支。
静静、字母哥、大长腿:
人甲:哈哈,目前听不太懂没关系,今天是第一天,我主要给大家讲一些基础。我就拿你们以后开发经常需要用到的feature分支举例子吧。
静静、字母哥、大长腿:
人甲:首先,大家需要从Github上用git把我们的Pornhup项目下载下来。
字母哥:那个,甲大,咋下载啊?
静静:我看你有张吴彦祖的脸,为啥却没别人那智商,这你居然都不知道!
要从Github下载一个项目,需要用到clone命令。在你常用的目录下面打开git, 输入如下命令,就把项目下载下来了。
git clone xxxxxxx.git
我说得没错吧,甲大
人甲:嗯,没错。
下载下来我们的项目后,默认是在master分支。master分支你们可以理解为是老虎的屁股,摸不得。
所以就需要用checkout命令跳转到develop分支。checkout [切克闹] 被用来切换分支,是git中最常用的命令之一。
git checkout develop
如果这个时候,字母哥接到个任务是加入A功能,你知道该怎么做吗?
字母哥:我想想啊
好像我们也不在develop分支上直接操作,这个时候应该需要再从develop分支上搞个分支出来。创建一个新分支,就需要用到branch命令。
git branch feature-A
git checkout feature-A
人甲:你这样说也没错,其实还有更简单的办法。两条命令合并成一条,branch直接用-b代替,然后再用checkout跳转到该分支,所以上面两句命令就变成一句了
git checkout -b feature-A develop
然后你们就可以在这个feature-A分支上完成你们的工作了。那么,如果代码写完发现没有问题,接下来大家知道怎么做吗?
静静: 哈哈,我知道!
用add命令来添加新写的代码
commit命令用来提交新写的代码
git add feature-A
git commit -m "add feature A"
人甲:静静你很厉害嘛,晚上下班到我办公室来。
但是先add, 再commit你们不觉得很繁琐吗?git这么设计必定由它的道理,你们有人知道为什么需要先add, 再commit吗?
静静、字母哥、大长腿:不知道欸,没仔细研究过。
人甲:git有好几个区,我们平时更改添加删减的代码都在工作区里面保存。
add命令执行后,修改被保存到暂存区。可以理解为你操作本地文件按了下ctrl + s
然后当你commit后,暂存区里的东西就被保存到了本地仓库。这里可以理解成你把修改好的东西放到了仓库,已经准备好运到下一个仓库去了,也就是所谓的远程仓库,Github。
静静、字母哥、大长腿:原来是这样啊!!
大长腿:人甲,接下来我来抢答下,add跟commit后是不是这个时候就用到merge命令,合并feature-A分到develop去啊?
人甲:不对哦,你如果这样做,很可能出现冲突。因为可能出现有很多人在develop分支上更新。所以你这个时候用pull命令,把远程仓库的更新取回并更新。
git pull origin develop
然后再切换回自己的分支,用rebase命令合并新更新到自己目前工作的分支。
再检查有没有冲突,最好双手合十起到没有冲突,有的话可能目前你们的水平也解决不了。
静静、字母哥、大长腿: 这么麻烦啊!!
人甲:没办法,git就是这么设计的,如果一切安好的话。就可以用merge命令合并分支
git merge --no-ff feature-A
合并之后就剩下最后一步操作了。
大长腿: 甲大,选我来说
这个时候,我们已经成功合并分支到develop分支上了,为了防止工作丢失,可以把刚才的工作推送给到云端去了。
人甲:是的,最后一步工作就是用push命令推送到Github就完事了
git push origin develop
好的,今天就给大家讲这么多,大家要是明白了之后,就可以去试着开发上面交代的工作了。
对了,静静,下班后请你到我办公室来。
系列文章
推荐阅读
- 这种公司都得死
- 程序员捅了马蜂窝