Git学习手记(一)
git:版本控制系统;
据说是目前地球上最高端的版本控制系统;
所以不知道原因的情况下我去了解了svn而错过了git那么久,同时也被使用git的朋友鄙视了那么久;
于是我知道我不能等我有时间的时候再去学习git了,是时候抽个时间来学习git了!
版本控制系统的好处就在于可以自动记录下每个版本的改动记录,为个人开发以及团队开发特别是团队开发带来了极大的便利!
不管是svn还是git,在知道编程之后一定要去了解至少一个版本控制系统!
就是这么个东西,现在开始学习。
学习之前说了很多废话,但有些也是必要的,不过现在要说的更是必要的:非常感谢在互联网上传播转发学习资源的素昧平生的网友,非常感谢整理并发布学习资源的未曾见面的廖雪峰老师,谢谢你们的良苦用心,让我的学习热情没有因环境局限而空废。
好了,到现在是17点46分,我是从十三点十分开始去看廖雪峰老师的git教程的,一会就要下班了我可能需要转换战斗场地,下在这里总结一下今天下午的成果:
首先安装git:
windows上面直接下载资源安装就可以了;
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
然后在窗口输入:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
安装完成。
linux上我的已经安装过了,因为我输入git --version 然后又提示我的1.7.1版本,所以省了这一步;
不过就算没有安装,我想也没什么难的,直接下载源码包,./configure、 make 、sudo make install就可以了。
接着创建一个本地的git库,新建一个文件,然后git init ,就可以了。
这个库里面就多了一个隐藏属性的文件.git。
然后你可以在这个库里面做一些正常的文件操作;
只不过操作之后,执行命令:
git add .
git commit -m "info"
这样就可以提交了。
使用git status 可以查看当前版本库的操作状态。
修改的内容可以使用git diff 命令查看。
git log查看历史记录,
git reset --hard HEAD^回退操作;
可以吧HEAD^替换成commit id;
还可以使用git reflog查看包括回退在内的操作记录;
通过以上命令实现版本的自由切换。
再就是工作区与暂存区的概念,git版本库里的文件在工作区操作,通过add到暂存区,最后的commit才算是真真的保存起来。
可以多次add,一次性全部提交。
通过命令git check -- file撤销对版本的修改,回到上次提交之后的最新版本。
有add自然有删除,git rm filename就是删除命令;
同样只是将删除提交到了暂存区,最后还需要commit;
如果删除错了,还可以通过git checkout -- filename找回来。
直接玩远程吧,首先需要去github注册一个账号。注册邮箱激活,之后就可以用了。
然后在shell里面做这个 ssh-keygen -t rsa -C "youremail@example.com"
得到ssh key;
把这个key添加到github里面去。
在远程上面创建一个项目之后,在本地shell通过命令:
git remote add origin git@github.com:michaelliao/learngit.git
连接上远程项目,然后执行命令:
git push -m origin master
将本地的内容推送到远程版本库上;
同样通过命令:
git clone git@github.com:michaelliao/gitskills.git
可以把远程版本库里的内容克隆或者说下载到本地。
今天还有解除到的就是git的分支管理:
创建分支切换分支的命令式:git branch 分支名;git checkout 分支名;
或者直接创建并切换过去:git checkout -b 分支名;
合并分支用git merge 分支名;
当然上面是快速合并,出现冲突时是不能快速合并的,需要命令:
git merge --no-ff -m "info" 分支名
可以通过git diff 查看冲突的地方;
通过git log --graph查看合并分支的结构图;
最后删除分支的命令是:
git branch-d 分支名
顺带还有一个bug分支今天也看了一下;
这个命令git stash也挺有用的;
就是在你开发了一部分忽然需要切换到另外一个分支操作但是当前的版本又不适合commit时可以使用此命令;
使用git stash之后就可以切换到其他分支了;
在其他分支完成操作切换回来时可以使用git stash list查看bug分支;
使用git stash pop恢复之前的操作,继续在此分支工作。
好了,还加班了20多分钟,今天下午就看了这么多,我看也没剩多少东西了,由于夜晚肯定要去干微信开发的事情,所以剩下的一点东西明天在完成吧。
廖雪峰老师的教程:点我跳转!