1、在Windows中安装完git后,需要进行一下配置:
$ git config --global user.name "zhangliang"
$ git config --global user.email "1424@qq.com"
2、用下列命令可检查上述设置是否成功:
$ git config --global --list
user.name=zhangliang
user.email=1424@qq.com
3、若想在命令行窗口中使用不同的颜色显示不同类型的内容,请将“color.ui"的值设为”auto"或"always",具体命令为:
$ git config --global color.ui "auto"
4、打开在线帮助文档
$ git help config
5、查看历史信息
在命令行窗口的Git工作目录树下键入gitk就可以启动,在gitk命令中添加--all参数,可以显示全部分支的历史,而不仅仅

是当前分支的历史。
6、创建版本库
可以在想放项目源代码的位置创建一个目录(可以用命令行创建),并进入到这个目录,然后输入命令git init即可。
$ mkdir mysite
$ cd mysite
$ git init
7、把文件添加到版本库的索引(index):
$ git add index.html
(其中index.html文件可以手动在目录下创建编辑也可以用touch index.html + vim index.html命令行实现)
8、提交
$ git commit -m "add in hello world HTML"
(其中,-m的作用是本次提交留言,若是多条留言,可以继续添加-m "XXX")
9、查看提交信息
$ git log (-2)
后面括号部分可以不加,数字代表查看几条信息。命令git log输出的提交名称的前七位字符和命令git commit输出的相同。
10、查看当前工作目录树状态
$ git status
11、git中有三个地方可以存放代码:第一个地方为工作目录树,编辑文件时可以直接在这里操作;第二个是索引(index),

也就是暂存区(staging area),暂存区是工作目录树和版本库之间的缓冲区;第三个也就是最终的一个,是版本库。暂存区

中存放的是准备提交到版本库中的修改。
12、创建分支的命令是git branch,该命令需要两个参数:新分支名称和父分支名称,新分支基于已经存在的父分支,将父分

支下的文件都拷贝一份到新建的分支下。
$ git branch RB_1.0 master
13、提交全部修改过的文件:
$ git commit -a
14、查看当前所在的分支
git branch -vv
(然后能看到标亮的那个分支即是,或者在命令行窗口中能看到一个“()”里的分支名称即为当前分支)
15、切换分支
$ git checkout RB_1.0
switched to branch "RB_1.0"
16、创建+切换分支:
git checkout -b <name>
git checkout -b <name> master
注意上述第二条命令中的第三个参数告诉git,不是从当前分支而是从主分支上创建新分支即基于主分支的末梢创建新分支,

也可以传其他的分支名,这样就可以在指定的任意分支上创建新分支。
17、删除分支:
git branch -d <name>
18、合并某分支到当前分支:
git merge <name>
19、更改分支名称:
git branch -m master mymaster
有三个参数,-m参数告诉git要执行分支移动(重命名)操作,另外两个参数分别是分支原名称和新名称。
20、显示本地版本库中所有的本地分支名称
git branch
21、有些版本控制系统在创建分支时会将所有的文件复制到新目录中,git可不这么做,它只把分支创建后的修改记录在这条

分支上。这么说其实并不完全准确,实际上,git的分支只记录和跟踪该分支末梢的那个提交,因为沿这个版本回溯,可以找

到该分支完整的历史轨迹。
22、使用分支时,最难确定的是何时创建分支,这是一门艺术。
试验性修改+增加新功能+Bug修复
23、合并分支
直接合并:首先切换到合并操作的目标分支,然后用git merge name1 其中,name1是指想要合并到当前分支的源分支名称。
压合合并:首先切换到合并操作的目标分支,然后用git merge --squash name1 将另一条分支上的全部提交压合成当前分支

上的一个提交。此时,name1分支上的提交已经合并到当前工作区并暂存,但还没有作为一个提交提交到版本库中。再利用“

正常”提交流程提交到版本库中即git commit……。
捡选合并:将一条分支上的一条提交合并到当前分支,git cherry-pick 321d76f其中,321d76f是提交的名称。
拣选合并多个提交时,利用git cherry-pick -n 321d76f 然后会提示finished one cherry-pick,请注意,完成本次拣选操

作时git停了下来,而不是立即提交;接着可以进行下一个拣选操作,一旦拣选完需要的各个提交,就可一并提交改动。接下

来继续进行提交操作,但不要使用-m参数,即git commit 编辑器会使用刚刚拣选的提交的提交留言,作为现在的提交留言。
24、合并发生冲突时,<<<<<<<<<<和>>>>>>>>>>代表两部分内容。第一,<<<<<<<<<<后面跟随的是当前分支中的代码,而

>>>>>>>>>>之前的则是另一条分支上的代码。第二,在<<<<<<<<<<和>>>>>>>>>>行文件名之前,是所在分支的名称。
25、删除分支:
git branch -d name
但当分支未进行合并而要要删除时,需要用git branch -D name进行强制删除。
26、分支重命名
git branch -m contact contacts代表将分支名称改为contacts。
参数-m不会覆盖已有分支名称,所以新分支名称也即命令行中的第二个分支名称必须是唯一的,
将参数改为-M就可以覆盖已有分支名称了,但这种操作要小心使用。

