Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突
2016-05-08 14:43
1196 查看
Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突
这篇是接着上篇分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目讲的,上篇主要是说用GUI来图形化界面操作,但是一般我们程序员也不会这么干,用命令又轻松又愉悦,所以,这里我就再开了一篇来专门说一下纯命令是怎么去操作的,但是要注意哦,其实廖雪峰老师的网站就是非常赞的学习资源哦!廖雪峰老师:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
我们还是先从安装开始吧,我上篇Ubuntu的配置博客也说了安装,这里我就三个平台一起讲吧!
一.Install
安装其实都是最简单的方法了Windows
windows的安装只要去下载一个协助工具就可以了,下载地址
https://git-for-windows.github.io/
安装之后,我们在桌面右键有一个Git Bash Here
Ubuntu
linux的安装就是一条命令的事情了,我的这篇博客里也有讲Android源码浅析(二)——Ubuntu Root,Git,VMware Tools,安装输入法,主题美化,Dock,安装JDK和配置环境
在终端输入
sudo apt-get install git
如果你是#的root权限的话,可以不用加sudo
X OS
mac的系统安装虽说也是一条命令,但是他需要借助辅助的工具,当然,你也可以直接安装XCode,它就集成了Git,不过需要配置一番,我们作为android开发人员,这个xcode其实看个人兴趣吧,我们用另一种方式安装
http://brew.sh/
只要下载安装Homebrew,mac的终端就可以搜索安装软件了
输入
sudo brew install git
等待安装成功,检查是否安装成功的方式也很简单,只要输入
git version
查看他的版本就可以了
二.Clone
Clone就是从github上下载项目,我们在Github上新建一个项目,叫做GitTest吧!如果这一步不会操作的话,请移步:分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目我们把这个链接给记住了
https://github.com/LiuGuiLinAndroid/GitTest.git
这里,我先在D盘新建一个git的文件夹,然后进入这个目录,直接右键打开Git Bash,然后输入
git clone https://github.com/LiuGuiLinAndroid/GitTest.git[/code]
就可以下载下来代码了
我们进入这个文件夹里面可以看到他只有一个文件README.md,我们输入vim README.md
去访问他
这里vim是一个编辑的命令,我们推出这个vim环境只要输入q!
就可以了三.Commit
提交代码,我们先介绍一下Git的工作模式,其实吧,Git这么出名也是跟他的模式有关,而我们的章节,也是跟着他的模式走的// add->commit->push
先是add,也就是把你要提交的代码先提交到缓存区,然后commit提交到本地的仓库,最后再push推送到远程仓库,也就是github上,这里,我们先对刚才那个README.md文件进行修改吧,我们编辑一下,加上一点文字
我们保存之后,刚才的绿色文件就变成了感叹号,说明已经有修改了,这点和SVN一样,我们回到命令行,这里,我们有一个很方便的命令git status
来查看当前的状态
这里就提示你这个文件已经是红色的,改动了,需要提交吗?
所以,我们就输入git add README.md
也就是添加到缓存区
他什么都没提示说明add成功了,这个时候我们再次查看一下状态,你就会发现
状态是绿色的了,Ok,这个时候我们就需要commit了,输入git commit README.md
然后他会显示这样一个信息,这里是要你写一些说明,我就写了first commit
这里输入x
保存退出
然后我们再次查看一下状态
果不其然,这里显示你有一个commit,需要push,也就是推送四.Push
既然他友好的提示我们可以push,那我们就直接推送吧,只要输入git push
即可,然后他会提示你输入账号和密码
我们输完之后,稍微等待一会儿,他们也自然会done的
到这里,我们的git的push就OK了,我们去github上看一下就明白了五.Pull
这个就很好理解了,开原作者对自己的项目进行了一次修改,有新的东西了,我们就去更新一下, 也就去把代码拉下来,这样,我们在github上修改一下
现在的样子就是这样的了
这个很明显和我本地的不一样,所以我们就需要去pusll,输入git pull
好的,下拉成功
我们可以用vim命令去查看一下
可以看到,代码也是拉了下来六.版本回退
写代码写着写着发现自己入坑了,怎么办,而且代码还提交了,在队友还没有pull之前,赶紧版本回退,那该怎么做呢?我们可以这样,首先,我们输入git log
来查看我们提交代码的记录
这里我们可以看到,我们第一次是系统初始化的,第二次也就是我们认为的提交,第三次,也就是我们pull的时候在github上提交的,我现在演示一下怎么退回到first commit
但是我们要注意,上图中,log日志黄色的一长串ID,这就是我们要注意的东西,我们只有通过这个ID才能版本回退,所以,这里我先拷贝一下first commit的ID:a0c401fcda58304938767820f35d6b4bcaad28db
好的,我们开始了,版本回退的命令是git reset --harda0c401fcda58304938767820f35d6b4bcaad28db
好的
他提示已经回退到first commit了,我们验证一下,只要看一下README.md里面的信息就可以,我们用vim命令去看
这里果不其然是显示第一次提交,说明我们已经成功的版本回退了,版本回退有风险,操作需谨慎哈!
如果你说要再回到原来的状态,也是可以的,按照上面的方法再走一遍流程即可,不过要注意的是,这次想要获取到的ID就不是输入git log了,这里又出来一个新的命令了git reflog
记录的是所有的log,接下来,你就知道怎么去操作了
不过,这里也牵引出我们的撤销操作出出来了七.撤销更新
前面已经说了这么多,这部分其实就是写命令,所有就不实际演示了//如果你写代码写错了之后想撤销的话,也就是还原文件初始状态 、git checkout --文件名 //如果你已经add了代码到缓存区 git reset HEAD 文件名 //但是如果你已经commit了,就需要版本回退了 git reset --hard 版本号 //要是你推送到了远程仓库,比如github .....你就很痛苦了八.分支的创建和切换
我们都知道,默认是有一个主分支master分支,但是我们有时候如果需要测试某些功能或者怎么样的时候,需要创建一个分支,当觉得分支的代码可以了就合并到主分支,这样的好处也是保证主分支的一个干净性和安全性,好的,我们具体来看一下怎么操作的:
查看分支git branch
创建分支git branch[分支名]
切换分支git checkout [分支名]
这样就可以了,还有另一种比较方便的方法就是
创建并且切换分支git checkout -b [分支名]
这张图,我们可以看到,我们先是查看了自己所在的分支,位于主分支,然后我创建了一个分支叫hello,接着我切换到hello这个分支,再次查看自己所在的分支,就是hello了,然后再切换回主分支,再用创建并切换的命令创建了android这个分支,然后查看分支,我们就位于android这个分支了九.分支的更新和提交
分支的push和pull,其实和主分支的操作还是有些许区别的,就是命令
分支pushgit push origin 分支名
看,他可以提交,显示要我们账号密码
这里,我们已经把android这个分支推送上去了,而hello这个分支没有,所以我们输入git brnch -a
查看所以的分支
这里,白色的是本地分支,绿色的,是你所在的分支,红色的,是远程的分支
分支pull
既然push要做处理,那pull肯定要咯,和push一样git pull origin 分支名
OK,这个是可以的十.分支合并
这里,我们可以看到,我们所在的分支是android
我们对README.md进行修改
然后add commit
现在我们android分支已经修改了,但是主master分支病没有,我们觉得android分支这段代码可以用了,需要合并到主分支,那我们该怎么做呢?
我们这里可以看到,我们先是切换到了主分支,然后输入git merge 分支名
去合并代码,现在,我们查看一下
好的,这样,代码就合并成功了十一.代码冲突
这个代码冲突,在SVN中也是精彩会碰到,还是自己对版本控制这一块的不熟练,一般出现冲突Git的话是两种情况
在你push推代码的时候发生代码冲突
合并分支的时候发生代码冲突
比如你在分支中写的代码,主分支也有类似的,就极有可能发生冲突,我们来测试一下,我们不演示了,我讲个大概的思路,当出现冲突的时候,命令行会告诉我们哪个文件合并出错,找到这个文件的时候vim 文件名
你可以看到有个特殊的箭头包裹着一段代码,那就是两个代码块不一样的地方,你需要自己手动修复
然后,需要重新提交,但是再commit的时候git commit -i -m '更新说明' 文件名
这样提交后就可以直接push了好了,小伙伴们,Git的使用是否已经学会了
我的群,通往Android的神奇之旅 :555974449,欢迎大家进来交流技术!
相关文章推荐
- Java第六次作业
- 极客学院爬虫re基本知识
- 函数式编程之根-拉姆达运算/演算(λ-calculus)
- 理解面向对象编程(六)-内部类
- QT 学习之路
- C++第一次作业
- c# 拖拽事件
- 20145329《Java程序设计》第十周学习总结
- java集合12--TreeMap源码详解
- GoogleCodeJam
- SpringMVC源代码学习外传(二)如何在重定向时传递参数&FlashMap
- C语言关于数组与指针内容小结
- 【Python】迭代器、生成器、yield单线程异步并发实现详解
- C++注释符问题
- Ubuntu 下安装 QT 开发环境
- Google Gson使用简介
- 使用ctype.h示例
- java内存模型的理解
- Ugly Number(丑数)系列题 Python解法
- Django的学习笔记(一)(Django Web入门)