Day06:绝对要有的Git观念与习惯

一、前言

  先前有提到,我在转职後、进到现职公司前,其实还有录取过另外一份PHP後端工程师之职缺,因为转职时在培训营学习过Ruby这个後端语言,所以在技术考时,算是回答方向还可以,有幸被录取。

  不幸的是,我入职後发现全公司都没有人会使用Git!!!太惊人了啊~这麽好用的东西到底为何不使用呢?我记得我才到职一周时间,每天在办公室里,大家都是埋头写扣,最常听到的对话就是「有人刚刚删掉我的某某某段程序码吗?」

  後来询问之後才了解,原来我面试时询问公司是否有使用Git做版控时,主管说有,其实是没有的...全公司前後端分离,程序码的交换是使用共用资料夹做传输...所以就会有掉程序码的问题常发生,而大家也都没有备份的习惯,导致专案开发常常有耗时之问题!

  当然除了没有版控,其实还有其他问题,我只做一周就离职了。从中得到最宝贵的经验,我觉得是建议刚要踏入这行的新鲜人,可以多注意版本控制这件事,不要说是协作,你一个人在家开发side project时也可以用啊!随时随地都可以练习的~

二、Git是什麽?

  Git像一个档案系统,直接在本机上取得资料,不必连线到主机端取得资料。 每个开发者都可有全部开发历史的本地副本,changes从这种本地repository复制给其他开发者。这些changes作为新增的开发分支被汇入,可以与本地开发分支合并。(本段落取用自维基百科之定义)

  上面那段我觉得可能是因为翻译关系较为饶舌难懂,我觉得较简单的理解是可以把Git当作是一个版本开发工具,你可以随时储存进度、保留历史开发内容、为每一阶段开发做有效命名、以及传送至有效之server作为团队合作之工具。

  以下介绍我觉得入职後最常用的几个,如果想要从头学习或了解一些冷知识的话,推荐可以看龙哥的这本书<<为你自己学 Git>>,可以依自己习惯选择电子版或实体书籍(我个人还是喜欢实体书籍)。但入职前将下列指令熟用(稍微列几个,但实际上也要看公司的习惯),真的是很基本的事情!

项次 Git指令 用处
1 git add . 我通常都是一个小进度告一段落就会使用,然後搭配项次2的指令作为此进度之命名
2 git commit -m "commit message" commit message放的就是你对目前这个储存的时机点所完成的进度,个人推荐全英文写上简单易懂之小句子,可顺手培养英文单字熟练度。
3 git merge branch-name 合并某个分支。
4 git push origin branch-name 就是推到某个远端的分支做同步的意思,有可能是feature...、develop等等。
5 git cherry-pick commit-SHA-1 - commit-SHA-1是指你想要的那个节点。- 主要是用来处理你忘记开分支出去,就开始撰写程序码的状况。可以参考这个章节,有更详细之理解。

三、Git观念与习惯

  Git好用之处这边不加以赘述,远端共同协作更是现在身为工程师必备之技能。那拥有好的Git观念,我想是要靠自己不断练习使用、常与团队沟通合作,自然就能累积而成。这边介绍一下我个人坚持的小习惯,但我现职的全公司都不爱用XDD我不懂为何...

项次 主题 内容
1 使用全指令介面 - 好处是可以不用切换输入法、增加英文字汇量、有很多指令可以活用、假装很忙? - 坏处目前想不到,因为我觉得学习曲线真的不高。
2 分支命名 - 第一当然是尊重团队习惯。 - 第二则是留意分支主题是否易懂。
3 commit讯息 - 尽量还是全英文书写。 - 有需要的话可以进到习惯介面输入markdown语法详列。 - 保持习惯一个段落就commit一次,要补救或确认每日进度时很好用。

四、Git Server又是什麽?

  网路上有点难查到名词定义,大概意思就是你在本地有的那些分支可以更新(push)到 远端共同协作的网站 ,而你一直在打的那些Git指令是工具。

  最知名的Git Server当然就是GitHub啦~听说工程师宅宅们甚至会在上面交友,以程序码会友~我个人等级不到还没体验过...但是值得一提的是它真的提供了很多服务,像是你的个人首页看放介绍,你可以创建与你GitHub帐号名称相同的GitHub Page,大家如果有兴趣可以多研究一下~(後面篇幅我也会介绍如何使用GitHub Page)

  当然,有的公司也会自架一个Git Server,我现职的公司就是这样的。入职後,公司会帮我们创建帐号,个人觉得和GitHub几乎相同,只是那些绿点点不会长在自己的GitHub纪录里而已,但我有发现一个奇妙的点,公司自架的 Git Server 绿点点是记录你的当日 push 次数,而 GitHub 则是记录你当日 commit 次数,这点倒是不明白为何?

五、结论与自我鼓励

  总结当然首要提到的是,一定要进到一间有版控的公司啊!虽然也有很多公司长年没有使用仍然可以存活,但我想背後应该有很多没必要的苦工...次要则是想分享近期我公司同事转传给我们的「Git Commit Message写法」,这是看公司协作和个人习惯,大家可以当作参考即可。

  自我鼓励的部分,当然是觉得佩服自己中秋连假竟然可以成功不断赛,虽然每天行程很满,仍然在固定时间点静下来打文章,因为听说人类连续21天就能养成一个习惯,我是一个非常容易半途而废的人(因为有点懒惰),所以需要常给自己鼓励才有动力!各位铁人们一起加油吧~


<<:  [DAY 04] 阿桐意面

>>:  C# 一些特性

Day15-seaborn(3)盒须图boxplot、热力图heatmap

盒胡图 可用来观察资料的分布情形 最大值、最小值、中位数、四分位数 一样使用Titanic资料集做示...

总结与心得

经过漫长的环境设定与软件安装後 终於把 SQL Server Failover Cluster 基本...

操作Activity的一点心得

Activity 是开发中很重要且必需了解的重要关键。它主要的用途在於绘制画面,让应用程序显示於画面...

Day 27 - 看起来很无聊又很好玩的游戏开发

Intro 这篇主要会讲解一些 SFML 中常用到的内容,效果,还有要怎麽用他们。 然後我会照 影片...

企划实现(22)

使用firebase简易资料库 在使用前要将专案连结至firebase 第一步:在firebase创...