1、基础:git commit、git branch、git merge、git rebase
//创建新的提交记录
git commit
//创建新的分支(如图1)
git branch newImage
git checkout newImage;git commit
合并分支法一:
//如图2,把 【bugFix】 合并到 main 里
git merge bugFix (前者,带星号)
//把【main】 分支合并到 bugFix
git checkout bugFix;git merge main
合并分支法二:
//把 bugFix 分支里的工作直接移到 【main】 分支上,图3
git rebase main (后者,无星号)
//把main分支rebase到【bugFix】
git rebase bugFix
练习(6步?)
git branch bugFix;
git checkout bugFix;git commit;
git checkout main;git commit;(切换出两条分支)
git checkout bugFix;git rebase main。
2、高级:分离HEAD、相对引用^、相对引用2~(可强制移动分支)、撤销变更
HEAD指向正在进行工作的提交记录,通过指向分支名——通过cat .git/HEAD、git symbolic-ref HEAD查看HEAD指向。(HEAD指向本身)
git checkout C1; //由HEAD->main->C1,变成HEAD->C1
# git checkout main;git commit; git checkout C2
git log查看提交记录的哈希值,使用^向上移动一个提交记录,~2或n向上移动多个提交记录;
main相当于main的父节点,main^相当于main的第二个父节点。(HEAD指向上一级)
git checkout bugFix^
git checkout bugFix~3
# !!! 移动分支:-f让分支指向另一个提交。以下将main分支强制指向HEAD的第3级父提交。
git branch -f main HEAD~3
练习:
git branch -f bugFix HEAD~2;
git branch -f main C6;
git checkout HEAD^
#退回上一个(删去C2,保留C1)——本地分支
git reset HEAD~1
#引入C2'相当于C1的状态——远程分支
git revert HEAD
3、移动提交:自由修改提交树——git cherry-pick、交互式rebase
//(1)已知提交记录的哈希值
git cherry-pick C2 C6 C4
//(2)未知哈希值,有一系列的提交记录。使用带参数--interactive的rebase命令,简写为-i;UI窗口用VIM打开。
git rebase -i HEAD~4
备注:鼠标拖放调整顺序,(omit)切换 pick
的状态删除提交,合并提交(暂不支持)。
4、杂项:Git技术、技巧与贴士大集合——只取一个提交记录、提交的技巧#1/2、git tag、git describe。
(1)本地栈式提交
# main分支得到bugFix的相关提交
git rebase -i HEAD~3;
git cherry-pick;
(2)提交的技巧1
#相当于上次提交错误的信息被覆盖了,重新加了个信息(C'')
git commit --amend
5、级话题:多次rebase、两个父节点、纠缠不清的分支
(1)多分支rebase(4条?)文章来源:https://www.toymoban.com/news/detail-609335.html
git checkout bugFix
git rebase main
git checkout side
git rebase bugFix
git checkout another
git rebase side
git branch -f main another
备注:HEAD大写,其他git命令小写。使用undo和reset可以恢复原样。文章来源地址https://www.toymoban.com/news/detail-609335.html
到了这里,关于git 语法学习小记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!