📄
fe-share
  • fe-share
  • JavaScript
    • Canvas 图片处理
    • Javascript 性能
    • JavaScript 原型(2) - 原型与原型链
    • JavaScript 原型(1) - 构造函数
    • JavaScript - Promise
    • Canvas 灰度
    • ES6 解构赋值
    • Proxy
    • Object.defineProperty()简介
  • Engineering
    • 登录鉴权
    • 缓存
    • Chrome-devtools
    • Docker
    • 技术架构演化
    • Git
    • webpack
    • BS 架构与 CS 架构
    • SVN(Subversion)
    • gulp
    • 前端架构
  • MachineLearning
    • GAN生成对抗网络
    • 虚拟对抗训练
    • 深度度量学习
    • 原型网络
    • 联邦学习
    • 机器学习常见评价指标
    • Transformer算法
    • Self-attention 推荐算法
    • CNN 卷积神经网络
    • 集成学习算法
    • RNN循环神经网络
    • PyTorch安装和基本操作
  • CSS
    • 什么是BFC
  • React
    • React 生命周期
    • Hooks
    • SWR
    • React 数据流
  • 跨端
    • Flutter 介绍
  • Golang
    • Golang 基础
  • Vue
    • nextTick()的使用
    • vue-cli2.x 的使用与项目结构分析
    • Vue响应式原理及总结
    • VueX的使用
    • 记录一个问题的探索过程
  • Node
    • Node 优势
    • Node Stream
    • Node 模块系统
  • AR
    • SceneKit
由 GitBook 提供支持
在本页
  • Git 概述
  • Git 常用命令
  • 版本合并
  • 一个推荐的 Git 工作流
  • 推荐工具

这有帮助吗?

  1. Engineering

Git

Git 概述

Git主要分成3个分区,工作区,暂存区和版本库

工作区即保存后暂未git add的状态 暂存区是git add后未git commit的状态 版本库即git commit后的状态 使用git push可将本地的版本库推送到远程版本库

Git 常用命令

版本合并

  • merge

在将一个分支的修改提交到另一分支时,常用git merge命令,使用git merge会在目标分支创建一个新的commit,这个commit记录了两个分支不同的修改,如果存在冲突,修改先解决冲突,再提交这个commit

  • rebase

  • 不要通过 rebase 操作已经提交到远程仓库的分支,推荐rebase处理只会影响自己的分支

由于每次merge都会生成一个commit,所以在多个分支相互影响的情况下,一个分支的commit可能会比较乱,因为其中大部分都是merge commit的信息。

使用rebase可以将一个分支的某一段提交应用到另一分支上

git rebase [startpointhash] [endpointhash] --onto [branchName]

如果某一个分支分支是完全先于当前分支的,可以使用git rebase [target]来使当前分支同步到另一分支的修改

使用rebase -i [startpointhash] [endpointhash]可以缩减一个分支上的多次commit为一个commit

一个推荐的 Git 工作流

  • master为线上稳定分支,线上环境应该只部署此分支

  • develop分支为产品体验分支,在此分支上可能存在多个feature

  • 当开发一个新的功能时,从master分支checkout出一个新的feature分支,开发完成后merge到develop分支上,在产品预览环境测试,没有问题后将此feature分支合并到master

  • hotfix分支为快速修复bug分支,hotfix是master上checkout出的分支,修复完成后直接merge到master上

推荐工具

  • VsCode GitLen

  • Git Kraken

上一页技术架构演化下一页webpack

最后更新于5年前

这有帮助吗?