git学习 持续更新
// 创建一个新的提交记录
git commit
//分支,只是简单的指向某个提交记录。
//创建再多的分支,也不会造成存储或内存上的开销
//创建一个名为bugFix的分支
git branch bugFix
//切换到名为bugFix的分支上
git checkout bugFix
//创建分支并切换到新的分支
git checkout -b bugFix
//git 2.23版本中引入了新的命令来替代checkout, checkout作为单个命令承载了很多独立的功能。
git switch bugFix
//合并bugFix分支到main中
git merge bugFix
//rebase是取出一系列的记录,“复制”他们,然后在另一个地方逐个放下去。其优势是可以创造更加线性的提交历史
//需要慢慢体会
//把bugFix分支的工作移到main分支上
git rebase main
//HEAD是对当前检出记录的符号引用--指向你正在其基础上进行工作的提交记录。
//上面的checkout也不过是更改HEAD的指向。
// 更改HEAD指向到C4提交记录
git checkout C4
//相对引用
//"^"操作符,方便得指向上一个父节点
//切换到main的父节点
git checkout main^
//"~<num>"一次性后退若干步
git checkout HEAD~4
//使用相对引用移动分支,可以直接使用“-f”选项让分支指向另一个提交
//将 main 分支强制指向 HEAD 的第 3 级父提交。
git branch -f main HEAD~3
//撤销变更
//git reset回退一个提交记录(本地分支)
//git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样
git reset HEAD~1
//远程分支的撤销变更
git revert HEAD
//一些提交复制到当前所在的位置(HEAD)下面的话, Cherry-pick 是最直接的方式
git cherry-pick C2 C4