git init 命令用來(lái)創(chuàng)建一個(gè)新的 Git 倉(cāng)庫(kù)。
git init 命令既可以用來(lái)初始化一個(gè)新的空倉(cāng)庫(kù),也可以把一個(gè)已經(jīng)存在的,沒(méi)有版本控制的倉(cāng)庫(kù)轉(zhuǎn)成 Git 倉(cāng)庫(kù)。
執(zhí)行 git init 命令會(huì)在指定工程的根目錄下創(chuàng)建一個(gè) .git 的子文件夾。除了 .git 子文件夾,工程的其它文件都不會(huì)改變。
git init [--bare][directory]
把當(dāng)前目錄變成一個(gè) Git 倉(cāng)庫(kù)。
在指定的目錄下創(chuàng)建 Git 倉(cāng)庫(kù)。執(zhí)行這個(gè)命令將會(huì)創(chuàng)建一個(gè)叫 directory 的新文件夾,在這個(gè)文件夾里只有 .git 子文件夾。
初始化一個(gè)沒(méi)有工作文件夾的空的 Git 倉(cāng)庫(kù)。用來(lái)共享的 Git 倉(cāng)庫(kù)應(yīng)該始終使用 --bare 選項(xiàng)來(lái)創(chuàng)建。通常情況下,用 --bare 選項(xiàng)初始化的倉(cāng)庫(kù)以 .git 作為后綴。舉個(gè)例子,使用 --bare 選項(xiàng)創(chuàng)建的 project 倉(cāng)庫(kù)應(yīng)該叫 project.git。
比較一下 git init directory 和 git init --bare directory:
首先執(zhí)行 git init linux:
[root@CentOS ~]# git init linux Initialized empty Git repository in /root/linux/.git/ [root@CentOS ~]# ls -alt linux/ total 8 dr-xr-x---. 5 root root 4096 Jun 2 12:53 .. drwxr-xr-x. 7 root root 4096 Jun 2 12:42 .git drwxr-xr-x. 3 root root 17 Jun 2 12:42 . [root@CentOS ~]# ls -alt linux/.git total 20 drwxr-xr-x. 7 root root 4096 Jun 2 12:42 . drwxr-xr-x. 4 root root 28 Jun 2 12:42 objects -rw-r--r--. 1 root root 92 Jun 2 12:42 config -rw-r--r--. 1 root root 23 Jun 2 12:42 HEAD drwxr-xr-x. 2 root root 20 Jun 2 12:42 info drwxr-xr-x. 2 root root 4096 Jun 2 12:42 hooks -rw-r--r--. 1 root root 73 Jun 2 12:42 description drwxr-xr-x. 2 root root 6 Jun 2 12:42 branches drwxr-xr-x. 3 root root 17 Jun 2 12:42 .. drwxr-xr-x. 4 root root 29 Jun 2 12:42 refs
接著執(zhí)行g(shù)it init --bare bsd:
[root@CentOS ~]# git init --bare bsd Initialized empty Git repository in /root/bsd/ [root@CentOS ~]# ls -lt bsd total 16 drwxr-xr-x. 4 root root 28 Jun 2 13:01 objects -rw-r--r--. 1 root root 66 Jun 2 13:01 config drwxr-xr-x. 2 root root 6 Jun 2 13:01 branches -rw-r--r--. 1 root root 73 Jun 2 13:01 description -rw-r--r--. 1 root root 23 Jun 2 13:01 HEAD drwxr-xr-x. 2 root root 4096 Jun 2 13:01 hooks drwxr-xr-x. 2 root root 20 Jun 2 13:01 info drwxr-xr-x. 4 root root 29 Jun 2 13:01 refs
可以看到所有的文件信息都直接創(chuàng)建在bsd目錄下,而沒(méi)有創(chuàng)建在.git文件夾下。
例如我們?cè)诋?dāng)前目錄下創(chuàng)建一個(gè)名為 cainiaoplus 的項(xiàng)目:
$ mkdir cainiaoplus $ cd cainiaoplus $ git init Initialized empty Git repository in /root/cainiaoplus/.git/ # 初始化空 Git 倉(cāng)庫(kù)完畢。
在項(xiàng)目目錄 cainiaoplus 中生成了 .git 子目錄,這就是項(xiàng)目的 Git 倉(cāng)庫(kù),有關(guān)項(xiàng)目的快照數(shù)據(jù)全部存放在 .git 目錄中。
.git 默認(rèn)是隱藏的,可以用 ls -a 命令查看:
$ ls -a . .. .git