作为一个还没有实际开发经验的程序员,对于版本控制多少有些陌生,我通常的做法就是项目名后面加数字标记版本,然后备注一个文档说明更新。据个人了解svn用的比较多,我也学习了一点,无非是本地下载一个服务器端,再下一个客户端,模拟一下操作罢了,真正做起来难免觉得有点乏味,所以也没有深入下去。

在我找工作的时候,曾今有人给我一个任务,让我用mongoDB+springMVC+freemark两天之内做一个demo,然后上传到git上他去看。在这里还是要感谢这个人,在我简历上的公布的技术之外布置了这个任务,开阔了我的视野,刺激了我进一步去学习springMVC和git,也了解了下非关系型数据库mongodb。因为和别的公司签了合同要去上班最终没有做下去,但是他提到的技术我都去了解并试着去学习了,收货颇多。

而对于git,其实早有耳闻,记得最初打开github网站,一进去都是英文,当时就退缩了,也怪自己没有远见和胆识,走走停停好几次。如今我终于迈开步伐,在好奇心的驱使下开始摸索,学习的过程中发现教程少的可怜,所以在此简单总结下,针对到目前最新版本的github的个人使用方法,大神就此移驾吧。

个人使用(基于初学者的图形界面使用)

客户端以github  for windows 为例,服务器端直接在github网站上查看。

一.上传项目源码

1.Github网站注册账号

2.下载github for windows(xp貌似不支持)

3.本地登陆(什么SSH的也免了,自动完成)

4.创建仓库(可指定目录)       如E:\github\SpringMVC_demo(SpringMVC_demo为仓库名)

5.复制需要上传的项目到该仓库目录下(.gitattributes和.gitignore是随仓库自动创建的)

6.客户端自动刷新(提示有未提交的改动)

7.提交更新:点击show,添加主题和详细描述,然后commmit。这个提交只能说是对于本地仓库的提交。

8.注意右上角的变化,点击右上角的Publish Repository,可以把该仓库推送到远程服务器端

9.Github网站上查看提交(网速慢的话还要等待页面刷新)

二.简单版本控制

1.修改该仓库中版本1目录下的一个叫备注的文本文件,git自动检测到修改,同第一次拖进去的一样提示你。

注意:如果没有在本地提交,只是在一个暂存区中,那么可以说git不认可你的修改,肯定也无法同步到远程仓库。

2.添加描述,然后提交,右上角显示一个未同步。

提示:如果只是本地稍加修改,或者想后面重大升级后一起提交,那么无需同步

如图:可以看下差异,绿色表示添加部分,红色表示删掉的部分,都是以当前版本为基线。

3.在这里我们先回滚刚才的提交的test,自动生成一个描述为Revert ‘test’的版本,右上角显示两次未同步。

4.假如我们前面拖过来的是第一个版本,现在我们做了升级,开发工具这边可以直接在第一个版本的基础上继续开发,因为这边本地仓库有了备份。完成了版本2,我们可以直接把新版拖过来。现在又显示有未提交的代码,一样处理。

提示:版本二的差异开始显现,打开有红色标记的文件,可以明显看到差异。同时右上角显示有三次未同步。

我们特意来看看刚才的test部分,回滚之后很显然变化又是相对于Revert ‘test’版本的,说明这是在一条主线上进行的,有一个指针前后移动来控制版本。

5.我们再来同步一下,看看远程仓库的变化,很显然看出来手动的4次提交都有记录了。

这个时候如果我们需要版本1的代码怎么办,我想如果代码量小的话可直接在当前版本的视图下copy,但是个人开发的话我们通常只是比较差异,自己做的一看都能回忆起来。真正需要代码的恐怕就是他人了,这时可以去github下载或者克隆。

这里因为个人能力有限,只是介绍了入门级的简单玩法,至于团队开发,参与开源项目等等,以后再作介绍吧。对于本文中不足之处,敬请指正!