git命令(版本控制之道读书笔记)的更多相关文章

  1. 第1章 Git的版本控制之道

    版本控制系统(Version Control System,VCS)可以帮助我们记录和跟踪项目中各文件内容的修改变化. 1.1 版本库 版本库(Repository)是版本控制系统用来存储所有历史数据 ...

  2. [Git01]Pro Git 第三章 分支 读书笔记

    [git]分支   Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来. Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在 ...

  3. 我读<代码整洁之道>--读书笔记整理

    第一章 整洁代码 "我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的,整洁的代码总是看起来像是某位特别在意他的人写的.几乎没有改进的余地,代码作者设么都想到了,如果你企图改进它 ...

  4. C语言编程之道--读书笔记

    C语言语法 const int nListNum =sizeof(aPrimeList)/sizeof(unsigned);//计算素数表里元素的个数 1:#define INM_MAX 32767 ...

  5. <<google软件测试之道>>读书笔记

    以前一直从开发的角度来看待测试,看完这本书以后感觉错了,难怪之前公司的测试一直搭建不起来 1.开发人员,开发测试人员,测试人员 * 开发人员负责开发 * 开发测试人员近距离接触代码,负责编写测试用例, ...

  6. <微软的软件测试之道>读书笔记3

    一.自动化的标准步骤: 1.环境初始化,并检查环境是否处于正确的状态,能否开始测试 2.执行步骤 3.判断结果,并将结果保存到其它地方以供检查分析 4.环境清理,清理本用例产生的垃圾(临时文件.环境变 ...

  7. VC++编程之道读书笔记(2)

    第三篇 技术细节 第七章:细说开发人员必知必会的39个开发细节 细节36:单例模式的应用 在开发程序时,往往需要在整个工程中只需要一个类的实例.而这个实例一旦被创建就不能被其他的实例再创建了,通常我们 ...

  8. VC++编程之道读书笔记

    第二篇 缪误21:位图数据是按照红绿蓝顺序存储的 大家都知道位图的颜色是由红.绿.蓝三个分量构成的,但是位图颜色数据存储的方式则不是按照这个顺序存储的,而是按照蓝.绿.红的顺序存储的.并且对于真彩色位 ...

  9. 企业IT架构转型之道 读书笔记-1.阿里巴巴集团中台战略引发的思考

    前言 1.为什么选择看这本书 2.Supercell公司的开发模式 3.“烟囱式”系统建设模式弊端,及产生这种现象的原因 4.IT人员在企业信息中心的组织职能 一.为什么选择看这本书 多日没有更新博客 ...

随机推荐

  1. [Android] Android 用于异步加载 ContentProvider 中的内容的机制 -- Loader 机制 (LoaderManager + CursorLoader + LoaderManager.LoaderCallbacks)

    Android 用于异步加载 ContentProvider 中的内容的机制 -- Loader 机制 (LoaderManager + CursorLoader + LoaderManager.Lo ...

  2. C#控件绘图恢复最小化后不自动重绘问题

    最近在学习C#中的绘图,使用控件绘图时发现一个现象:即使将绘图代码写在了Paint方法中,将窗口最小化再恢复后依然不会重绘,而只有将鼠标移到控件上或者有其他改变窗口的行为时才会重绘. 一开始以为是自己 ...

  3. spring注解第01课 @Configuration、@Bean

    一.原始的 xml配置方式 1.Spring pom 依赖 <dependency> <groupId>org.springframework</groupId> ...

  4. ASP.NET MVC之视图传参到控制器的几种形式

    1. 传递数组 $(function () { var value = ["C#", "JAVA", "PHP"]; $("inp ...

  5. 【杂】指针,*,&

    一个小程序解释指针变量的作用: #include<iostream> #include"cww.h" void cloud(int *); using namespac ...

  6. volatile的使用场景

    单词解释: 乱序执行:指CPU对代码的执行顺序进行乱序优化,但保证各执行代码单元的顺序按指令顺序排列.以达到充分利用处理器的各处理单元的目的.(可以理解成:一个任务有不同的执行单元,这些单元之间有一定 ...

  7. ANSI C、ISO C、Standard C联系与区别

    做C语言开发的人,经常会遇到“ANSI C”.“ISO C”与“Standard C”三种术语,经常会让人傻傻分不清楚.博主之前按也是搞不清三者的关系,于是某天下定决心,一定要搞清楚三者的关系,先百度 ...

  8. 《Javascript高级程序设计》第六章笔记整理

    一.创建对象的方法(6种) 1.工厂模式 即用函数来封装以特定接口创建对象的细节. function createPerson(name,age,job){ var o = new Object(); ...

  9. mysql 分库分表 ~ 方案选择浅谈

    一 简介:分库分表的理解二 具体: 1 当由于单台DB业务增长导致的服务器压力时,就必须横向进行扩展              2 本文仅从中间层观点进行分析三 现有方案  方案1 sharding家 ...

  10. jsp映射为其他地址上去 ???

    在web.xml 里面配置servlet不起作用,所以配置jsp,然后在jsp里面跳转到servlet去   ???  第八天中的<08-jsp常用标签.avi> 在web.xml里面先设 ...