从开始实习到现在大概有一个月了,这个月时间接触了很多新东西,其中就包括了git版本控制、分支管理等等。我在这段时间里,深深地感受到了git对公司项目代码管理和控制、团队合作带来的益处和其重要性。其实在实习开始前就明白git对于一个合格的程序员来说,是不可不掌握的,但由于之前学校团队人数较少,对于代码的管理没有做严格要求等等原因,于是就没有好好学习git,到了公司实战真是后悔不已!(在学校的时候用qq发送代码文件这样的傻事情没有少做)

这几天认真看了廖雪峰老师的git教程,对以前一些模糊的概念有了更清晰的了解,以及对整个团队利用git进行项目开发、版本控制、分支管理等等都有了进一步的认知。这里要特别感谢大哥孜孜不倦的教诲我哈哈哈!

在读书分享交流会中我了解到黄淇前辈的“恍然大悟合集”,那么希望自己也可以以这样的方式去学习和整理总结在前端路上的一些“恍然大悟”知识点。于是,这次的技术感想便有了自己以下的“恍然大悟”。

1.Git是分布式的版本控制系统,区别于SVN的集中式版本控制系统。两者各有各的好处和弊端,但git是相对更加快速、简单的,如今也更加流行。

2.git中的工作区和暂存区的两个概念非常重要。工作区相对于版本库,通过 git add把工作区的存储到版本库中的stage中,而暂存区stage通过git commit把修改提交到版本库的分支上。Stage暂存区和分支都存在于版本库中。具体如图。

3.git会为我们自动创建一个master分支,以及指向master的一个指针HEAD,指向当前分支。当你使用git branch切换分支后,HEAD指针会指向该分支。通过git reset 可以回退版本,HEAD表示当前版本,HEAD~表示上一版本,上上版本就是HEAD~~,上一百个是HEAD~。

4.当你想回退到某个具体的版本时,或者回退之后又想回到之前的版本,可以通过git log指令或者git reflog查看提交的commit id 然后通过id回到那个版本

5.git diff 可以让你看到版本提交之间有哪些修改了的地方。在webstorm的可视化界面中这个修改就能很好的查看(webstorm牛逼!)

6. git checkout 不仅可以切换分支,还可以撤销修改。加入你的代码没有add,那么git checkout --filename就是把你的修改撤销到版本库中一样的代码,假如你的代码add或者commit了,那这个指令就是撤销修改回到添加暂存区后的状态。总之就是让你的代码回到最近的git add和git commit的状态

7.因为git checkout有多种功能容易混淆,所以git也推荐使用git switch来切换分支

8.git merge 默认使用fast-forward模式,这样合并后加入删除了分支不会保留分支信息,使用—no-ff模式可以保留信息

8.在分支策略中,master应该是非常稳定的,应该是仅用来发布新版本,可以新建一条dev分支专门用于开发,团队在dev中新建分支来分工合作。

9.当你在一条分支上工作却要临时去另一条分支修复bug时,可以git stash保留工作现场,当bug修复好了可以用git stash apply来回到现场。另外为了避免在一条分支上的改动重复工作到其他分支,可以使用git cherry-pick <commit> 命令来“复制”修改

10.用git rebase结合vi操作来合并commit提交,将本地未push的分叉提交历史整理成直线。

11.git分支管理是重中之重,也是git的精髓,要好好学习!

以上就是我目前对git的一些感悟。另外通过反思我觉得之前的“技术感想”不太像是“感想”,侧重点更接近于“整理”,以后希望自己更加以“感想”的方式去记录自己的学习成长历程。

共勉,加油!

