要开始使用 Git 最重要的就是要先有一份 Git 储存库 (Git Repository) 才行,但是,这份储存库从哪裡来呢?本篇文章会介绍多种建立储存库的方式。
要建立储存库,事实上,你有很多选择,例如:
无论如何,你总是需要一个储存库,我们分别说明如下:
我们先开启 GitHub for Windows 的 Git Shell 工具,这工具其实是个 Windows PowerShell 介面,但外挂了一些 Git 相关的环境变数与命令提示设定(Command Prompt):
开启后,预设会直接进入 %USERPROFILE%\Documents\GitHub
资料夹,这是 GitHub for Windows 的预设专案根目录,也就是只要预设透过 GitHub for Windows 从 GitHub 複製 (clone) 下来的专案都会放在这个目录。
所以,我们可以直接在这裡建立一个新目录,好当成我们的「工作目录」(working directory),我们可以输入指令 mkdir git-demo
把目录建立起来。然后再用 cd git-demo
进入该目录。
由于这是一个空目录,并不包含任何 Git 储存库,这时我们要建立储存库,就可以用 git init
指令把储存库给建立起来,预设储存库会放在工作目录下的 .git
目录下。
完整的操作步骤如下图示:
建立完成后,你在 Git Shell 的命令提示符号中,应该可以发现有些不太一样,他在目前所在路径后面加上了个高亮的 [master]
字样。这段提示,会显示你目前所在工作目录
的各种状态,如果看得懂的话,是一个非常有用的资讯来源,可以让你在用命令列工具操作 Git 时,少打很多 git status
指令来查询目前工作目录的状态。这部分会再下一篇文章中特别说明。
共用储存库 (shared repository) 是指建立一个 Git 储存库但不包含工作目录,这种情况比较常发生在 Linux 作业系统下,因为在 Linux 作业系统下通常都是多人使用同一台 Linux 主机。虽然在 Windows 作业系统也可以这样使用,不过我们的开发环境大多还是在 Windows Client 的环境,比较少有多人共用一台电脑的情况。
如果要建立共用储存库,可以使用 git init --bare
指令建立,如下图示。你可以发现,当 git init
加上 --bare
参数后,他会在当前目录建立所有 Git 储存库的相关档案与资料夹,你必须特别注意,这个资料夹不能直接拿来做开发用途,只能用来储存 Git 的相关资讯,大多数情况下,你都不应该手动编辑这个资料夹的任何档案,最好透过 git 指令进行操作。
由于这是一个「没有工作目录的纯储存库」,所以共用储存库也有个别名叫做「裸储存库」 (bare repository)。
再次强调,Git 属于「分散式版本控管」,每个人都有一份完整的储存库(Repository)。也就是说,当你想要建立一个「工作目录」时,必须先取得这个「裸储存库」的内容回来,这时你必须使用 git clone [REPO_URI]
指令「複製」(clone)一份回来才行,而透过 git clone
的过程,不但会自动建立工作目录,还会直接把这个「裸储存库」完整的複製回来。这个複製的过程,就如同「完整备份」一样,是把所有 Git 储存库中的所有版本纪录、所有版本的档案、...等等,所有资料全部複製回来。完整的指令操作过程可以参考以下图示:
在实务上,会使用「共用储存库」或「裸储存库」的方式可能有几种:
请注意: 虽然「工作目录」下的 .git
目录也是一个「储存库」,不过工作目录下的储存库还包含一些工作目录下的索引资讯,纪录著工作目录下的状态资讯,这些状态资讯不会出现在 「共用储存库」裡面,这裡只有版本资讯而已 (也就是 Git 的物件资讯)。
其实「远端储存库」跟「共用储存库」几乎是一样的,差别仅在于「共用储存库」大多使用直接的档案存取,而「远端储存库」通常使用 SSH, Git protocol, HTTP 等协定可「远端」存取 Git 储存库,其他的使用方式基本上是一样的。
以下示范透过 GitHub 建立储存库,并将储存库複製回本地的情况:
如上图,我们可以在 Quick setup 的地方点击 "Set up in Desktop",你的电脑会自动开启 GitHub for Windows 工具,并自动複製(clone)这个储存库回来,并且建立工作目录。
你也可以将远端 Git 储存库的网址複製(Copy)下来,然后执行 git clone [REPO_URL]
即可複製(clone)一份回来。
以上就是三种建立 Git 储存库的方式。我重新整理一下本日学到的 Git 指令与参数: