乐趣区

Git指令学习

2019-09-12-Git 指令学习

1. 主要命令

1. 基础篇

  1. Git Commit

    # 提交记录:提交项目修改内容
    git commit "message"

    Git 提交 message 格式:

    <type>(<scope>): <subject>
    <BLANK LINE>
    <body>
    <BLANK LINE>
    <footer>

    大致分为三个部分:

    • 标题行: 必填, 描述主要修改类型和内容
    • 主题内容: 描述为什么修改, 做了什么样的修改, 以及开发的思路等等
    • 页脚注释: 放 Breaking Changes 或 Closed Issues

构成:

    • type: commit 的类型
    • feat: 新特性
    • fix: 修改问题
    • refactor: 代码重构
    • docs: 文档修改
    • style: 代码格式修改, 注意不是 css 修改
    • test: 测试用例修改
    • chore: 其他修改, 比如构建流程, 依赖管理.
    • scope: commit 影响的范围, 比如: route, component, utils, build…
    • subject: commit 的概述, 建议符合 50/72 formatting
    • body: commit 具体修改内容, 可以分为多行, 建议符合 50/72 formatting
    • footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接
    # 例如
    git commit "feat add new"
    git commit "fix test error"
    1. Git Branch

      Git 分支:简单的指向某个提交记录

      创建分支并不会造成储存或内存上的开销

      用于将分支和提交记录结合起来

      # 新建分支
      git branch newBranch
      #切换分支
      git checkout newBranch
      #新建分支并切换
      git checkout -b newBranch
    2. 分支与合并

      # 在 Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点。翻译成自然语言相当于:“我要把这两个父节点本身及它们所有的祖先都包含进来。”#把 newBranch 合并到 master 里
      git checkout master
      git merge newBranch
      #再把 master 分支合并到 newBranch
      git checkout newBranch
      git merge master
    3. Git Rebase

      #Rebase:取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去
      #创建更线性的提交记录,提交历史异常清晰
      #把 newBranch 分支里的工作直接移到 master 分支
      git checkout newBranch
      git rebase master
      #此时原来 newBranch 的提交记录依然存在,而刚才的记录是 Rebase 到 master 分支的副本
      #更新 master
      git checkout master
      git rebase newBranch

    2. 高级篇

    1. 分离 HEAD

      #HEAD 是一个对当前检出记录的符号引用——也就是指向你正在其基础上进行工作的提交记录。#HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。#HEAD 通常情况下是指向分支名的(如 newBranch)。在你提交时,改变了 newBranch 的状态,这一变化通过 HEAD 变得可见。#查看 HEAD 指向
      cat .git/HEAD
      #如果 HEAD 指向的是一个引用
      git symbolic-ref HEAD
      #从 newBranch 分支中分离出 HEAD 并让其指向一个提交记录。#通过哈希值指定提交记录。每个提交记录的哈希值显示在代表提交记录的圆圈中。#此处假如 newBranch 分支下的提交记录的哈希值为 X
      git checkout X

    欢迎邮箱交流:serendipity-zsh@foxmail.com

    退出移动版