Git 实习一个月恍然大悟合集的更多相关文章

  1. [Erlang 0105] Erlang Resources 小站 2013年1月~6月资讯合集

    很多事情要做,一件一件来; Erlang Resources 小站 2013年1月~6月资讯合集,方便检索.      小站地址: http://site.douban.com/204209/     ...

  2. [Erlang 0122] Erlang Resources 2014年1月~6月资讯合集

    虽然忙,有些事还是要抽时间做; Erlang Resources 小站 2014年1月~6月资讯合集,方便检索.      小站地址: http://site.douban.com/204209/   ...

  3. [Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集

    Erlang Resources 小站 2013年7月~12月资讯合集,方便检索.     附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集    小站地 ...

  4. git异常操作解决办法合集

    1. git add .后发现提交错误,想撤销 git reset head 文件名-----撤销某个文件 git reset head --hard 强制撤销当前的所有操作到上次提交的版本 2. g ...

  5. 一个mac软件合集的网站

    https://github.com/jaywcjlove/awesome-mac/blob/master/README-zh.md

  6. FFmpeg示例程序合集-Git批量获取脚本

    此前做了一系列有关FFmpeg的示例程序,组成了<FFmpeg示例程序合集>,其中包含了如下项目:simplest ffmpeg player:                  最简单的 ...

  7. Git 经常使用命令合集

    ====== Git 经常使用命令合集 ====== === 1.Git 文档 ===     Git 中文文档观看地址:http://git.oschina.net/progit/      === ...

  8. git常用代码合集

    git常用代码合集 1. Git init:初始化一个仓库 2. Git add 文件名称:添加文件到Git暂存区 3. Git commit -m “message”:将Git暂存区的代码提交到Gi ...

  9. Power BI 3-4月功能更新培训合集

    ​Power BI 3-4月功能更新培训合集 Power BI每月功能的更新,都有很多大咖精辟解读,我们一直也都是积极中期待,相信所有P友如是或更甚. 视频学习可以结合微软Power BI 3-4月文 ...

随机推荐

  1. Python3学习笔记(十八):文件上传和下载

    文件上传 以人人网上传头像为例,用Fiddler抓取的上传头像接口报文如下 上传头像图片代码: import requests upload_url = 'http://upload.renren.c ...

  2. $\LaTeX$数学公式大全8

    $8\ Miscellaneous\ symbols$ $\infty$ \infty $\nabla$ \nabla $\partial$ \partial $\eth$ \eth $\clubsu ...

  3. zookeeper系列(三)zookeeper的使用--开源客户端

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败, 原创博客地址:http://www.cnblogs.com/leesf456/ 奇文共欣赏,大家共同学习进步. 一.前言 上一篇博客已 ...

  4. C++入门经典-例8.6-多重继承的构造顺序

    1:单一继承是先调用基类的构造函数,然后调用派生类的构造函数,但多重继承将如何调用构造函数呢?多重继承中的基类构造函数被调用的顺序以派生表中声明的顺序为准.派生表就是多重继承定义中继承方式后面的内容, ...

  5. LVS配置

    今天面试时,突然被面试官问到怎样用shell命令搞定某个文件夹下java代码行数的统计. 想了一下,基本思路就是找到这个文件夹下面的所有java文件,然后每个文件统计一下代码,外层套个for循环,叠加 ...

  6. java连接mysql出现The server time zone value '�й���׼ʱ��' is unrecognized or represents more than...

    在连接的配置文件中,指定数据库位置的末尾加上serverTimezone=UTC ```yml url: jdbc:mysql://localhost:3306/app?serverTimezone= ...

  7. 浅析SPDY

    1.什么是SPDY? 简单地说,在SSL层上增加一个SPDY会话层,以在一个TCP连接支持并发的HTTP请求.也就是他能通过复用仅仅一条(或几条)TCP连接,在客户端与服务器间发送几十个请求或回应. ...

  8. koa 基础(四)get 传值 以及获取 get 传值

    1.get 传值 以及获取 get 传值 app.js /** * get 传值 以及获取 get 传值 */ // 引入模块 const Koa = require('koa'); const ro ...

  9. DP&图论 DAY 6 上午

    DP&图论  DAY 6  上午 双连通分量 从u-->v不存在必经边,点 点双连通分量 边双连通分量 点/边双连通分量缩点之后变成一个树 找连通块的时候不越过割点或者桥 P3469 [ ...

  10. MySQL获取距离

    BEGIN ) ), ) ) ) ) ),))),); END