Git的入门级玩法的更多相关文章

  1. git分布式版本控制玩法

    git分布式版本控制玩法 Git distributed version control play github的配置安装步骤:1.下载git bash(从http://www.git-scm.com ...

  2. git的简单玩法

    本篇笔记参考廖雪峰的git教程,为方便查看将命令部分提取并记录下来. 无意对原作的版权侵犯,如需要学习请到廖雪峰网站学习git 创建git仓库 # mkdir learngit && ...

  3. Python的生成器进阶玩法

    Python的生成器进阶玩法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.yield的表达式形式 #!/usr/bin/env python #_*_coding:utf-8 ...

  4. 【转】4G18的低成本NA玩法

    首先是要再次强调一次,4G18的缸径是76MM,冲程是87.5MM.属于典型的长冲程低转发动机! 这种设计的优点是比较适合市区走停的工作状况,省油. 如果要针对改装方案而言因为这种低转时便可输出大扭矩 ...

  5. openresty+lua在反向代理服务中的玩法

    openresty+lua在反向代理服务中的玩法 phith0n · 2015/06/02 10:35 0x01 起因 几天前学弟给我介绍他用nginx搭建的反代,代理了谷歌和维基百科. 由此我想到了 ...

  6. 接口测试的N中玩法

    在我看来接口测试相对其他类型的测试是比较简单的.对于最常见的HTTP接口,只需要知道接口的 URL.方法.参数类型.返回值 ... 就可以对接口进行测试了. apifox 如果你是入门级选手,那么ap ...

  7. [C#] 软硬结合第二篇——酷我音乐盒的逆天玩法

    1.灵感来源: LZ是纯宅男,一天从早上8:00起一直要呆在电脑旁到晚上12:00左右吧~平时也没人来闲聊几句,刷空间暑假也没啥动态,听音乐吧...~有些确实不好听,于是就不得不打断手头的工作去点击下 ...

  8. 自定义 checkbox 新玩法 ?

    自定义 checkbox 新玩法 ? 第一步:selector 编写 drawable/selector_checkbox_voice.xml <?xml version="1.0&q ...

  9. 【第1期】腾讯云的1001种玩法征集,Ipad mini和Kindle 等你拿!(文章评审中)

    版权声明:本文由阁主的小跟班原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/695994001482226944 来源:腾云 ...

随机推荐

  1. hdu 3689 Infinite monkey theorem

    Infinite monkey theorem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/ ...

  2. c# 自定义排序Compare

    .net FrameWork 框架博大精深,用着忘着,计划对自己能够想到知识点梳理一下,此篇是对自定义排序的理解: class Program { static void Main(string[] ...

  3. 从零开始开发一款app,所想到的

    我在知乎上看到这个问题http://www.zhihu.com/question/27645587.我在阅读了各位大牛的答案后,再加上自己的思考,就有了这篇文章的内容.     从零开始开发一款app ...

  4. Item 28 利用有限制通配符来提升API的灵活性

    <? extends E> 和<? super E>的使用   <? extends E>的使用 Item 26 这是堆栈的公有API: public class ...

  5. 图连通性【tarjan点双连通分量、边双联通分量】【无向图】

    根据 李煜东大牛:图连通性若干拓展问题探讨 ppt学习. 有割点不一定有割边,有割边不一定有割点. 理解low[u]的定义很重要. 1.无向图求割点.点双联通分量: 如果对一条边(x,y),如果low ...

  6. poj 2104 可持久化线段树

    我们先离散化,然后根据权值建立线段树,假设我们现在有一颗权值线段树,表示在区间1-n中每个数出现了几次,那么我们可以二分的求出来这个区间的k大值,类似sbt的select操作,那么因为点的权值插入是无 ...

  7. Android跳转到拨打电话的页面

    在Android6.0之后,拨打电话需要用户授予动态权限,项目中有此需求,有一种简单的方法,直接携带电话号码跳转到系统拨打电话的页面,很多应用也是这么做的,这样可以减轻工作量 代码如下: Androi ...

  8. 设计模式之Prototype

    设计模式总共有23种模式这仅仅是为了一个目的:解耦+解耦+解耦...(高内聚低耦合满足开闭原则) 介绍: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 为什么要用Prototype ...

  9. 设计模式之Builder

    设计模式总共有23种模式这仅仅是为了一个目的:解耦+解耦+解耦...(高内聚低耦合满足开闭原则) 介绍: Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象. 将一个复杂 ...

  10. 使用EL表达式需要注意的

    1.表达式与Java无关,表达式都是以${开始,以}结束. 2.EL访问java变量不能直接访问,因为得不到数据,要访问数据,需要将其放到作用域中.而使用<%=java变量%>可以访问ja ...