banner
RustyNail

RustyNail

coder. 【blog】https://rustynail.me 【nostr】wss://ts.relays.world/ wss://relays.world/nostr

Git相关

GIT#


分区#

  • 工作区

电脑里能看到的目录

  • 暂存区

git add后工作区修改过的文件会添加到暂存区

  • 版本区

git commit后,暂存区的文件会打包好作为一次提交放到版本区中


git 分区图例#

1352126739_7909.jpg

基本操作#

文件操作类#
  • git add xxxxxx.java /folder
  • git commit -m -v
  • git stash pop
  • git reset head --hard

git stash/pop#

用于临时保存和回复修改,可跨分支

注:在未 add 之前才能执行 stash!(即未加入暂存区)


commit message 规范#

  • feat (module):新功能(feature)。
  • fix:修复 bug,可以是 QA 发现的 BUG,也可以是研发自己发现的 BUG。
  • docs:文档(documentation)。
  • style:格式(不影响代码运行的变动)。
  • refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)。
  • perf:优化相关,比如提升性能、体验。
  • test:增加测试。
  • chore:构建过程或辅助工具的变动。
  • revert:回滚到上一个版本。
  • merge:代码合并 (冲突修复等)。

commit message 规范#

ss


基本操作#

分支操作类#
  • git checkout -b branch
  • git merge branch
  • git rebase branch
  • git pull remote branch
  • git push remote branch

image
image


merge 冲突#

<<<<<<< HEAD:index.html
<div id="footer">contact : [email protected]</div>
=======
<div id="footer">
 please contact us at [email protected]
</div>
>>>>>>> iss53:index.html

git merge --abort#


merge 的特点#

优点#
  • 使用简单
  • 保留每一步的记录
  • 保留源分支的原始记录
缺点#
  • 保留每一步的记录

rebase#

同 merge 一样,主要功能也是合并分支,但是有很多不一样的细节

将提交到某一分支上的所有修改都移至另一分支上,就好像 “重新播放” 一样。


rebase#

image

在分支experiment上执行git rebase master, 将 C4 中的修改变基到 C3


rebase 和 merge 的区别#

1、使用难度

merge 较 rebase 更易于理解

2、对 git 操作历史的记录结果不一样

merge 会记录所有的合并操作,而 rebase 只会保留一个串行的提交记录。


merge 后的历史#

微信图片_20210709232045.png


过多的 merge 记录#

image


rebase 后的历史#

微信图片_20210709232119.png


分支协作#

Git Work Flow#


Git Work Flow#

分类#

  • Git Flow
  • GitHub Flow
  • GitLab Flow

Git Flow#

以 Git 分支能力为基础的协作模型

分支类型#
  • Master 最新的可发布版本
  • Dev 最新的开发进度
  • Realease 预发布分支
  • HotFix 紧急 bug 修复的分支
  • Feature 模块开发分支

一般流程#

  1. 从 master 新建分支 dev。
  2. 从 dev 新建各个 feature 分支,并在 feature 上开发。
  3. 开发完成的 feature 将会合并到 dev。
  4. 一个阶段的功能开发完成后将会新建出一个 release 分支用于测试等预发布
  5. 在预发布期间发现的问题将在 release 中修改并把修改合并到 dev。6、release 测试通过后,合并到 master。并在 mastertag一个版本记录。
  6. 期间线上发生 bug,需要从 master 中新建一个 hotfix 分支解决紧急问题,并合并到 master、dev 中。[特殊]

微信图片_20210710000300.png#

Github Flow#

基于 GitFlowa 新增fork, Pull Request
微信图片_20210710003940.png


微信图片_20210710003940.png

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。