GIT的基本使用及GIT-FLOW工作流

GIT的基本使用

GIT是什么?

分布式版本控制系统, 分布式与集中式(csv、svn)的区别?

GIT能做哪些事情,谁在用GIT?

  • 代码版本控制,各大互联网公司都在使用
  • 文件版本控制
  • Github、Gitlab、码云等代码托管平台

GIT如何安装

windows、linux、mac

GIT的基本命令

  • Git工作方式的理解?
  1. 工作目录、暂存储目录(索引)、仓库的概念
  2. 仓库服务器的理解
  3. 命令行操作
  • 基本操作
  1. 创建和检出仓库
    创建文件夹进入,执行 git init
    检出本地仓库 git clone /path/to/repository,检出远程仓库 git clone xxx@host:/path/to/xx
  2. 工作流
    工作都是工作在本地仓库,本地仓库有三块组成
    【工作目录】 —(add)–> 【暂存区(Index)】—(commit)–> 【仓库(HEAD)】
  3. 添加和提交
    1. git add <filename>
    2. git add *
    3. git commit -am all commit
  4. 改动推送
    git push origin master 将本地仓库(HEAD) push到远端仓库
    git remote add origin <server> 如果没有克隆现有仓库,将仓库链接到某个远程服务器

  5. 分支
    分支是用来绝缘开发的,创建仓库时master时默认分支,在其他分支上开发,然后合并到master分支

    1. git checkout -b feature_xxx 创建一个新分支
    2. git checkout master 切换到某个分支上
    3. git branch -d feature_xx 删除一个分支
    4. git push origin feature_xx 推送到远程仓库供别人可见
    5. git pull origin feature_xxx远程分支修改跟新到最新
    6. git merge squash xxx 合并分支
  6. 文件提价、检出、回滚操作 图解Git
    a. git add files 当前文件放入暂存区域
    b. git commit 暂存区生成快照并提交
    c. git reset —files 撤销最后一次 git add files, git reset撤销所有暂存区文件
    d. git checkout —files 文件从暂存区域复制都工作目录,git checkout HEAD —files从仓库检出文件
    e. diff命令,比对文件变化

  7. 远程仓库管理
    a. 查看当前的远程仓库 git remote、git remote -v 如果有多个远程仓库都会列出
    b. 增加一个远程仓库 git remote add pb git://github.com/paulboone/ticgit.git
    c. 推送数据到远程仓库 git push remote-name
    d. 查看远程仓库信息 git remote show [remote-name]
    e. 远程仓库移除 git remote rm [remote-name]

GIT使用实际场景

  1. 使用GIT做一次开发并提交
  2. 双人协作开发流程
  3. 创建一个远程仓库
    1. 开发机 mkdir test; cd test; git init
    2. 服务器 mkdir test.git; cd test.git; git init bare ,注意目录权限
    3. 开发机 git remote add origin git@xxx.xxx.xxx.xxx:/opt/git/test.git
    4. 开发机 git remote show origin 查看状态
    5. 开发机 git push origin master
    6. 其他开发机 git clone git@xxx.xxx.xxx.xxx:/opt/git/test.git
    7. 开发

GIT的使用教程及资源

GIT-FLOW的开发流程

GIT-FLOW是什么?

GIT-FLOW是一组一组打包了GIT命令的工具,GIT-FLOW提供的扩展命令可以按照一定的顺序完成一系列基础的命令。GIT-FLOW也可以理解为一个标准的GIT操作流程

GIT-FLOW流程图


主要分支:

  1. master:一直处在production-ready状态
  2. develop:最新的下次要发布的开发状态分支

支援性分支:

  1. feature branches:开发新功能的分支,从develop切出完成后merge至develop
  2. release branches:准备要release的版本,只修改bug,从develop切出完成后merge至develop、master
  3. hotfix branches:等不及release版本发布急需修复的线上bug,从1. 1. master切出,完成后合并master、develop

适合我们的开发流程


主要分支:

  1. master:一直处在production-ready状态

支援性分支:

  1. feature branches:开发功能分支,从master切出,测试完成后合并至master
  2. hotfix branches:hotfix分支,从master切出,合并至master