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/
随机推荐
- html进阶css(3)
css的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许格式不仅应用于某个特定html标签元素,而且应用于其后代. <!doctype html> <html> ...
- gdal_merge.py
1 gdal_merge.py: 合并(Merge)/镶嵌(Mosaic)工具.要求图像必须是相同坐标系统.具有相同的波段数:可以不同分辨率,可以有重叠区域(后加入图像覆盖先加入的图像). 注意:只能 ...
- ASP.NET中的Request和Respone对象的使用
前台<body>中的表单代码: ASP.NET对象有如下几个: 本文从“asp.net中通过from表单submit提交到后台的实例”来谈谈Request和Response ...
- Linux串口编程のtermios 结构
termios 结构是在POSIX规范中定义的标准接口,它类似于系统V中的termio接口,通过设置termios类型的数据结构中的值和使用一小 组函数调用,你就可以对终端接口进行控制. 可以被调整来 ...
- FFMPEG视音频解码【一】
多媒体的时代,得多了解点编解码的技术才行,而ffmpeg为我们提供了一系列多媒体编解码的接口,如何用好这些接口达到自己所需要的目的,这也是一门重要的学问. 要是了解得不够,总是会遇到一堆又一堆问题:网 ...
- 自己对WSO2 ESB 见解
这周没想到要更新什么内容,就把我最近工作接触的WSO2 ESB简单介绍下吧. 前提: 一切文档,知识都要与官方文档为准. WSO2 ESB: http://wso2.com/products/ ...
- web 前端 shopnc项目 首页分类一开始做前端,我是拒绝的
看图别说话 经过几小时的折腾 主要还是靠耐心
- sqlsever连接两个不同服务器上的数据库进行查询
exec sp_addlinkedserver 'LocalSERVER' ,--别名,自己起一个 '' , 'SQLOLEDB' , 'ip' --远程服务器地址 exec sp_addlinked ...
- Python之路第十三天,高级(7)-详述数据库一对多,多对多表关系的设计以及如何查询
一对多表设计和查询方法 #!/usr/bin/env python3 # Author: Zhangxunan from sqlalchemy import create_engine from sq ...
- CentOS6.4卸载自带的OpenJDK并安装jdk1.6.21
#进入系统的terminal,查看当前的jdk版本: shell>java -version #查看安装包 shell>rpm -qa|grep java #将上条命令查出来的结果卸载掉, ...