有识

个人网 | 追寻一切真知灼见

用户工具

站点工具


侧边栏

博主公告

想读书,想旅游,想运动,但是没有时间?其实我们不是没有时间,只是没有真正把想做的事情,放在重要的位置上,或者干脆没时间搞清楚到底那件事情对你来说更重要。^_^ 欢迎大家收看《程序员带你学打羽毛球》 和博主一起加入运动的行列。 ease 11:53 - 08月02日




最新博文》更多博文

分类索引

博主简介
吕某某 Leo
河北人,网名:ease
资深IT菜鸟,创业者
兴趣爱好:
人工智能,运动,读书,coding
人生格言:
命由己造 相由心生 有容乃大 无欲则刚 》博主管理》关于博主


blog:ease:git:git-basic

这是本文档旧的修订版!


Git 版本控制常用操作 案例教程

1. 课程前言

  1. 使用git应融入所有程序员的日常开发。
  2. 试图用最少的篇幅,讲解最常用的 git 操作。
  3. 插入应用场景,理解在开发中的实际用途。
  4. 尽可能通俗的阐述,让对 git 零基础的程序员也能读懂。
  5. 晦涩的概念理解,用图形或者实际案例往往比文字更简单和高效。而我们见到的很多技术文章却把简单的问题说复杂。

课程概要

  1. 什么是版本控制,必要性
  2. git基本操作 & 应用场景
    1. init 初始化
    2. clone 克隆
    3. add 暂存
    4. rm 移除
    5. commit 提交
    6. reset 撤销
    7. checkout 检出
    8. .gitignore 忽略文件
    9. log 查看历史
    10. branch 分支
    11. tag 标签
    12. fetch 拉取
    13. merge 合并
    14. pull 拉取&合并
    15. remote 远程
    16. push 推送
    17. rebase 变基
  3. git 基本概念

在本课程中你将会学到

  1. Git 基本概念,为什么说 Git 是靠谱研发团队的必备技能。
  2. 通过案例 学习使用 Git 的基本操作。熟练掌握 Git 这个强大的代码管理工具。
  3. 作为研发团队成员,在日常开发中不同场景Git 的使用。
  4. 理解 Git 在程序员研发过程中,代码迭代的

谁适合学习本课程

“程序员:代码洁癖患者”:
总想把代码写的又干净有高效。(反复封装必不可少)

“程序员:选择困难症”:
实现某个功能比如:某个响应式的菜单或者某个GridView 数据表格,多种解决方案,各有所长。很难取舍。

“优秀的程序员”:
为什么?因为不用 git 就不是优秀的程序员。LOL

“专业写作者”:
不要说你用 word 写作。那也太不专业了,不用 org-mode,起码也要用markdown吧? git 可以协助你随时保存写作灵感,同时又不影响你的故事主线。反复修改更不在话下。

“研发主管”:
协作开发代码管理,可以说是 git 必杀技之一。 对于研发主管来说,无论管理微型的研发团队,还是异地多部门的复杂研发团队。git 都可以轻松应对。

2. 什么是版本控制,版本控制的必要性

安全性,避免代码覆盖的灾难

不小心从某个地方复制的时候,覆盖了最新的代码? 或者某次 Ctrl+s 的时候,保存了错误的代码。笔者就有一次,写了600多行的代码,被一次神Ctrl+s,差点没晕倒。你经历过就知道是什么心里感受了。如果你曾经有过吃出半只小强的经历,大约能理解到笔者十分之一的感受。

时间穿梭,多功能分支管理

开发过程中经常可能会有一些灵感突现,然后大范围的修改代码。但是修改完了,突然发现和系统的整体架构是冲突的。这个局部的改进并不符合系统的整体结构需要。必须撤销更改,或者采用其他思路。此时你可能已经更改了若干文件,如果你想手工撤销回去,就必须记住更改了那些文件,更改了那些行,以及那些方法等。如果没有版本控制工具,这简直就是一场灾难。 然而使用git可以轻松的在代码的历史中随意“时空旅行”,并且用git来做这个事情是非常轻松的事情。

有时我们在开发过程中,需要尝试多种实现方案。再完成之前,并不确定那种方案更加恰当,这时使用git可以很方便的同时维护多个功能方案的分支,并且随时可以几乎无代价的切换(如果使用svn这个切换可能需要等待数分钟,这个等待是致命的,就好比你打一个字母等1秒这个字母才出现类似无法容忍)

团队分工协作,解决代码的冲突

团队分工协作,经常要进行代码的整合。也有时候可能会有多个开发成员需要编辑多个相同的文件。git可以很智能的进行整合,以及对文件进行比较给出冲突的位置,或者自动进行合并工作。可以想象一下,如果没有版本控制工具,你需要对未知的多个文件;以及可能存在的相同文件,不同位置进行代码整合,这个工作该如何完成呢?(用Ctrl+c ,Ctrl+v 吗?如果只能这么干,笔者宁可放弃协作,独立开发)

掌握团队开发进度

git 可以记录每个开发成员的每次提交。并且提交时必须要写一个提交概要描述。因此根据提交历史可以概要的了解到每个开发成员的开发进度。以及具体功能模块或分支的开发进度。并可以针对具体的提交进行单独测或者复审。

记录代码演进历史过程

一个程序代码,往往需要经过多次迭代才可以做到较好的“健壮性”,“安全性”,“模块化”等程序设计的指导思想。最终的版本对于程序的用户以及后续开发都是很好的基础。但coding过程中,整个程序的架构是如何一步一步完成最终版本,体现了整个程序的演进过程,反映了设计的思路,和决策的过程。这些内容对于程序的后续开发以及新开发程序成员了解代码的开发过程是非常有帮助的。

blog/ease/git/git-basic.1536387798.txt.gz · 最后更改: 03:41 - 09月02日 (外部编辑)