申明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨
之前使用的是SVN(Subversion)。最近想自学一下Git的使用,在别人的推荐下,观看了廖雪峰的Git教程(本人将该网址贴到文章下方,有兴趣的童鞋也可以一起学习)。在自己练手的时候也写一个博客笔记记录一下学习心得。望与学习者共勉。
首先,是Git的环境安装(本人在家采用的是window系统,系统版本win7),百度搜索“Git”,出现如下视图
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
// 注 Your Name 就是填写你的姓名/昵称 email就不用说了吧,邮箱。 至于密码。。。。没有密码,是的,没有,别问为什么,自己Google。
mkdir learngit //创建的文件路径
cd learngit
pwd
// 注 pwd作用是为了显示刚刚创建的文件路径,如果路径中包含中文的话,强烈建议修改路径,避免出现各种奇奇怪怪的现象发生。
git init
这样就创建好了一个Git的仓库。(默认那个刚刚创建好的git是隐藏的。 可以是用 ls -ah 就可以让它显示
)
千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载Notepad++代替记事本,不但功能强大,而且免费!记得把Notepad++的默认编码设置为UTF-8 without BOM即可 ”
因为本人电脑上暂时没有安装Notep++,那么就先直接创建一个空的txt文件也无所谓,不影响练习。接着我们用两步把文件添加到仓库
git add readme.txt
git commit -m"wrote a readme file"
// 注 -m“ ” 里面的内容写的相当于注释,为了方便日后查找,因此请填写一些相关的内容,比如创建了某某文件,修改了某某文件某某行等等。
git status
懂一点英语的话,应该可以看懂,大概是说:readme.txt 被修改过,但是还没有commit提交修改
我们用 git diff 看看做了哪些修改,(diff == difference)
git diff
我们可以看出文件没有删除内容(-0,0),增加了一个文件三行(+1,3) 具体增加的内容就是那三个+开头的那三句
我们知道了修改内容之后,检查没有错误之外就可以提交修改了。提交修改和提交新文件是同样的,即git add 和 git commit。提交完成之后 我们再用git status查看一下状态
上面大概说的是:没有需要提交的文件,工作目录是干净整洁的的。(这样就说明我们刚刚的文件完全提交成功了)
提交完之后,我们可以使用git log命令来查看以前提交过的版本信息(也可以用git log --pretty=oneline 只看单行的参数)
git log
如果我们要退回第二个版本,就可以使用git reset 的命令
git reset --hard HEAD^
// 注意 返回之后你再用git log的话 看到的就是只有你当前版本以及以前的了,之前的那个版本看不到了。
如果想回到以前的版本怎么办? 有办法!
方法1 如果你没有关闭git 这个窗口的话 你可以看以前的那个git log 最新那个版本号
commit后面那个就是版本号
然后用上面退回的方法
git reset --hard 2ad8e107 // 只输入前几位就够了,只要不跟别的版本号前几位一样就可以恢复回来的
方法2 如果你关闭了git 这个窗口的话,可以使用git reflog命令,查看以前每一次命令 这样能就可以看到以前的版本号啦(记得关闭git 重新打开后要cd 路径 回来原来的仓库)
git reflog
这样我们就又可以看到前面那些版本号啦 然后用git reset命令就可以退回以前版本了。(nice)
----概念介绍----
工作区(Working Directory) :指的是电脑上能看到的或者看不到的但是已经存在的路径目录(隐藏文件的路径),比如我们之前创建的learngit就是一个工作区
版本区(Repository):工作区内有一个隐藏目录.git 这个就叫Git的版本区(它不算是工作区)
(图片引用自廖雪峰教程)
我们add文件的时候,其实是把文件从工作区放到暂存区(stage)中,commit的时候,就是把暂存区的文件提交到master里面去。教程的原话是这样的“
分支和HEAD
的概念我们以后再讲。
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master
分支,所以,现在,git commit
就是往master
分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。”
这是廖雪峰的Git教程链接:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000