git init 命令

Git 基本操作Git 基本操作

git init 命令用来创建一个新的 Git 仓库。

git init 命令既可以用来初始化一个新的空仓库,也可以把一个已经存在的,没有版本控制的仓库转成 Git 仓库。

执行 git init 命令会在指定工程的根目录下创建一个 .git 的子文件夹。除了 .git 子文件夹,工程的其它文件都不会改变。

 

1. git init 命令的语法

git init [--bare][directory]

1)git init

把当前目录变成一个 Git 仓库。

2)git init directory

在指定的目录下创建 Git 仓库。执行这个命令将会创建一个叫 directory 的新文件夹,在这个文件夹里只有 .git 子文件夹。

3)git init --bare directory

初始化一个没有工作文件夹的空的 Git 仓库。用来共享的 Git 仓库应该始终使用 --bare 选项来创建。通常情况下,用 --bare 选项初始化的仓库以 .git 作为后缀。举个例子,使用 --bare 选项创建的 project 仓库应该叫 project.git。

4)有无 --bare 的异同

比较一下 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文件夹下。

 

2. git init 命令的范例

例如我们在当前目录下创建一个名为 codebaoku 的项目:

$ mkdir codebaoku
$ cd codebaoku
$ git init

Initialized empty Git repository in /root/codebaoku/.git/
# 初始化空 Git 仓库完毕。

在项目目录 codebaoku 中生成了 .git 子目录,这就是项目的 Git 仓库,有关项目的快照数据全部存放在 .git 目录中。

.git 默认是隐藏的,可以用 ls -a 命令查看:

$ ls -a
.    ..    .git

Git 基本操作Git 基本操作