Git是什么?
Git是分布式版本控制系统。版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
我们用传统的方法来管理改动是怎么样的,毕业论文改了一部分,又不敢删掉之前的,万一老师来一句“还是之前的好”, 如果你把改动前的删掉了,你的表情会是这样的
采用版本控制系统是个明智的选择。有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。 你可以比较文件的变化细节,查出修改了哪个地方。 使用版本控制系统通常还意味着,就算你乱来一气把文件改的改删的删,你也照样可以轻松恢复到原先的样子。
非常重要的概念
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。 已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存; 已暂存表示把已修改的文件放在下次提交时要保存的清单中。由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。
每个项目都有一个 Git 目录,它是 Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。
从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 Git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。
所谓的暂存区域只不过是个简单的文件,一般都放在 Git 目录中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。
基本的 Git 工作流程如下:
1、在工作目录中修改某些文件。
2、对修改后的文件进行快照,然后保存到暂存区域。
3、提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
所以,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
在 Windows 上安装使用 Git
下载地址,下载好后点击安装就行,完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。
1、配置Git
第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录,在命令行输入:$ git config --global user.name yourName
$ git config --global user.email yourName@example.com
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
可以使用 git config --list 命令检查已有的配置信息,
2、初始化新仓库
要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:$ git init
初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
3、检查当前文件状态
要确定哪些文件当前处于什么状态,可以用 git status 命令。如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:$ git status
# On branch master
nothing to commit (working directory clean)
这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪的新文件,否则 Git 会在这里列出来。
4、跟踪新文件
使用命令 git add 开始跟踪一个新文件。所以,要跟踪 README 文件,运行:$ git add README
此时再运行 git status 命令,会看到 README 文件已被跟踪,并处于暂存状态。在 git add 后面可以指明要跟踪的文件或目录路径。如果是目录的话,就说明要递归跟踪该目录下的所有文件。
5、取消对文件的修改
如果觉得对某个文件的修改完全没有必要,该如何取消修改,回到之前的状态呢?可以使用下面命令恢复到修改前的版本:$ git checkout -- fileName
这条命令有些危险,所有对文件的修改都没有了,因为我们刚刚把之前版本的文件复制过来重写了此文件。所以在用这条命令前,请务必确定真的不再需要保留刚才的修改。 如果只是想回退版本,同时保留刚才的修改以便将来继续工作,可以用分支来处理,这个主题不再这讨论。
6、提交更新
现在的暂存区域已经准备妥当可以提交了。在此之前,请一定要确认还有什么修改过的或新建的文件还没有 git add 过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用 git status 看下,是不是都已暂存起来了,然后再运行提交命令 git commit:$ git commit -m"注释内容"
想回顾下提交历史,可以使用 git log 命令查看。
到目前为止的操作都是在本地的,他存在于.git文件中,如果多人协同开发,则需要使用远端仓库,下次会说远端仓库的使用。
好了,今天就说这些了,熟悉Git的使用在开发中是很重要的,所以同童鞋们想了解更多Git的使用,请点击这里。