使用前

  1. 安装git
  2. 配置name 和 email
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

使用中

本地单用户工作流

  1. 初始Git管理仓库
git init
  1. 添加文件到Git仓库
git add readme.txt
  1. 提交文件到Git仓库
git commit -m "upload readme file"

远程单用户工作流

  1. 克隆一个远端Git版本库 or 关联本地版本库
git clone https://github.com/cizel/soft_backup
git remote add origin git@github.com:cizel/soft_backup.git
  1. 添加文件到Git仓库
git add readme.txt
  1. 提交文件到Git仓库
git commit -m "upload readme file"
  1. 上传到远端Git仓库
git push origin master

多用户分支使用策略

  1. 基本语法

    查看分支: git branch

    创建分支: git branch <name>

    切换分支: git checkout <name>

    创建+切换分支: git checkout -b <name>

    合并某分支到当前分支: git merge <name>

    删除分支: git branch -d <name>

  2. 分支的使用

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分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。

  1. 分支的管理策略

一、主分支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的区别

  1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
  2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
  3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

git fetch和git pull的区别

  1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
  2. git pull:相当于是从远程获取最新版本并merge到本地,git pull相当于git fetch + git merge

git使用图解的更多相关文章

  1. Git_Windows 系统下Git安装图解

    Windows 系统下Git安装图解  心得  :很成功~ 简单来说Git是一个免费的.开源的版本控制软件,从功能上讲,跟我们比较熟悉的Subversion(SVN)这类版本控制软件没什么两样.由于工 ...

  2. 转:Git_Windows 系统下Git安装图解

    原文地址:http://blog.csdn.net/jiguanghoverli/article/details/7902791 Windows 系统下Git安装图解 简单来说Git是一个免费的.开源 ...

  3. ###Git 基础图解、分支图解、全面教程、常用命令###

    一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...

  4. 用SourceTree轻巧Git项目图解

    用SourceTree轻松Git项目图解 这篇文档的目的是:让使用Git更轻松. 看完这篇文档你能做到的是: 1.简单的用Git管理项目. 2.怎样既要开发又要处理发布出去的版本bug情况. Sour ...

  5. git 命令图解

    git 命令图解   初始化版本库 git config user.name "lsgx" git config user.email "lsgxthink@163.co ...

  6. (转)Eclipse和MyEclipse安装和使用git(egit)图解笔记

    Eclipse.MyEclipse使用git插件(egit)图解 (转)原文来自:http://www.xuebuyuan.com/446322.html 在开发Java.JavaEE等相关程序时,我 ...

  7. git原理图解

    本文背景,在实际项目中使用git已有一年,发现不少同事虽然会使用常用git指令,但并不理解每个指令对应的作用原理.今天静下心总结下git 的基本理解:代码的存在区域:本文以实际项目出发,理清使用git ...

  8. Windows 系统下Git安装图解

    简单来说Git是一个免费的.开源的版本控制软件,从功能上讲,跟我们比较熟悉的Subversion(SVN)这类版本控制软件没什么两样.由于工作的需求,需要在WinXP下安装git配合团队完成相应的工作 ...

  9. Git安装图解

    msysgit是Windows版的Git,提供了命令行操作 下载地址:http://msysgit.github.io/

随机推荐

  1. html进阶css(3)

    css的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许格式不仅应用于某个特定html标签元素,而且应用于其后代. <!doctype html> <html> ...

  2. gdal_merge.py

    1 gdal_merge.py: 合并(Merge)/镶嵌(Mosaic)工具.要求图像必须是相同坐标系统.具有相同的波段数:可以不同分辨率,可以有重叠区域(后加入图像覆盖先加入的图像). 注意:只能 ...

  3. ASP.NET中的Request和Respone对象的使用

            前台<body>中的表单代码: ASP.NET对象有如下几个: 本文从“asp.net中通过from表单submit提交到后台的实例”来谈谈Request和Response ...

  4. Linux串口编程のtermios 结构

    termios 结构是在POSIX规范中定义的标准接口,它类似于系统V中的termio接口,通过设置termios类型的数据结构中的值和使用一小 组函数调用,你就可以对终端接口进行控制. 可以被调整来 ...

  5. FFMPEG视音频解码【一】

    多媒体的时代,得多了解点编解码的技术才行,而ffmpeg为我们提供了一系列多媒体编解码的接口,如何用好这些接口达到自己所需要的目的,这也是一门重要的学问. 要是了解得不够,总是会遇到一堆又一堆问题:网 ...

  6. 自己对WSO2 ESB 见解

    这周没想到要更新什么内容,就把我最近工作接触的WSO2 ESB简单介绍下吧.     前提: 一切文档,知识都要与官方文档为准. WSO2 ESB: http://wso2.com/products/ ...

  7. web 前端 shopnc项目 首页分类一开始做前端,我是拒绝的

    看图别说话 经过几小时的折腾 主要还是靠耐心

  8. sqlsever连接两个不同服务器上的数据库进行查询

    exec sp_addlinkedserver 'LocalSERVER' ,--别名,自己起一个 '' , 'SQLOLEDB' , 'ip' --远程服务器地址 exec sp_addlinked ...

  9. Python之路第十三天,高级(7)-详述数据库一对多,多对多表关系的设计以及如何查询

    一对多表设计和查询方法 #!/usr/bin/env python3 # Author: Zhangxunan from sqlalchemy import create_engine from sq ...

  10. CentOS6.4卸载自带的OpenJDK并安装jdk1.6.21

    #进入系统的terminal,查看当前的jdk版本: shell>java -version #查看安装包 shell>rpm -qa|grep java #将上条命令查出来的结果卸载掉, ...