Day 7:git 版本控制

本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 UdemyYoutube 频道。另外,想追踪更多相关技术资讯,欢迎到 脸书粉丝专页 按赞追踪喔~

git 时光机

开发程序过程中,「备份程序码历程」是开发过程中很重要的一环,KT 在学生时代,萌懂刚开始自学程序时,备份方法是将整个资料夹目录,复制一份且在目录内留下类似「重要」、「读我」、「先看我」、「修改记录」的 txt 小记事本档案,里面文字说明这次修改了哪些内容,为什麽修改。然後将整个资料夹目录打包,压缩成zip档。用 「奇摩」 信箱,附件方式,寄一份给自己。如果当下版本有问题,就回去调纪录查看,是哪一版出错,回溯到那一版,长时间下来,累积了很多重复的档案很占空间,这样的备份程序码方式,存在很多问题,且管理版本上很没有效率。如果你目前也是用类似方式「备份程序码」,这时 KT 强力推荐,一定要改用 git 来更有效率的备份管理程序码。git 也是身为程序设计师,一定要点满属性的基本技能之一。

Git v.s 整份档案压缩备份比较

节省大量储放空间

git 只记录你修改过的档案资料,不会每次修改纪录都整包所有资料复制一份,如此一来大大的节省很多储放空间。

快速查阅历史纪录

git 可以很快速搜寻到,你提交(commit)留下的讯息,什麽时间点修改了哪些内容,哪几只档案。

回溯超方便

git 可以很快速切换到特定时间上的版本,或是只取出过往你想要的特定几只程序档案,不用全部还原,不用面对要一切都要打掉从头开始的命运。

多人协同开发

git 超强大的整合程序码功能,相当适合,多人开发的专案。

程序码储存库托管服务

KT 强烈良心建议,将程序码档案放在云端,不要将档案放在个人电脑硬碟里。因为谁都很难保证,自己的电脑万年不坏,人品很好,资料不会全部消失。 KT 曾有过亲身经历,切身之痛,在预计缴交完工专案前一刻,电脑突然闹脾气,完全开不了机,那次惨痛经验後,打死不论如何都要把程序提交到远端备份,多一份安全保障。不然真的会欲哭无泪,叫天天不应,叫地地不灵。

程序码储存库托管服务,专案属性,主要分为 public 和 private

  • public 公开专案:
    所有人都可以看到程序码,适合开源跟大家分享自己的程序码,可以选择谁可以 commit 提交修改程序码。

  • private 私有专案:
    非公开,仅自己或工作群组可以查看或 commit 提交编修的程序码。

坊间常使用的程序码代管服务有:GitHubGitlabBitbucket

GitHub

过往 GitHub 私有专案是需要额外付费。从 2019年1月7日起,设定不公开程序码,无限的私有专案,已经不用在额外付费,很多知名热门的开源软件,程序码都放在 GitHub 代管服务网站。

附带一提,GitHub 星星,有点类似脸书按赞 Like 的意思。

Gitlab

自从 GitHub 被微软收购後,大家纷纷逃难到 Gitlab。Gitlab 同样且提供无上限的公开与私有专案。

Bitbucket

老牌免费无上限的私有专案,但免费限制仅供有8个人使用,若要更多人使用。则需要额外付费。所以被後起之秀 Gitlab 超越。

git 图形化介面操作软件

git 除了很帅,入门门槛较高的命令工具方式外,目前业界,普遍都会使用 Sourcetree 较平易近人友善的的图形化介面来操作 git。

Sourcetree

其他 git gui 图形化介面工具软件选择:GitKraken、SmartGit、GitHub Desktop、TortoiseGit(俗称:小乌龟)

专案导入版本控制

加入 .gitignore

加入 .gitignore,将不必要的专案环境参数设定档给过滤掉 Android.gitignore

申请注册 Github 程序码托管服务

本机端个人电脑只是开发暂放用,真正的程序备份务必存放在远端。KT 推荐使用 Github 或 Gitlab 程序码托管服务。

专案上传到 GitHub

Android Studio 目前提供良善整合 git 服务,且可以轻松将专案上传到 Github

Git flow 开发流程

详细 Git flow 流程图

此图片取自:git - 维基百科

实际案例:口罩地图专案

git 真的可以很方便灵活备份程序码来做使用,以这次铁人赛「口罩地图」专案来说,KT 将每一篇文章有实作内容的结果,放在各分支上。如图:

为什麽会这麽做的主要原因是,这样对於不熟悉 git 操作的同学们,可以直接下载每篇文章实作的结果,所以若该篇文章有实作,KT 会在文章最前面放置,该文章实作出来结果的下载点,如:

程序码范例

范例名称:初始专案
开发人员:HKT (侯光灿)
程序语言:Kotlin
开发环境:Android Studio 4.1.1 & Android 11 & Kotlin 1.4.21
授权范围:使用时必须注明出处且不得为商业目的之使用
范例下载点:点我下载

范例下载点,点击下载之後是一个 zip 压缩档,同学们不会因为不晓得怎麽操作 git 而远离这系列文章。zip 压缩档,直接解开後,透过 Android Studio 去开启专案目录即可以去做使用。重点如果该程序码有错误或需要进行更新与维护,KT 直接提交程序码到 github ,下载点连结不变,同学下载後即可以获取到最新程序专案。不用每次更新都要自己手动重新打包压缩档,然後上传到新载点,然後重新通知发布更新下载点。git 是不是很方便呢?

参考资料

HKT 线上教室
https://tw-hkt.blogspot.com/

Freepik
https://www.freepik.com/

Pro Git - 免费线上电子书
https://git-scm.com/book/zh-tw/v2

git - 维基百科
https://zh.wikipedia.org/wiki/Git

GitHub - 维基百科
https://zh.wikipedia.org/wiki/GitHub


那今天【iThome 铁人赛】就介绍到这边罗~

顺带一提,KT 线上教室,脸书粉丝团,会不定期发布相关资讯,不想错过最新资讯,不要忘记来按赞,追踪喔!也欢迎大家将这篇文章分享给更多人喔。

我们明天再见罗!!!掰掰~


<<:  day7 : logging集中(上)

>>:  @Day7 | C# WixToolset + WPF 帅到不行的安装包 [自订页面-增加自订页面]

Day 30:後记 - 旅程的尾声...

图片来源:https://unsplash.com/photos/PeUJyoylfe4 终於来到...

铁人赛 Day7 -- 一定要知道的 CSS (四) -Justify-content

前言 昨天讲了 display 当中的 Flex 属性 那今天就要来讲 display 当中的 Ju...

Day 16 皮肤美化 ( 消除痘痘 )

皮肤美化 ( 消除痘痘 ) 教学原文参考:皮肤美化 ( 消除痘痘 ) 这篇文章会介绍使用 GIMP ...

Day17 Middleware - Kafka & Redis

Kafka 简单来说,我们可以称後端和後端之间沟通的桥梁称为Middleware,就如我们的Lab,...

中学ICT的课程分享

留意到不少同学对於 ICT 读甚麽感到好奇,今天就跟大家分享一下中学ICT的课程分享~ DSE IC...