由于工作需要,以前一直是使用SVN作为项目管理工具,由于是可视化操作,觉得挺简单易用的。但作为提升和扩展,学习Git的使用也是很有必要的。网上关于Git的教程和视频有很多,我比较喜欢和推荐的是廖雪峰前辈个人博客的关于Git教程,非常简单易懂。本文也是根据学习该教程中Windows部分进行简单总结作为学习笔记进行记录和分享。
----------------------------------------------------------------------------------------------------------------------------
一、Git简介
二、安装Git
实话实说,Windows是最烂的开发平台,如果不是开发Windows游戏或者在IE里调试页面,一般不推荐用Windows。不过,既然已经上了微软的贼船,也是有办法安装Git的。
廖老师这句话真是说出了我的心声,从大学到工作,一直用微软全家桶,很多东西都是所见即所得,无需太深入研究就能做出点东西,对于开发效率是好的,但对于像我这种比较懒开发者则是不利,所以决定痛改前非,深入学习,提升自己。
我们继续。
1.下载Git,我是直接百度下载的【Git下载】,廖老师是推荐用 msysgit ,不过下载好慢,我就直接百度了。
2.安装Git,我是一路默认到底,毕竟还不懂怎么用,以后有时间深入研究再看看其他选项。
3.安装完成后,看看是否有Git的菜单,如果有,点击【Git Bash】,弹出命令行窗口,说明安装成功。
4.安装后需要进行设置,至于为什么,看看廖老师怎么说的
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址 。
注意
git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
目前为止,Git已经在本机安装完成了。
三、创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
1.创建一个空目录
$ mkdir :创建目录
$pwd: 显示当前目录
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文
2.把这个目录变成Git可以管理的仓库
3.把文件添加到版本库
首先我创建了一个readme.html的文件,放到仓库目录下,把这个文件当作要添加的文件
$ git add 文件名:添加文件到仓库
$ git commit -m "***":把文件提交到仓库
四、Git的基本操作
1.修改文件
目前已经有了一个文件在仓库,如何进行修改提交呢?
首先我们把文件进行正常修改和保存,然后执行$ git status命令,看看现在文件状态
很明显,显示文件现在是修改状态,但是想知道修改了什么呢?很简单,执行$ git diff就可以了
是不是一目了然了。再也不用担心记性不好记不住异动内容了。
好了,接下来就是add 和 commit了,这个和之前是一样的,这样我们就把我们的修改文件提交到仓库了。
2.查看提交历史记录
$git log :显示提交日志
$git log --prety=online:显示提交日志(精简版)
2.版本退回
在Git中用HEAD表示当前版本,也就是,这长串的就是提交ID, 上一个版本就是HEAD ^ ,上上个版本就是HEAD ^ ^,如果是上100个版本,可以用HEAD ~100表示。
廖老师的对于版本退回的总结很好,这里引用下
现在总结一下:
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。穿梭前,用
git log
可以查看提交历史,以便确定要回退到哪个版本。要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
3.撤销修改
撤销修改可以分为几种场景
第一、当修改文件并保存后,想要撤销修改,则使用$git checkout -- [filename] 命令,执行完后该文件则会撤销之前的修改
第二、当修改文件并保存后,还进行了$git add命令,则需要先执行$git reset HEAD [filename],再执行第一步,意思是先撤销add,再还原
第三、如果已经提交到版本库了,则只能进行【版本退回】了,当然,前提是还没有推送到远程库
4.删除文件
一般可以直接在文件管理器把文件删了,或者使用命令$rm filename 来删除文件
接下来有两种操作。一种是确认要从版本库中删除,另一种操作则是因为误删想还原
还原的操作实际上跟撤销修改一样,用$git checkout -- filename 即可,而确认的话则用$git rm [filename]和$git commit 命令就可以了
----------------------------华丽的分割线----------------------------------------------------------
关于Git的一些基本知识总结完了,我相信以上这些操作应该占所有操作的绝大部分,起码我在使用SVN时基本就是增删查改。以前一直决定Git很难,但是这次学习后发现其实揭开那层薄薄的面纱后真的就是那么回事而已。再次感谢廖雪峰老师的博客,让我能轻松入门。下次再总结下关于远程仓库GitHub的内容。