一、跟着教程使用 git

此 Git 教程来自于 Gitee:https://oschina.gitee.io/learn-git-branching/
我只学了一点点,感觉在实际中不怎么适用,这里又找到一篇文章,值得看一下
《Git 基础 - 记录每次更新到仓库》

  • git commit —— 提交代码
  • git branch <分支名> —— 创建分支
  • git checkout <分支名> —— 切换分支
    • git checkout -b —— 创建并切换分支
  • git merge —— 合并分支
    • master*:git merge bugFix
    • bugFix*:git merge master
  • git rebase —— 合并分支

    • bugFix*:git rebase master
  • HEAD 是一个对当前检出记录的符号引用

    • git checkout —— 绝对引用
      • git checkout C4
    • git checkout <引用名称>^ —— 相对引用(一个^表示上一级引用)
      • git checkout HEAD^ —— master 的父节点
      • git checkout HEAD^^ —— master 的第二个父节点
    • gut checkout <引用名称>~ (数组表示引用到多少个父节点)
      • git checkout HEAD~2 —— master 的第二个父节点
  • 强行修改分支位置

    • git branch master HEAD^^ —— 把分支位置强行放到一个地方
  • 撤销变更

    • git reset HEAD~1 —— 回退到上一个版本
    • git revert HEAD —— 复制上一个版本,并再一次提交
  • 把提交内容做整理

    • git cherry-pick C2 C4

二、Git 的文件状态

文章来源于:《Git 基础 - 记录每次更新到仓库》

在 Git 体系中,文件 4 中状态,分别是

  • Untracked
  • Unmodified
  • Modifided
  • Staged

这里简单理解一下四种状态的文件从哪里来的,首先在 Git 体系中分成了两个区域,,一个区域是工作区,一个是暂存区,

  • 快照区就是你 commit 后,有个快照
  • 工作区就是你 commit 前,没有把任务提交上去

Git 里还没有快照的时候

  • 新建一个文件 README.md,它的状态是 Untracked,表示它没有被 Git 系统跟踪
  • git add README.md 一下,它的状态变成 Staged,表示它已经被 Git 系统跟踪了,并放到了暂存区
    • 出现在暂存区的文件,会被监控,你修改这个文件,Git 会知道
    • 你在这之后还可以抉择一下,我手误了,其实不想监控它
      • git rm —cached README.md
  • 修改一下 README.md 的内容,它出现了“分身”,状态是 Modified,此时之前暂存区的文件依旧在
    • 正常情况你要把它合并一下再次 git add 一下
    • 你也可以抉择一下,我想保留暂存区的,这新修改的我不要
      • git restore README.md
  • git add README.md 一下,“分身”合并,它的状态再次变成 Staged
  • git commit 一下,它的状态变成 Unmodified,它变成了一张快照存到了 Git 系统中
  • 修改一下 README.md 的内容,它的状态是 Modified
    • 这意味着你 add 后的内容和 commit 后的内容都会被 Git 系统监控

上述过程就是就是一下这张图的意思

image.png

在此简单汇总一下 git 文件相关的命令

  • git init —— 初始化仓库
  • git add —— 将文件提交到暂存区
  • git commit —— 将文件提交成一条记录
  • git rm —cached —— 我吃口后悔药,不监控你了(在监控状态下)
  • git restore —— 我吃口后悔药,把文件改烂了,还原本来的样子(在监控状态下)

「@浪里淘沙的小法师」