赞
踩
原文:开发者社区> 越前君> 细读 Git | 让你弄懂 origin、HEAD、FETCH_HEAD 相关内容
读书笔记:担心大佬文章搬家,故整理此学习笔记
HEAD 跟「本地分支」相关
Detached HEAD 是一种特殊状态的 HEAD
origin/DEAD 跟「远程分支」相关
FETCH_HEAD 跟 git fetch 操作相关
ORIG_HEAD 跟git reset、 git merge、git reset 等「危险操作」相关
git commit
git checkout
git reset
一般情况下,我们的 HEAD
会指向某个分支
的某个Commit-ID
。但是 HEAD
偶尔会发生「没有指向某个本地分支」
的情况,这种状态的 HEAD
称为 detached HEAD
。
1・ 使用 git checkout
跳转至某个 Commit-ID,而这个 Commit-ID 刚好目前没有分支指向它。当我们切换至其他分支时,这个 (HEAD detached at e0c619c
) 临时分支是会被干掉。可以使用 git switch -c <new-branch-name>
命令来创建一个新分支来指向该 Commit-ID。
2・ Rebase
的过程其实也是处于不断
的 detached HEAD
状态 。
3・ 切换至某个远程分支
的时候。
origin/HEAD
总是指向远程仓库的「默认分支」假设我们的远程默认分支为 main
。那么远程仓库在本地的副本origin/HEAD
就是相当于 origin/main
修改 origin/HEAD 的命令:拓展请转阅 :git 常用命令 修改远程仓库默认分支
当我们进行了一些「危险操作
」时,比如 git reset
、git merge
、git rebase
(❌ git commit
不会)等操作时,git 会将当前 HEAD
指向的 Commit-ID 原值保存至 ORIG_HEAD
文件内。这样的话,假如我们执行了一些「误操作
」时,可以利用 git reset --hard ORIG_HEAD
回退至上一步。
执行了一些「误操作」时,可以利用 git reset --hard ORIG_HEAD
回退至上一步
FETCH_HEAD
与 git fetch
有关。
FETCH_HEAD
存的是分支在远程仓库上最新commitId
拓展请转阅 :git fetch 、git fetch origin、 git fetch origin master区别
拓展请转阅 :git fetch时 FETCH_HEAD和.git\refs\remotes\origin会有哪些变化
拓展:Git常用命令汇总
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。