取得项目的 Git 仓库
有两种取得 Git
项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git
仓库。第二种是从已有的 Git
仓库克隆
出一个新的镜像仓库来。
在现有目录中初始化仓库
如果你打算使用 Git
来对现有的项目
进行管理,你只需要进入该项目目录并输入:
$ git init
该命令将创建一个名为 .git
的子目录,这个子目录含有你初始化的 Git
仓库中所有的必须文件,这些文件是 Git
仓库的骨干。 但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。
如果你是在一个已经存在文件的文件夹(而不是空文件夹)中初始化 Git
仓库来进行版本控制的话,你应该开始跟踪这些文件并提交。 你可通过 git add
命令来实现对指定文件的跟踪,然后执行 git commit
提交:
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
稍后我们再逐一解释每一条指令的意思。 现在,你已经得到了一个实际维护(或者说是跟踪)着若干个文件的 Git
仓库。
克隆现有的仓库
如果想对某个开源项目出一份力,可以先把该项目的 Git
仓库复制一份出来,这就需要用到 git clone
命令。如果你熟悉其他的 VCS
比如 Subversion
,你可能已经注意到这里使用的是 clone
而不是 checkout
。这是个非常重要的差别,Git
收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态(虽然可能会丢失某些服务器端的挂钩设置,但所有版本的数据仍旧还在)。
克隆仓库的命令格式为 git clone [url]`` 。比如,要克隆
Ruby语言的
Git代码仓库
Grit`,可以用下面的命令:
$ git clone git://github.com/schacon/grit.git
这会在当前目录下创建一个名为 grit
的目录,其中包含一个 .git
的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的 grit
目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit
唯一的差别就是,现在新建的目录成了 mygrit
,其他的都和上边的一样。
Git
支持许多数据传输协议。之前的例子使用的是 git://
协议,不过你也可以用 http(s)://
或者 user@server:/path.git
表示的 SSH
传输协议。我们会在后面详细介绍所有这些协议在服务器端该如何配置使用,以及各种方式之间的利弊。
更多请访问 Git 中文参考指南