在开始 Git 的基础命令学习之前,我们先来认识一下版本库——Repository,接下来我们所有提到的 Git 基础命令,都是基于版本库的。
那么什么是版本库呢?版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
接下来,我们首先看看 Git 版本库创建的相关命令。
在已存在目录中初始化仓库
在已存在目录中创建一个版本库的过程非常简单:
首先,选择一个合适的地方,创建一个空目录:
$ mkdir class01-git
$ cd class01-git
$ pwd
/Users/xxm/class01-git
pwd
命令用于显示当前目录。
第二步,通过git init
命令把这个目录变成 Git
可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/xxm/class01-git/.git/
瞬间 Git
就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),同时在当前目录下多了一个.git
的目录,这个目录是 Git
来跟踪管理版本库的,如果你没有看到 .git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看到了。
克隆现有的仓库
如果你想获得一份已经存在了的Git
仓库的拷贝,比如说,你想为某个开源项目贡献自己的一份力,这时就要用到 git clone
命令,Git 克隆的是该Git
仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。
当你执行 git clone
命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。
克隆仓库的命令是git clone
。 比如,要克隆 Git 的仓库 pig,可以用下面的命令:
git clone https://gitee.com/log4j/pig.git
这会在当前目录下创建一个名为 pig
的目录,并在这个目录下初始化一个 .git
文件夹, 从远程仓库拉取下所有数据放入 .git
文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的 pig
文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。
自定义本地仓库名称
当然如果你想在克隆远程仓库的时候,自定义本地仓库的名字也是可以的,你可以通过额外的参数指定新的目录名:
git clone https://gitee.com/log4j/pig.git pig1
这会执行与上一条命令相同的操作,但目标目录名变为了pig1
Git 支持多种数据传输协议。 上面的例子使用的是https://
协议,不过你也可以使用git://
协议或者使用 SSH
传输协议,比如 user@server:path/to/repo.git
。
编辑并添加文件
接下来,我们来尝试在已经准备好的Git
仓库中编辑一个readme.txt
文件,内容如下:
Git is a version control system.
Git is free software.
接下来,我们可以通过2个命令将刚创建好的readme.txt添加到Git仓库:
第一步,用命令git add告诉 Git,把文件添加到仓库:
$ git add readme.txt
执行上面的命令,没有任何显示,说明添加成功。
提交变动到仓库
第二步,用命令git commit
告诉 Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
[master (root-commit) 50ed06b] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
这里简单