从头开始创建一个版本库,添加一些内容,然后管理一些修订版本。
有两种建立 Git版本库 的基础技术。第一:从头开始创建,用现有的内容填充它。第二:可以克隆一个已有的版本库。这里选择从一个空的版本库开始比较简单,现在开始吧!
1,Git命令快速入门
这里我们从头开始创建一个空的Git版本库,并往版本库中添加一个简单的 index.html 文件。
才做步骤如下:
1-1,打开 Git Bash,进入到任意电脑目录并创建一个目录。比如版本库创建在 D:\\GitTestRepos\\git003 下。
Git Bash 是Windows下的命令行工具,基于msys GNU。GNU环境,说明很好的支持Linux/unix的环境。
1-2,执行 git init 命令,将git003目录转化成一个版本库。git init 命令创建了一个隐藏的目录,在版本库的顶层目录中名为 .git 。Git将所有的修订信息都该目录中。
1-3,在版本库中创建一个 index.html 文件。然后执行名 git add <file|path> 将指定file或者指定目录添加到版本库中(如果文件较多,可以使用 git add . [.代表当前目录])。
注意:这里的(master)标识的是版本库中的当前分支(branch),"master"分支是Git的默认分支,一般也成为主分支。关于分支,后面会介绍。
1-4,在add命令之后,Git还只是暂存(staged) 了这个文件,这只是提交之前的中间步骤。Git将 add 和 commit 这两部分开了,以避免频繁的变化。
如果每一次添加,修改或移除文件的时候都要提交到版本库中,还是很蛋疼的。提交就像是一个"批处理",一次性更新所有的修改。
ok,现在执行 git status 命令,可以查看当前状态。
Git的一些反馈信息还是很人性化的,这里可以看到Git提示我们:有一个新的文件,名为index.html已经暂存了。如果想取消暂存则使用命令 "git -rm --cached <file>"。
1-5,出了目录和文件内容的实际变化之外,Git还会在每次提交的时候记录其他一些元数据,包括日志消息和做出本次变更的作者。
一条完全限定的 git commit 命令必须提供日志消息和作者。git commit -m "日志消息" [--author]。
至此,index.html 文件已经完全提交到Git版本库中了。
1-6,再次执行 git status 命令查看当前状态。
Git系统我们:在 master 分支上,工作区干净,没有任何与版本库中不同的文件或者未知的更新过的文件。
至此,一此完整的提交已经完成,主要涉及到的命令有 git init(初始化版本库) , git add(添加工作区文件到Git暂存) ,git commit(提交到版本库,必须附带日志信息和变更人信息) , git status(查看Git版本库状态)。
2,配置提交作者
经过上面的操作,你会发现,每一次commit都要附带变更人信息,但是一个本地电脑来说,变更人信息基本上是固定的。
所以,我们应该为Git建立一些基本环境和配置选项。最为基本的是,Git必须知道你的名字和emal地址。
如果输入下命令可以在Git的配置文件中保存我们的身份信息:
git config --global user.name "xxxxxx"
git config --global user.email "xxxxx@qq.com"
以上的命令,只需要执行一次即可。因为传递了 --global 选项。如果希望在一个特定的项目使用不同的名称和email,就不要使用 --global 选项。
使用 git config --list 命令可以查看所有的配置项目。
3,再次进行提交,并查看日志
为了展示一些更多的Git特性,我们对版本库中的文件做一些修改。
3-1,首先对 index.html 文件做一些修改。
3-2,查看一下当前Git版本库的状态,你会发现不同的提示信息。最后提交到版本库。
这里Git提示我们,index.html 文件被修改,我们可以执行 git add 命令将其暂存,或者 git checkout <file> 进行牵出,牵出的文件将替换到工作区的文件,也就意味着当前的修改被牵出的文件所覆盖。
命令 git checkout 会重写工作区,所以使用的时候一定要谨慎。
3-3,查看提交
一旦版本库中有了提交,就可以通过多种方式查看它们。
有些Git命令显示出单独提交的序列,有的显示出一次性提交的摘要,还有的则会显示出版本库里每次提交的所有细节。
命令 git log 会输出版本库里一系列单独提交的历史。条目数据按照时间排序。
上图中框红的标识为提交ID,它是前面所说的"安全散列函数,SHA1"。它是唯一的。
还可以根据提交ID,查看一下这个提交的具体信息。
还可以查看提交差异。
看到这一长串的SHA1码害怕了吗?不用担心这些令人生畏的十六进制数字。Git提供了许多更短,更简单的方式来执行上如的命令,而无序输入一个完整的SHA1吗。