怎么做一个免费网站,企业做网站设计的,桂林两江四湖,制作物流网站问题背景
最近用git的时候遇到了一个问题#xff0c;场景是这样的。
我有一个分支main#xff0c;其中有两个commit A和B#xff0c;A是最新commit#xff0c;B是历史commit。我先切到B看了看之前的代码#xff0c;然后切到A#xff0c;并进行了一些代码修改#xff0…问题背景
最近用git的时候遇到了一个问题场景是这样的。
我有一个分支main其中有两个commit A和BA是最新commitB是历史commit。我先切到B看了看之前的代码然后切到A并进行了一些代码修改执行了commit和push。上述过程命令如下
git checkout hash-value-of-commitB
git checkout hash-value-of-commitA# 经过代码修改后
git commit -m add some code
git push origin main当我在push的时候发生了报错HEAD detached from hash-value-of-commitA。
什么是HEAD detached? 参考链接Git detached head: What is it How to fix it? 简单来说就是现在所在的commit不处于任何分支。比如下图 除了第一个commit和最后一个commit之外其他的commit都不处于任何分支。
但是我checkout的commit明明是最新的commit不是在main分支上吗为什么还是会报错呢这里给出chatgpt的回答 就是说切到任何一个commit都会处于detatched HEAD状态。要想回到最新的分支上得checkout到分支名而不是commit哈希值。
解决方案
如果想保留这些改动在历史commitB上再新建一个分支即可如果不保留直接切到之前的分支。注意是切到分支不是切到commit这两者是不一样的
另外对于第二种方案已有的在commitB上的改动会被直接丢弃。