虽然感觉并没有什么暖用,但姑且还是写出来留作纪念好了

Git这种分布式版本控制系统最适合的就是单枪匹马搞开发的选手,不需要服务器,下载个git和图形工具,网速快十分钟就能搞定开始愉快的开发工作。我在搭建gitlab服务器时,查找了许多关于git的使用教程,他们中大多数都是使用命令行来操作,非常的专业,灵活。但git再怎么吹的玄乎完爆SVN,它终究只是一个工具而已,工具首先要满足需求,第二就是要好用,显然命令行是没有图形界面好用的。

在windows上的图形工具当然是小乌龟(TortoiseGit)最好用了,Mac则上SourceTree,不过我在mac上用SourceTree总是会有一些奇奇怪怪的小问题,所以我并没有怎么深入了解它。

第一章 Git的安装和图形工具安装

随便搜索关键词“git”,去到git官方网站。下载对应你所用的操作系统的版本,然后安装,一路下一步就行了,唯一一点需要注意的就是在如下界面时,要选择第三个选项,这样你克隆的代码就不会改变格式了。

安装好了之后,你随便找个空地右键一下,右键菜单里就出现了下面这些神奇的选项

其中git init here是在此创建一个版本库(创建在哪?你点哪就是哪啊),git gui是git自带的一个简易图形化工具,git bash是命令行工具

虽然介绍了它们三个,但并不会有什么用,如果你坚持觉得命令行用起来更酷炫,更自由,更有范。我承认你赢了

你可以去看廖雪峰老师关于git的教程

安装TortoiseGit也是如此简单,下载,安装,一路下一步,安装好了之后右键,又多了好多东西。

英文的小乌龟用起来爽不爽?当然不爽啦!所以我们可以在TortoiseGit的官网里下载汉化包,变成中文版。

第二章 TortoiseGit的基本操作

当你第一次使用TortoiseGit的时候,首先要确认你的身份,这样你提交的修改其他成员才知道是谁做出的修改,如果有问题该向谁询问

确认身份,右键-->TortoiseGit-->Setting,在打开的对话框里,左边选git,右边就会出现写用户名和邮箱的地方

这是已经设置好的状态

创建版本库

当你确认了自己的时,先选择一个自认为合适的目录作为工作区,例如下图中我选择了I:\我的工作区  作为我的工作区

于是我在该目录下点击右键,选择“git在这里创建版本库”

出现以下界面,然后点击确定。

于是该目录就变成版本库了

在介绍基础操作之前,我们要理清几个概念,缓存区,本地版本库,远程版本库。

当你对工作目录下的文件修改,添加,删除时,这些操作都是存在于缓存区,你可以随时通过右键TortoiseGit里的还原来回到你未改动过的文件,但当你右键提交到了版本库之后,你的修改就被存入本地版本库中,这时你只能回溯到之前提交的版本

提交过后的修改只是存在于你本地的版本库,想让其他开发者能看到你的修改,就必须通过右键的git同步,将修改推送到gitlab上,其他开发者才能看到你的修改。

通过一次场景模拟来介绍git的使用

小明是一名刚入职的新员工,入职第一天,组长找到管理员让其为小明注册了gitlab(一种git服务器)的账号。并且组长将小明的账号添加到了gitlab项目组的名单里

小明按照使用手册上的指示登录了gitlab后,找到了他要开发的工程,复制了该工程的路径,又按照使用手册中的提示,将工程的版本库克隆到了他工作用的电脑的工作区目录下。可以开始工作了。

打开了克隆下来的版本库里面的文件,小明开始工作

他输入了好几十行的代码,感觉很满意,于是保存了一下,出去吃午饭了

吃完午饭回来,小明感觉之前好几十行的代码写的根本没有任何意思,但删起来实在是太麻烦了,于是他在保存的文件上右键选择还原

文件就回到了修改之前的样子

接着小明又写了好几千行的代码,仔细检查过后,他觉得写的很好,不用修改了,便保存了。

之后在空白处右键点击提交到当前分支master。

并且对此次修改添加了描述,然后提交了

小明觉得非常满足,于是把自己的修改推送到gitlab上。然后收拾东西下班了

第二天刚到公司,组长过来跟小明说他昨晚的提交的代码与上面的衔接不是非常完美,所以要小明修改一下,小明决定倒退回两个版本之前,从新编写。于是他右键文件选择追溯

选择切换/检出到了ID4的版本

小明并不需要原来的版本了,所以选择了覆盖当前分支,这样就不会出现多个分支了

再打开了一看,文件已经回到了前两个版本之前了

小明又可以愉快的工作了。

后记:小明的组长看到小明的工作记录之后问他道:“你为什么选择覆盖已存在的分支,而不是选择创建一个新的分支呢?这样万一你回滚之后后悔了不是还可以切换回原来的分支吗?”

小明答曰:“我并不知道什么叫分支。”

组长决定下一周给小明的奖金减少到三百块,并且写了一篇《git的进阶使用》交给小明。

转自 http://blog.csdn.net/qq_25144527/article/details/46235793

最新文章

  1. python code
  2. 深入浅出学Spring Data JPA
  3. Matlab
  4. Best Practices for Background Jobs_3 Managing Device Awake State之电源锁、Alarm、WakefulBroadcastReceiver
  5. android studio ,Gradle DSL method not found: 'compile()'
  6. Iphone5s 通话质量差 问题解决
  7. SqlServer Split函数
  8. 【二进制】FZU 2062 Suneast & Yayamao
  9. NOI十连测 第五测 T1
  10. Android ViewManager解读之requestLayout() 详解
  11. Vue子组件与父组件之间的通信
  12. 记录一次Python下Tensorflow安装过程,1.7带GPU加速版本
  13. 产生 unmerge path git
  14. Simple Recurrent Unit,单循环单元
  15. 英语口语练习系列-C26-广告-人际关系-辨别物体-如果
  16. jquery验证规则
  17. CSS3 transform变形(2D转换)
  18. 怎么解决numpy和matplotlib无法安装问题
  19. DHacker 汉化
  20. 使用Topshelf部署Windows服务

热门文章

  1. [转]VirtualBox – Error In supR3HardenedWinReSpawn 问题解决办法
  2. Web开发学习笔记
  3. Android--保持加速度传感器在屏幕关闭后运行
  4. 引入OO开发报表后的感想
  5. Android应用程序中应用图标和名字的设置
  6. iframe 透明
  7. iOSUI基础——懒加载
  8. 准备冲锋 golang入坑系列
  9. Composer创建和发送HTTP Request
  10. 剑指offer第八天
  11. SDP(9):MongoDB-Scala - data access and modeling
  12. Manacher算法 (马拉车算法)
  13. 3.1.3 Spring之AOP
  14. Unity3D|-XLua热更新用法的大致流程
  15. 记一次坑爹的ORA-01152&ORA-01110错误
  16. PythonStudy——集合 Set
  17. 20170920xlVBA_FTP_UpDownLoad_DownLoad
  18. 看病要排队--hdu1873
  19. 洛谷P2602 数字计数 [ZJOI2010] 数位dp
  20. Pycharm(三)常用设置