git init 命令用來創(chuàng)建一個新的 Git 倉庫。
git init 命令既可以用來初始化一個新的空倉庫,也可以把一個已經(jīng)存在的,沒有版本控制的倉庫轉(zhuǎn)成 Git 倉庫。
執(zhí)行 git init 命令會在指定工程的根目錄下創(chuàng)建一個 .git 的子文件夾。除了 .git 子文件夾,工程的其它文件都不會改變。
git init [--bare][directory]
把當(dāng)前目錄變成一個 Git 倉庫。
在指定的目錄下創(chuàng)建 Git 倉庫。執(zhí)行這個命令將會創(chuàng)建一個叫 directory 的新文件夾,在這個文件夾里只有 .git 子文件夾。
初始化一個沒有工作文件夾的空的 Git 倉庫。用來共享的 Git 倉庫應(yīng)該始終使用 --bare 選項(xiàng)來創(chuàng)建。通常情況下,用 --bare 選項(xiàng)初始化的倉庫以 .git 作為后綴。舉個例子,使用 --bare 選項(xiàng)創(chuàng)建的 project 倉庫應(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目錄下,而沒有創(chuàng)建在.git文件夾下。
例如我們在當(dāng)前目錄下創(chuàng)建一個名為 cainiaoplus 的項(xiàng)目:
$ mkdir cainiaoplus $ cd cainiaoplus $ git init Initialized empty Git repository in /root/cainiaoplus/.git/ # 初始化空 Git 倉庫完畢。
在項(xiàng)目目錄 cainiaoplus 中生成了 .git 子目錄,這就是項(xiàng)目的 Git 倉庫,有關(guān)項(xiàng)目的快照數(shù)據(jù)全部存放在 .git 目錄中。
.git 默認(rèn)是隱藏的,可以用 ls -a 命令查看:
$ ls -a . .. .git