Git基础
?1、版本控制系统1.1、集中化的版本控制系统一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新 1.2、分布式的版本控制系统客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来 2、三种状态Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)?
基本的 Git 工作流程如下: ? 3、文件状态请记住,你工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。? 4、常用命令这里用到了如下几个命令: git status:查看工作目录的状态 git add 文件名:将文件添加到暂存区。暂存区就是下次要提交的文件列表。 git commit:提交到本地仓库 git log:查看所有的历史记录 本例中用到了两个新命令: git checkout -- 文件名:丢弃工作目录的改变 git diff:查看当前工作目录和暂存区快照之间的差异 如果想要查看暂存区中的和上一次提交之前的差异,可以使用git diff --staged git diff? 比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容 git diff --staged 比较已暂存的文件和上一次已经之间的差异 现在各个地方的文件是这样的 所以,从这里我们就可以清晰的知道:git diff命令不加任何参数的时候比较的是未暂存的和已暂存的文件之间的差异,而加上--staged选项之后比较的时候下一次提交与已经提交的之前的差异或者说比较的是以暂存和已提交之间的差异。 小结: git diff 比较未暂存和已暂存之间的差异 git diff --staged 比较已暂存和已提交之间的差异 ? 接下来,再好好理解一下暂存区的作用 本例中,最开始git status的时候是一个已暂存一个未暂存,执行git commit以后再看git status竟然还有未暂存的。说明,git commit提交的是暂存区中的内容,未暂存的内容不会被提交。同时也进一步证明,暂存区相当于下一次提交的文件列表。如果想要跳过暂存区,可以在git commit后面加-a选项。 移除文件 git rm 文件:从暂存区中删除,并删除工作目录中的文件 git rm --cached 文件:只是从暂存区中删除,不会删除工作目录中的文件 git log查看日志 撤销操作 ? 参考《progit-zh-v2.1.1.pdf》 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |