文章目录
- 1 在已存在目录中初始化仓库
- 2 克隆现有的仓库
通常有两种获取 Git 项目仓库的方式:
- 将尚未进行版本控制的本地目录转换为 Git 仓库;
- 从其它服务器 克隆 一个已存在的 Git 仓库。
这两种方式都会在我们本地机器上得到一个工作就绪的Git仓库。
1 在已存在目录中初始化仓库
如果我们有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,那么首先需要进入该项目目录中。 在不同系统上的做法有些不同:
在Linux上:
$ cd /home/user/my_project
$ git init
在这里我简单创建了一个空目录进行操作:
该命令将创建一个名为 .git
的子目录,这个子目录含有我们初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。 但是,在这个时候,我们仅仅是做了一个初始化的操作,我们的项目里的文件还没有被跟踪。
如果在一个已存在文件的文件夹(而非空文件夹)中进行版本控制,我们应该开始追踪这些文件并进行初始提交。 可以通过 git add
命令来指定所需的文件来进行追踪,然后执行 git commit
:
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
在这里我随意在my_project文件夹中创建一个文件来进行简单操作,之后便会得到一个存在被追踪文件与初始提交的Git库:
2 克隆现有的仓库
如果我们想获得一份已经存在了的 Git 仓库的拷贝,比如说,我们想为某个开源项目贡献自己的一份力,这时就要用到 git clone
命令。Git 克隆的是该 Git 仓库服务器上的几乎所有数据,而不是仅仅复制完成我们的工作所需要文件。 当我们执行 git clone
命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。 事实上,如果我们的服务器的磁盘坏掉了,我们通常可以使用任何一个克隆下来的用户端来重建服务器上的仓库 。
克隆仓库的命令是 git clone <url>
。 比如,克隆 Git 的链接库 libgit2
:
$ git clone https://github.com/libgit2/libgit2
这会在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git 文件夹, 从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。 如果我们进入到这个新建的 libgit2 文件夹,会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。
如果我们想在克隆远程仓库的时候,自定义本地仓库的名字,可以通过额外的参数指定新的目录名:
$ git clone https://github.com/libgit2/libgit2 mylibgit
这会执行与上一条命令相同的操作,只是目标目录名变为了 mylibgit
。