git命令(版本控制之道读书笔记)
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章 Git的版本控制之道
版本控制系统(Version Control System,VCS)可以帮助我们记录和跟踪项目中各文件内容的修改变化. 1.1 版本库 版本库(Repository)是版本控制系统用来存储所有历史数据 ...
- [Git01]Pro Git 第三章 分支 读书笔记
[git]分支 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来. Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在 ...
- 我读<代码整洁之道>--读书笔记整理
第一章 整洁代码 "我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的,整洁的代码总是看起来像是某位特别在意他的人写的.几乎没有改进的余地,代码作者设么都想到了,如果你企图改进它 ...
- C语言编程之道--读书笔记
C语言语法 const int nListNum =sizeof(aPrimeList)/sizeof(unsigned);//计算素数表里元素的个数 1:#define INM_MAX 32767 ...
- <<google软件测试之道>>读书笔记
以前一直从开发的角度来看待测试,看完这本书以后感觉错了,难怪之前公司的测试一直搭建不起来 1.开发人员,开发测试人员,测试人员 * 开发人员负责开发 * 开发测试人员近距离接触代码,负责编写测试用例, ...
- <微软的软件测试之道>读书笔记3
一.自动化的标准步骤: 1.环境初始化,并检查环境是否处于正确的状态,能否开始测试 2.执行步骤 3.判断结果,并将结果保存到其它地方以供检查分析 4.环境清理,清理本用例产生的垃圾(临时文件.环境变 ...
- VC++编程之道读书笔记(2)
第三篇 技术细节 第七章:细说开发人员必知必会的39个开发细节 细节36:单例模式的应用 在开发程序时,往往需要在整个工程中只需要一个类的实例.而这个实例一旦被创建就不能被其他的实例再创建了,通常我们 ...
- VC++编程之道读书笔记
第二篇 缪误21:位图数据是按照红绿蓝顺序存储的 大家都知道位图的颜色是由红.绿.蓝三个分量构成的,但是位图颜色数据存储的方式则不是按照这个顺序存储的,而是按照蓝.绿.红的顺序存储的.并且对于真彩色位 ...
- 企业IT架构转型之道 读书笔记-1.阿里巴巴集团中台战略引发的思考
前言 1.为什么选择看这本书 2.Supercell公司的开发模式 3.“烟囱式”系统建设模式弊端,及产生这种现象的原因 4.IT人员在企业信息中心的组织职能 一.为什么选择看这本书 多日没有更新博客 ...
随机推荐
- 【剑指offer】Java版代码(完整版)
原文地址:https://blog.csdn.net/baiye_xing/article/details/78428561 一.引言 <剑指offer>可谓是程序猿面试的神书了,在面试中 ...
- SpringBoot系列: Spring MVC视图方法的补充
SpringMVC 视图方法的参数, 已经在这个文章中写得非常清楚了, 链接为 https://www.cnblogs.com/morethink/p/8028664.html 这篇文章做一些补充. ...
- CSS魔法(五)项目实战
三大标签--title.description.keyword 淘宝网 <title>淘宝网 - 淘!我喜欢</title> <meta name="spm ...
- Android MediaPlayer播放raw资源封装类
import android.content.Context; import android.media.MediaPlayer; import xxxx.R; public class MediaU ...
- 【省时的 IDEA 配置 】 JRebel Mybatis Problems Spring Auto-Scan
在 Java Web 开发中, 一般更新了 Java 文件后要手动重启 Tomcat 服务器, 才能生效, 浪费不少生命啊, 自从有了 JRebel 这神器的出现, 不论是更新 class 类还是更新 ...
- 集成JUnit测试错误java.lang.IllegalStateException: Failed to load ApplicationContext
1 详细错误信息 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.t ...
- webpack配置模块的查找范围
一般我们的入口文件会引入一下公共的样式文件,比如这样 import './style' 但是这个样式文件并不会生效呀,因为你的写法不对鸭,你要把文件的后缀名也要写 import './style.cs ...
- gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化
参考链接 : http://blog.csdn.net/qq_31108501/article/details/51842166 gcc -D选项的作用,声明宏 参考链接: http://blog. ...
- JSON字符串解析成JSON数据格式
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- Log4Net配置日志
1.log4net 1)新建一个Net空白项目,在引用出点击管理NuGet程序包,搜索log4net并安装 2)建立log4net.config配置文件 在configuration里面添加如下代码, ...