Git 快速入门

仅用于教学,文中有使用到外部网站的文章都有附上参考连结,若有疑问请来信告知 email:nickchen1998@gmail.com

一、如何建立 Git 专案

以下分别针对从头建立专案以及建立一个已经有使用 Git 的专案这两种情况进行说明

(一)、从头建立专案

情境:该专案并没有使用过 Git 进行版本控制过,包含从 0 开始的专案或是已经有开发到一半的专案

demo 流程:

实作:

打开 terminal 利用 mkdir 指令建立目录

利用 dir 指令确认目录有被建立成功 (linux base 请使用 ls)

利用 cd 切换到该目录

于该目录下运行 git init 指令

打开该资料夹查看是否有 .git 目录 (linux base 可使用 ls -al 查看)

(二)、建立一个已经有使用 Git 的专案

情境:你需要加入别人开发到一半的专案,或是想从 GitHub or GitLab 上複製别人的专案下来使用或开发时

语法:git clone <网址 or 档案位置> <複製过去的目录名称 (预设为複製的专案 or 目录名称)>

demo 流程:

实作:

切换到 Desktopp 目录并 clone 一份名为 demo 的专案

将 clone 的专案命名为 demo_clone

确认 .git 目录是否存在

二、提交写好的程式码

情境:当你今天有对专案进行开发,想要将这个纪录提交到 git 进行版本控制时

demo 流程:

实作:

切换到一个有 git 的专案目录下

新增一个名为 demo.txt 的文字档

运行 git add . 将编辑后的东西加入 git 进行追蹤

运行 git status 查看目前专案状态,可以发现 git 已经有侦测到有一个新的档案叫做 demo.txt 但是还没有进行提交

运行 git commit -m <这个版本的简易描述> 进行版本提交

运行 git log 查看是否提交成功,若有成功会于 log 内提示

三、回到某个版本

情境:当你今天把你的程式码改烂了,需要回到上一个版本,或是今天系统更新后出现问题,需要马上切换到之前某个正常版本时

demo 流程:

实作:

先利用第二点说明的提交方式,再新增一个文字档并提交

运行 git log 查看想要回到哪个版本的版本号码,这边假设想回到注解为 "新增文字档" 这个纪录

複製该版本号码

运行 git reset --hard <版本号码>,进行回复

运行 git log 检查提交纪录是否回到指定的地方

四、何谓分支 (Branch)

(一)、定义与简介

一般来说,分支粗略分为五种,分别为 master、hotfix、release、develope 以及 feature,下面分别进行介绍

master:专案的主要分支,于其他种类的分支进行开发后,最终都会 merge 到此分支上,于正式环境上部属的专案通常都会使用此分支,每个 git 专案预设都会有一个名为 master 的分支

hotfix:当今天位于 master 的专案突然出现了一个错误,需要紧急修正时,会建立一个分支来做紧急处理,此分支必须优先处理

release:专案开发中,每个版本都会建立一个分支,通常会部属在正式环境用于测试将 develope 以及 feature 合併后确认专案是否有问题,若没有问题则会在做完测试后,merge 到 master 分支上

develope:为针对 release 分支的专案需求切出来的大项目,例如:前端、后端

feature:针对 develope 每个细项功能所开出的分支,例如:后端功能当中的登入、登出,都可以个别开出一个细小的分支

当然根据公司或是需求不同,不一定会将分支开的这么细,不过通常最少都会有 master、hotfix 以及 release 这三个比较大方向的分支

(二)、分支图

注:分支只是一种概念,是人订出来的,对于 git 来说就只是一个分支,并没有所谓建立 hotfix 分之这种事,下方图片简单介绍了一下后人归纳出的五种类型的分支,并各自会于什么时候合併到哪里

图片参考位址:https://expressus.io/uploads/beautiful-gitflow-workflow-diagram.png

(三)、分支的操作

git branch 确认目前所在分支,终端机会印出所有分支并在目前所在的分支名称前加上星号

git branch <分支名称> 若在上述的指令后面加上一个分支名称,则会依照此名称建立一个分支

可以看到下图当中我们利用 git branch demo 建立一个名为 demo 的分支,并利用 git branch 查看所有分支

git checkout <分支名称> 可以利用此指令进行分支的切换

下途中我们利用 git checkout demo 切换到 demo 这个分支,并利用 git branch 查看所有分支

五、何谓冲突

情境:当今天一份专案同时有超过一个人以上在编辑,难免会有两个人同时编辑到同一行程是码或是同个档案的问题,而如果要将这两份位于不同分支上的专案进行合併 (merge) 的话,就会造成冲突

demo 流程:

实作:

进入一个已经有使用 git 的专案

图片当中显示进入 demo 这个专案,并且该专案有 .git 资料夹以及 demo.txt 这个档案

利用 git branch demo 建立一个名为 demo 的分支

利用 git checkout demo 切换到 demo 分支上并利用 git branch 确认目前所在分支

在 demo 分支上针对 demo.txt 进行编辑并存档

进行 commit 提交

利用 git checkout master 切换到 demo 分支上并利用 git branch 确认目前所在分支

在 master 分支上针对 demo.txt 的同样一行的地方进行ㄅㄧ的地方进行编辑并存档

进行 commit 提交

在 master 分支上利用 git merge demo 将 demo 分支合併过来,系统会跳出发生冲突提示

在 master 分支上打开 demo.txt 可以看到内容如下

Git 会将有发生冲突的地方进行标示,HEAD 表示目前所在分支的内容, === 下方为合併过来的内容

整理想保留下来的内容 (解决冲突) 并存档

进行 commit 提交

说明:在解决冲突的过程当中,若你的专案是有两个人以上进行编辑,请务必和发生冲突的分支负责人进行讨论,看看该怎么样将档案进行合併,才不会误删别人的工作内容或是造成系统的错误

六、Push 程式码到云端

云端泛指可以使用 git 将程式码推上网路上的某处进行储存的地方,目前常用的有 GitHub、GitLab

将程式码推上云端的情况大约分为两种,一为云端储存库为新的,需要手动建立连线,另一个则为专案本身就是从云端上複製下来的,将利用 GitHub 针对此两种情况进行说明

(一)、全新的 GitHub 储存库

情境:假设今天在本地端有一个专案已经有用 git 进行版控了,想要将专案推上在 GitHub 的全新储存库时

demo 流程:

实作:

使用 terminal 开启一个已经有使用 git 的专案

複製 GitHub 专案网址

ex:https://github.com/nickchen1998/test.git

运行指令 git remote add <连线名称> <专案网址> 进行连线

连线名称可以自行命名,通常命名为 origin

运行指令 git remote -v 查看连线是否新增成功

运行指令 git push 进行推送

初次进行推送会提示需要进行一些设定,按照提示输入 git push --set-upstream origin master 往后要进行推送只需要使用 git push

下图可以看到第一次进行推送时需要按照提示进行输入

下图可以看到按照提示输入后即可正常进行推送

前往 GitHub 进行查看

(二)、从云端複製下来的专案

情境:假设今天你从云端複製一份专案下来,可以直接使用 git remote -v 查看连线,会发现 git 会帮你直接建立好连线,后续有任何更动可以按照 git add . > git commit -m "message" > git push 这三个步骤即可进行推送

(三)、注意事项

git push 指令预设会将所在分支推送到对应连线专案上的同个分支,由于连线数量可以不只一个,且分支通常也不会只有 master,这时候就可以透过更改 git push <连线名称> <分支名称> 来进行推送


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章