Git学习笔记一《版本控制之道-使用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学习笔记一《版本控制之道-使用Git》的更多相关文章
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
- Git学习笔记(四)
一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...
- git 学习笔记6--remote & log
git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git ...
- Git学习笔记---协作的一般流程
一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...
- 【转帖】Git学习笔记 记录一下
本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...
- [转]Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- GIT学习笔记(1):创建版本库
GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出 ...
- GIT学习笔记(5):变基
GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者 ...
- GIT学习笔记(4):远程分支
GIT学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓 ...
随机推荐
- idea 普通 web项目配置启动【我】
首先说这是一个普通的java web项目,没有用到maven. 检出项目: 项目是先用 乌龟svn 在 编辑器外部检出到一个目录下,然后再用 idea的 open 打开这个目录生成的.[因为直接用i ...
- VS 2010解决方案添加头文件和动态库
右键点击项目,选择“properties”, Additional include references:头文件路径,分号隔开. Additional library directories:
- jmeter oracle 多机 jdbc url配置
jmeter oracle 多机 jdbc url配置: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HO ...
- mock.js的使用
安装 npm install mockjs 使用 const Mock = require("mockjs") //格式"属性名|min-max": " ...
- 20181114 Redis
Redis 下载 Windows版本 Windows版本 已经有很久没有更新了,建议还是使用Linux版本 Linux版本 官网下载即可 配置文件 Windows版本 redis.windows.co ...
- Java中Dom解析XML
DOM将整个XML文件加载到内存中,并构建出节点树:应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点.属性等信息:这种方式便于对XML节点的添加修改等,而且解析也很方便,然后它比较耗费内存 ...
- 学习windows编程 day4 之 设置画刷
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...
- golang变量声明
func main() { var a1 int a1 = 1 var a = 1 b := 1 var c, d int c = 1 d = 1 var e, f = 1, 2 g, h := 1, ...
- 转--python之正则入门
原文地址 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法 ...
- 机器学习:Python实现聚类算法(二)之AP算法
1.算法简介 AP(Affinity Propagation)通常被翻译为近邻传播算法或者亲和力传播算法,是在2007年的Science杂志上提出的一种新的聚类算法.AP算法的基本思想是将全部数据点都 ...