一、跟着教程使用 git
此 Git 教程来自于 Gitee:https://oschina.gitee.io/learn-git-branching/
我只学了一点点,感觉在实际中不怎么适用,这里又找到一篇文章,值得看一下
《Git 基础 - 记录每次更新到仓库》
- git commit —— 提交代码
- git branch <分支名> —— 创建分支
- git checkout <分支名> —— 切换分支
- git checkout -b
—— 创建并切换分支
- 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 checkout
强行修改分支位置
- 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 系统监控
上述过程就是就是一下这张图的意思
在此简单汇总一下 git 文件相关的命令
- git init —— 初始化仓库
- git add
—— 将文件提交到暂存区 - git commit
—— 将文件提交成一条记录 - git rm —cached
—— 我吃口后悔药,不监控你了(在监控状态下) - git restore
—— 我吃口后悔药,把文件改烂了,还原本来的样子(在监控状态下)
「@浪里淘沙的小法师」