Git初始化之创建版本库及第一次提交
你当前使用的Git是哪个版本?可以通过如下的命令可以知道:
$ git --version git version 1.9.1
在开始Git之旅之前,我们需要设置一下Git的配置变量,这是一次性的工作。即这些设置会在全局文件(用户主目录下的.gitconfig)或系统文件(如 /etc/gitconfig)中做永久的记录。
1. 告诉Git当前用户的姓名和邮件地址,配置的用户名和邮件地址将在版本库提交时用到。命令如下:
$ git config --global user.name fuhd $ git config --global user.email 001fhd@163.com
注:该命令会把user.name,user.email信息写入到用户主目录下的.gitconfig文件中。
2. 设置一些Git别名,以便可以使用更为简洁的子命令。
例如:输入git ci即相当于git commit,输入git st即相当于git status。如果拥有系统管理员权限(例如通过执行sudo命令获取管理员权限),希望注册的命令别名能够被所有用户使用,可以执行如下命令:
$ sudo git config --system alias.st status $ sudo git config --system alias.ci commit $ sudo git config --system alias.co checkout $ sudo git config --system alias.br branch
注:这些命令会把信息写入 /etc/gitconfig文件中。另外,也可以运行下面的命令,只在本用户的全局配置中添加Git命令别名:
$ git config --global alias.st status $ git config --global alias.ci commit $ git config --global alias.co checkout $ git config --global alias.br branch
注:该命令会把信息写入到用户主目录下的.gitconfig文件中。
3. 在Git命令输出中开启颜色显示。
$ git config --global color.ui true
注:该命令会把信息写入到用户主目录下的.gitconfig文件中。
Git的所有操作,包括创建版本库等管理操作用git一个命令即可完成,不像其他版本控制系统(如Subversion),与管理相关的操作要使用另外的命令(如svnadmin)。创建Git版本库,可以直接进入到工作目录中,通过执行git init命令完成版本库的初始化。
下面就从一个空目录开始初始化版本库,为了方便说明,我们使用名为 /path/to/my/workspace的目录作为个人的共作区根目录,可以在磁盘中创建目录并设置正确的权限。 首先,建立一个新的工作目录,进入该目录后,执行 git init创建版本库:
$ cd /path/to/my/workspace $ mkdir demo $ cd demo $ git init 初始化空的 Git 版本库于 /path/to/my/workspace/demo/.git/
实际上,如果Git的版本是1.6.5或更新的版本,可以在 git init 命令的后面直接输入目录名称,自动完成目录的创建:
$ cd /path/to/my/workspace $ git init demo 初始化空的 Git 版本库于 /path/to/my/workspace/demo/.git/
从上面版本库初始化后的输出中可以看到,git init命令在工作区创建了隐藏目录 .git。这个隐藏的 .git 目录就是Git版本库(又叫仓库,repository)。.git版本库所在的目录为 /path/to/my/workspace/demo,它被称为工作区,目前工作区除了包含一个隐藏的.git版本库目录外空无一物。
下面为工作区中加点料:在工作区中创建一个文件welcome.txt,内容就是一行“Hello.”。
$ echo "Hello." > welcome.txt
为了将这个新建立的文件添加到版本库,需要执行下面的命令:
$ git add welcome.txt
注意,到这里还没有完。Git和大部分其他版本控制系统一样,都需要再执行一次提交操作,对于Git来说就是执行 git commit 命令完成提交。在提交过程中需要输入提交说明,这个要求对于Git来说是强制性的,不像其他很多版本控制系统(如CVS和Subversion)那样接受空白的提交说明。当Git提交时,如果不在命令行提供提交说明(使用 -m 参数),Git会自动打开一个编辑器,要求你在其中输入提交说明,输入完毕后保存并退出。
下面进行提交,为了说明方便,使用 -m 参数直接给出了提交说明。
$ git ci -m "initialized." [master (根提交) 57ceaad] initlalized. 1 file changed, 1 insertion(+) create mode 100644 welcome.txt
从上面的命令及输出中可以看出:
-
命令 git ci 实际上相当于 git commit,这是因为之前为Git设置了命令别名。
-
通过 -m 参数设置提交说明为:"initialized."。
-
从命令输出的第一行可以看出,此次提交是提交在名为master的分支上,且是该分支的第一个提交(根提交),提交ID为57ceaad。
-
从命令输出的第二行可以看出,此次提交修改了一个文件,包含一行的插入。
-
从命令输出的第三行可以看出,此次提交创建了新文件welcome.txt。