[Day 13 - Git] Git版本控管,没有它救不回来的专案

为什麽要做版本控管?

其实版本控管就是备份的概念,相信大家都有体会过档案误删、当机资料消失的经验,养成备分的习惯可以减少很多麻烦。在开发的过程中,我们会对程序码做无数次的新增修改,也可能会同时拥有好几份程序码,那要如何管理?在早期习惯用不同的档名来记录不同版本的程序码,但这样的作法实在是太繁杂又容易混乱,所以为了能够让开发者方便管理专案版本,就有了 Git 的诞生。

Git

Git 就是用来进行版本控管的一套系统,会收藏每次档案修改的内容,纪录下专案开发的所有历程

数据库

Git 会将版本纪录储存在一个地方,而这个地方就被称为数据库 (Repository),分成本地与远端。

  • 本地数据库 (Local Repository):个人使用,在装置上建立的专属数据库。
  • 远端数据库 (Remote Repository):像是 GitLab、GitHub 等具有专用服务器,可以分享给其他人的数据库。

如何使用Git指令

官网下载安装完 Git 之後,会在一个叫做终端机的地方输入指令,如果你是 Windows 系统,就在电脑搜寻「命令提示字元」、Mac 系统就搜寻「Terminal」,就可以开启终端机视窗。

不过你会看到终端机操作都是在预设的位址,但我们是要在自己新增的专案下面建设 Git 的数据库,还要使用 cd 移动到目标资料夹的位置。

这边偷偷告诉大家一个小撇步,如果在 VS Code 进行本地开发的话,那就可以使用它内建的 Terminal 功能。当你在 VS Code 开启专案资料夹,点选上方选单的 Terminal,可以看到跟命令提示字元差不多的画面,但不同的是它已经自动帮你将位址移动到目标专案。

Git 基础操作

建立数据库

首先要建立好储存版本的本地数据库,先新增一个空资料夹,用 VS Code 开启後在 Terminal 输入 git init,这样就能创建好数据库,监控目录底下所有的文件状态。

git init

检查文件状态

新增一个档案 test.txt ,输入 git status 查看目前 Working directory 中所有档案的情形,它会侦测到新增的档案 test.txt,并且告诉你这个档案还尚未被追踪,代表它还没被加入到 Staging area。

git status

追踪新(修改後)的文件

要将档案加入到 Staging area,使用 git add <档案名称>git add -a,後者能一次性加入全部档案。这时候再输入 git status 查看一下档案的状态,你就可以看到 test.txt 成功被加入到 Staging area 内。

git add <档案名称>
git add -a

提交版本

最後一个步骤就是将 Staging area 的档案资讯储存到本地数据库,可以透过 git commit 来提交一个新的版本纪录,另外记得要填写版本讯息。

git commit -m <版本资讯>

查看版本纪录

这时候输入 git log 就可以查询到刚刚提交的版本 test1。

git log

TOC

撤销事件

前面讲解了提交纪录的流程,但在开发的过程中总是会发生一些失误,所以 Git 还提供了可以撤销操作的指令。

  • 修改最近的提交,能够获取目前 Staging area 的暂存文件,新增到上次的提交内容:

    git commit --amend
    
  • 让档案回复到未提交的状态:

    git reset HEAD            #操作所有档案
    git reset HEAD <file>
    
  • 让档案回复到未修改的状态:

    git checkout -- <档案名称>
    

Github

Github 是透过 Git 进行版本控制的一个原始码代管服务平台,除了可以作为远端数据库,帮助开发人员储存管理程序码,进行版本控制和共同协作;也是各种开源专案的聚集地,可以在上面与其他开发者进行技术交流。

连结远端数据库

前面都是在本地进行操作,但当我们需要多人协作专案的时候要共享档案,就需要连结远端数据库,将各自的历史版本同步更新。在 Github 新增一个 Repository 取得远端数据库位址後,使用 git remote add <远端数据库简称> <url> ,在本地连结远端数据库。

git remote add origin https://github.com/peiyunlee/git_test.git

同步远端数据库

目前远端数据库还没有东西,因为还没有做上传的动作,可以使用 git push 指令,就能将本地的 Commit 推到远端服务器更新,这样两边就能同步;相反的,如果想要从远端数据库下载别人新增的 Commit,就可以使用 git pull ,不过通常用到这个指令会是在多人协作的情况下。

git push <远端数据库简称> <本地分支名称>

Clone 远端数据库

那当你想要从远端数据库拉一份新的资料,或是下载别人的专案,就可以使用 git clone <url> 指令。

每个 Github 数据库都会有一串网址

git clone https://github.com/peiyunlee/git_test.git

小结

对於现在的开发者来说,不管你是不是前端领域,学会使用 Git 来进行版本管理是必备的技能,而进入职场後也会和很多人协作开发专案,所以不只要学会文章里提到的基本操作,你还要进一步学习如何用 Git 与他人同步合作、解决档案合并可能发生的冲突,才不会成为雷队友毁掉你与同伴辛苦开发的专案。下一篇文章终於要进入到前半部的结尾小试身手,实战来打造一个静态网页,那我们就明天见罗!

如果文章中有错误的地方,要麻烦各位大大不吝赐教;喜欢的话,也要记得帮我按赞订阅喔❤️

参考资料


<<:  Day14 Number Guessing

>>:  D11 - 分子料理 解构赋值 Destructing Assignment

Day17:Flow,一个非同步的资料流。 First Look

What is Flow? Flow 是用来处理非同步的资料流的一种方式,它会按照发射 (emit)...

相关是什麽?来认识回归分析

当我们的自变数和应变数都是定量资料的时候,我们就可以用回归分析的方法来从中找出两者之间的关系。简单的...

中阶魔法 - this 指向(二)

前情提要 上回提到魔法学姊艾草(鸟)在练习英文。 艾草:「This, These, That, Th...

资产剥离(divestiture)

首先考虑范围内的资产更为有效,因为业务中断,知识产权泄漏和数据隐私不合规是范围内资产所产生的影响或...

Day 17 机器学习

今天我们要介绍的是机器学习,所谓的机器学习是指着重於训练电脑从资料中学习,并根据经验改进且在机器学习...