赞
踩
版本控制就是一种记录一个或若干文件内容变化以便将来来查阅特定版本内容的系统,目的就是让所有开发人员协同工作,减少工作差异导致的成本。换句话讲就是让开发人员使用统一的文件版本。
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。
所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS。
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。不会因为服务器损坏或者网络问题,造成不能工作的情况!
备注:Git与SVN的主要区别
打开官网Git - Downloading Package 会自动下载,下载后点击安装即可。目前最新版本是Git-2.33.1-64-bit。官网界面如下图,然后根据自己的电脑选择对应的版本,一般选 64 -bit for Windows Steup。git官网下载太慢:选择下载传送门
https://npm.taobao.org/mirrors/git-for-windows/
安装的界面依次如下图所示。
执行“Win + R"呼出任务管理器,键入
git --version
确认,会出现安装的Git的版本号,如图
成功后在开始菜单可以看见 Git Bash、Git CMD和 Git GUI图标,如图
其中Git Bash是控制台,采用Linux命令进行操作,使用最多,也比较推荐,点击后如图
Git CMD是调用系统的CMD控制台来执行GIt操作命令的,点击如图
Git GUI是可视化操作界面,点击如图
2.4.1 查看Git配置
2.4.2 查看全局配置
打开Git Bash,输入
git config - l
回车即可看到全部的详细配置信息,如图
3.1.2 查看系统配置
键入
git config --system --list
来查看,如图
3.2 配置用户名和邮箱
这个只可配置1次,每一次 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改。输入
git config --global user.name "wcf"
git config --global user.email "junmoxiao_wcf@163.com"
如图
另外,global是全局命令,慎重使用
已提交(Committed)
数据已安全的保存在本地数据库中
已修改(Modified)
已修改文件但未保存在本地数据库中
已暂存(Staged)
对已修改文件的当前版本已做了标记,使之包含在下次提交的快照中
工作目录(Workspace)
也称为工作区,是从Git仓库中提取出一部分压缩数据放在本地磁盘上共开发人员使用。
暂存目录(Index/Stage)
也称暂存区,是个文件,保存了下次要提交的文件列表信息,在Git仓库中,按照术语叫做“索引”。
Git仓库(Repository)
是 Git用来保存项目的元数据和对象数据库的地方。
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
3.1 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录
3.2 通过git init命令把这个目录变成Git可以管理的仓库
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
使用命令 git add test.c添加到暂存区里面去。如下:
如果和上面一样,没有任何提示,说明已经添加成功了。
用命令 git commit告诉Git,把文件提交到仓库。
现在我们已经提交了一个test.c文件了
用命令 git status来查看是否还有文件未提交.
上面的命令告诉我们 test.c文件已被修改,但是未被提交的修改。
文件重新添加版本库
首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。
接下来我想看下readme.txt文件到底改了什么内容,如何查看呢?可以使用如下命令:
git diff test.c 如下:
知道了对readme.txt文件做了什么修改后,我们可以放心的提交到仓库了,提交修改和提交文件是一样的2步(第一步是git add 第二步是:git commit)。
先使用命令git log 来查看下历史记录。
再用命令git reset --hard HEAD^把当前的版本回退到上一个版本
第一种是:git reset --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 即可。
先使用命令git reflog 获取到版本号
再git reset --hard 来恢复
git checkout – file 可以丢弃工作区的修改
注意:命令git checkout – readme.txt 中的 – 很重要,如果没有 – 的话,那么命令变成创建分支了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。