[Git] 系列二高级命令学习记录
Author: Xin Pan
Date: 2022.09.17
在基础命令之后,开始总结高级命令。
HEAD
git 中的HEAD指针,其值存储在repo_dir/.git/HEAD中,或者也能通过git symbolic-ref HEAD 查看。
HEAD 总是指向当前分支上最近一次提交记录。它指向最近一次提交的分支名。当然他会跟着具体的commit而改变。
当HEAD和当前的最新commit不同时,称之为分离HEAD状态。
Level相对引用
在提交树上移动,有两个办法
方法一
通过git log 查看每次提交的哈希(SHA-1),然后通过git checkout 移动。
方法二
通过相对引用(^)这个符号叫做相对引用。
git checkout main^
git checkout HEAD^
git switch HEAD^^
git switch HEAD~2
当希望指向别的分支时可以使用-f 强制移动。
git branch -f NewBranch HEAD~2
撤销变更
有两个办法git reset 和git revert 。摘下网页原文。
git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
但是git reset 改变了本地,对远程无效。也就是别人的本地代码无效,这时候如果想改动在别人机器也有效,那么使用git revert 。
从实现上git revert 相当于把HEAD^重新commit一次去覆盖现在的HEAD而已。挺有意思的小操作。
|