git init 命令用来创建一个新的 Git 仓库。
git init 命令既可以用来初始化一个新的空仓库,也可以把一个已经存在的,没有版本控制的仓库转成 Git 仓库。
执行 git init 命令会在指定工程的根目录下创建一个 .git 的子文件夹。除了 .git 子文件夹,工程的其它文件都不会改变。
git init [--bare][directory]
把当前目录变成一个 Git 仓库。
在指定的目录下创建 Git 仓库。执行这个命令将会创建一个叫 directory 的新文件夹,在这个文件夹里只有 .git 子文件夹。
初始化一个没有工作文件夹的空的 Git 仓库。用来共享的 Git 仓库应该始终使用 --bare 选项来创建。通常情况下,用 --bare 选项初始化的仓库以 .git 作为后缀。举个例子,使用 --bare 选项创建的 project 仓库应该叫 project.git。
比较一下 git init directory 和 git init --bare directory:
首先执行 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
接着执行git 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
可以看到所有的文件信息都直接创建在bsd目录下,而没有创建在.git文件夹下。
例如我们在当前目录下创建一个名为 cainiaoplus 的项目:
$ mkdir cainiaoplus $ cd cainiaoplus $ git init Initialized empty Git repository in /root/cainiaoplus/.git/ # 初始化空 Git 仓库完毕。
在项目目录 cainiaoplus 中生成了 .git 子目录,这就是项目的 Git 仓库,有关项目的快照数据全部存放在 .git 目录中。
.git 默认是隐藏的,可以用 ls -a 命令查看:
$ ls -a . .. .git