git使用图解
使用前
- 安装git
- 配置name 和 email
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
使用中
本地单用户工作流

- 初始Git管理仓库
git init
- 添加文件到Git仓库
git add readme.txt
- 提交文件到Git仓库
git commit -m "upload readme file"
远程单用户工作流

- 克隆一个远端Git版本库 or 关联本地版本库
git clone https://github.com/cizel/soft_backup
git remote add origin git@github.com:cizel/soft_backup.git
- 添加文件到Git仓库
git add readme.txt
- 提交文件到Git仓库
git commit -m "upload readme file"
- 上传到远端Git仓库
git push origin master
多用户分支使用策略
基本语法
查看分支:
git branch创建分支:
git branch <name>切换分支:
git checkout <name>创建+切换分支:
git checkout -b <name>合并某分支到当前分支:
git merge <name>删除分支:
git branch -d <name>分支的使用

Git创建Develop分支的命令:
git checkout -b develop master
将Develop分支发布到Master分支的命令
# 切换到Master分支
git checkout master
# 对Develop分支进行合并
git merge --no-ff develop
tip: --no-ff
未使用 --no-ff 使用快速合并的策略

使用 --no-ff 会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。

- 分支的管理策略
一、主分支Master
首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。

二、开发分支Develop
主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。

三、 功能分支
第一种是功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。

四、预发布分支
预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-*的形式。
五、修补bug分支修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用fixbug-*的形式。

遇到问题
参看与对比
# 告诉你有文件被修改过
git status
#可以查看修改内容
git diff
版本前进与后退
# 查看提交历史,以便确定要回退到哪个版本
git log
# 查看命令历史,以便确定要回到未来的哪个版本
git reflog
修改版本
git reset --hard commit_id
撤销commit
git reset --hard commit_id
# 如果使用远端,git push 的情况
git push origin HEAD --force
git revert和git reset的区别
- git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
- 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
- git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
git fetch和git pull的区别
- git fetch:相当于是从远程获取最新版本到本地,不会自动merge
- git pull:相当于是从远程获取最新版本并merge到本地,git pull相当于git fetch + git merge
git使用图解的更多相关文章
- Git_Windows 系统下Git安装图解
Windows 系统下Git安装图解 心得 :很成功~ 简单来说Git是一个免费的.开源的版本控制软件,从功能上讲,跟我们比较熟悉的Subversion(SVN)这类版本控制软件没什么两样.由于工 ...
- 转:Git_Windows 系统下Git安装图解
原文地址:http://blog.csdn.net/jiguanghoverli/article/details/7902791 Windows 系统下Git安装图解 简单来说Git是一个免费的.开源 ...
- ###Git 基础图解、分支图解、全面教程、常用命令###
一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...
- 用SourceTree轻巧Git项目图解
用SourceTree轻松Git项目图解 这篇文档的目的是:让使用Git更轻松. 看完这篇文档你能做到的是: 1.简单的用Git管理项目. 2.怎样既要开发又要处理发布出去的版本bug情况. Sour ...
- git 命令图解
git 命令图解 初始化版本库 git config user.name "lsgx" git config user.email "lsgxthink@163.co ...
- (转)Eclipse和MyEclipse安装和使用git(egit)图解笔记
Eclipse.MyEclipse使用git插件(egit)图解 (转)原文来自:http://www.xuebuyuan.com/446322.html 在开发Java.JavaEE等相关程序时,我 ...
- git原理图解
本文背景,在实际项目中使用git已有一年,发现不少同事虽然会使用常用git指令,但并不理解每个指令对应的作用原理.今天静下心总结下git 的基本理解:代码的存在区域:本文以实际项目出发,理清使用git ...
- Windows 系统下Git安装图解
简单来说Git是一个免费的.开源的版本控制软件,从功能上讲,跟我们比较熟悉的Subversion(SVN)这类版本控制软件没什么两样.由于工作的需求,需要在WinXP下安装git配合团队完成相应的工作 ...
- Git安装图解
msysgit是Windows版的Git,提供了命令行操作 下载地址:http://msysgit.github.io/
随机推荐
- QOdbc 读写 excel
).toString(); ).toInt(); qDebug()<< name << age <<endl; } // 关闭数据库 db.close(); } i ...
- ERROR 1130: Host is not allowed to connect to this MySQL server
解决远程连接mysql错误1130代码的方法 今天在用远程连接Mysql服务器的数据库,不管怎么弄都是连接不到,错误代码是1130,ERROR 1130: Host 192.168.2.159 is ...
- asp.net MVC 学习笔记
1.可以看出每个区域Areas里都是个mini的MVC项目,Controller.Models.Views一个都不缺,还多了一个AdminAreaRegistration类 2.MVC 将URL映射到 ...
- easyui-combobox绑定json数据
用的C#语言 后台取数据,就不用废话了,先看看序列化json数据 /// <summary> /// 对象转JSON /// </summary> /// <param ...
- Android Studio添加应用作为依赖时报错Error:Dependency MonthText:xlistview:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency. File: 及其解决方案
Error:Dependency MonthText:xlistview:unspecified on project app resolves to an APK archive which is ...
- Toolbar 和 CollapsingToolbarLayout一起使用时menu item无点击反应解决办法
昨天一直在琢磨为什么Toolbar和CollapsingToolbarLayout一起使用时menu item无点击放应的原因,后来在stackoverflow上一条回答,说可能是Toolbar的背景 ...
- Win8.1系统下安装nodeJS
Nodejs简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.js ...
- noip2015 提高组day1、day2
NOIP201505神奇的幻方 试题描述 幻方是一种很神奇的N∗N矩阵:它由数字 1,2,3,……,N∗N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方 ...
- (转) mac 下的eclipse 配置 python 2.7
原地址: http://marsfreewill.blogspot.it/2012/08/mac-ospythonpydeveclipse.html 在MAC OS上配置Python开发环境(Py ...
- 创建兼容的XHR对象
function createXHR () {//创建XMLHttpRequest对象 var xhr=null; if(window.XMLHttpRequest){ createXHR=creat ...