刘嵩的小站 神様は乗り越えられる試練しか与えない。

GIT的学习笔记

2017-05-19

做大的工程的时候是需要版本控制系统的。git号称是世界上最好的版本控制系统。一般来说,写一个东西,需要更改很多次,但是一般都不会在一个源文件上改,因为改的次数太多了,改了什么就记不住了,而且,一旦改错了,就退不回去了。

GIT的背景历史

  • 做大的工程的时候是需要版本控制系统的。
  • git号称是世界上最好的版本控制系统。
  • 一般来说,写一个东西,需要更改很多次,但是一般都不会在一个源文件上改,因为改的次数太多了,改了什么就记不住了,而且,一旦改错了,就退不回去了。
  • 这个问题曾经困惑了linus,1991年的时候。
  • bitkeeper 商业版本系统,上级公司是bitmover的下级,是git的商业原型。
  • 2005年,linus用了两周的时间写了git
  • GitHub项目上线。
  • git的安装就到网上来找到安装包就可以使用了
  • 大多数的网上的教程都是交使用图形界面
  • 这个学习笔记主要学习git原生态的命令行模式,不打算奖git的界面模式
  • 主要的原因是大多数界面模式下是能实现git的常用命令,而命令行模式拥有git的所有命令。
  • 学会命令行模式,界面模式自然会用
  • 既然都学到进阶的极客教程了,就不能厌烦命令行操作了

GIT的说法

  • git的设计让使用者觉得自己比想象中的笨—andrew morton
  • 不要高估自己的智商,不要低估git的能耐!

GIT记录的是什么

  • svn记录的是每一次版本的变动的内容
  • git则是将每个版本独立保存
  • 普通的程序员是把很多的时间放在写代码和调bug上,而优秀的程序员是将更多的经历放在设计上

GIT的三棵树

  • 工作区域
  • 暂存区域
  • git仓库

GIT的工作流程

  • git的工作流程一般是酱紫的
    1. 在工作目录中添加,修改文件
    2. 将需要惊醒版本管理的文件放入暂存区域
    3. 将暂存区域的文件提交到git仓库
  • git的文件有三种状态
    1. 已修改(modified)
    2. 已暂存(staged)
    3. 已提交(committed)

GIT的实战

-将工作目录的文件放到git仓库只需要两步

git add 文件名

git commit -m “你干啥了”

查看状态

我们是码农啊,双手不能离开键盘的

git status

回到过去

reset

checkout

reset 命令的选项

git reset —mixed HEAD~

移动head的指向,将其指向上一个快照

将head移动后的指向的快照回滚到暂存区

git reset —soft HEAD~

移动head 的指向,将其指向上一个快照

git reset —hard HEAD~

将移动head的指向,将其置乡上一个快照

将head移动后的指向的快照回滚到暂存区域 将暂存区域的温江还原到工作目录

比较不同

git diff 可以比较文件,版本的不同的地方

修改最后一次提交

git amend 修改最后一次commit的说明 使用类似vi的键盘绑定,退出用q加上!号 可以直接再接一个m,加上新的commit git –amend -m “新的commit”

删除文件

git rm 加上文件名称,可以删除工作目录和暂存区域的文件

git reset 恢复原来的快照

如果要彻底删除仓库里的文件就需要切掉快照

重命名文件

git mv 这个其实就是和linux的命令差不多的

创建和切换分支

分支是git最重要的特性。

假设现在的大项目已经上线了,但是要添加一下新的功能,又为了保险起见不能直接在项目上更改。

这个时候就需要分支。

git是如何创建分支的呢?

git branch 分支

切换分支

git chechout 分支

GIT的合并和分支

话说天下大势合久必分 分久必合

GIT本来只有一条master,但是这事不够的。

及时中的开发分支可能有master hotfix release develop festure 等等版本,他们因为某些原因比如赶着时间上线,不能一下子把所有的特性都放到master里。而是等到下一个版本中在添加,这个时候就需要分枝。

创建并切换到新的分支:

git branch -b 分枝名称

切换回主分支:

git checkout master

合并分支:

git merge 分支名称

删除分支

git branch -d 分支名称


相似文章

内容导航