首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

git在分离的head下提交后返回原主

是指在Git版本控制系统中,当在分离的HEAD状态下进行提交操作后,Git会将提交的结果保存在一个临时的分支中,并返回到原来的主分支。

具体来说,Git中的HEAD是指向当前所在分支或提交的指针。当我们在分离的HEAD状态下进行提交操作时,Git会创建一个临时的匿名分支来保存提交的结果。这个临时分支的指针会指向最新的提交,而原来的主分支的指针不会改变。

这种分离的HEAD状态通常发生在以下情况下:

  1. 使用git checkout命令切换到某个特定的提交,而不是切换到一个分支。
  2. 使用git checkout命令切换到一个标签。

在分离的HEAD状态下进行提交后,如果我们希望将这个提交结果合并到原来的主分支中,可以使用git cherry-pick命令。该命令可以将指定的提交应用到当前所在的分支上。

总结一下,当在分离的HEAD状态下进行提交后,Git会将提交结果保存在一个临时的分支中,并返回到原来的主分支。如果需要将这个提交合并到原来的主分支中,可以使用git cherry-pick命令。

关于Git的更多信息和使用方法,可以参考腾讯云的产品介绍链接地址:腾讯云Git代码托管

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

别再说你不会Git了,这个教程直接拿走!

回滚这一操作上看,效果差不多。但是日后继续merge以前老版本时有区别。...因为git revert是用一次逆向commit“中和”之前提交,因此日后合并老branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit某个branch上删除,...要注意一,可能两个人代码都是对 冲突解决提交 Bug分支 1、储藏更改:将当前更改代码储藏起来,等以后恢复使用 git stash 2、恢复储藏代码 git stash pop //恢复同时把...4、查看各版本号及信息(所有的commit:本地commit + 其他同事commit) git log • git reset是把HEAD向后移动了一,而git revert是HEAD继续前进,...执行了git add ,还没执行 git commit ,再执行上面的操作,会恢复到git add 结束状态 注:一旦执行了git commit -m "*",就不能再使用上面的命令回退。

23730

Git 各指令本质,真是通俗易懂啊!

命令详解 3.1 提交相关 3.2 分支相关 3.3 合并相关 3.4 回退相关 3.5 远程相关 1 基本概念 1.1 Git优势 Git是一个分布式代码管理工具,讨论分布式之前避免不了提及一什么是中央式代码管理仓库...,命令如下: git branch 分支名 切换分支 当切换分支,默认情况HEAD会指向当前分支,即HEAD间接指向当前分支指向节点 git checkout 分支名 同时也可以创建一个分支立即切换...假设当前分支是master,执行了git cherry-pick C3(哈希值),C4(哈希值)命令后会直接将C3、C4节点抓过来放在后面,对应C3'和C4' 3.4 回退相关 分离HEAD 默认情况...--detach 由于哈希值是一串很长很长乱码,实际操作中使用哈希值分离HEAD很麻烦,所以Git也提供了HEAD基于某一特殊位置(分支/HEAD)直接指向前一个或前N个节点命令,也即相对引用...举个例子:如果开发过程发现之前提交有问题,此时可以将HEAD指向对应节点,修改完毕提交,此时你肯定不希望再生成一个新节点,而你只需提交时加上--amend即可,具体命令如下: git commit

72120
  • Git 各指令本质,真的是通俗易懂!

    基本概念 Git 优势 Git 是一个分布式代码管理工具,讨论分布式之前避免不了提及一什么是中央式代码管理仓库: 中央式:所有的代码保存在中央服务器,所以提交必须依赖网络,并且每次提交都会带入到中央仓库...,命令如下: git branch 分支名 切换分支 当切换分支,默认情况 HEAD 会指向当前分支,即 HEAD 间接指向当前分支指向节点 git checkout 分支名 同时也可以创建一个分支立即切换...,对应 C3'和 C4' 回退相关 分离 HEAD 默认情况 HEAD 是指向分支,但也可以将 HEAD 从分支上取下来直接指向某个节点,此过程就是分离 HEAD,具体命令如下: git checkout...节点哈希值//也可以直接脱离分支指向当前节点git checkout --detach 由于哈希值是一串很长很长乱码,实际操作中使用哈希值分离 HEAD 很麻烦,所以 Git 也提供了 HEAD...举个例子:如果开发过程发现之前提交有问题,此时可以将 HEAD 指向对应节点,修改完毕提交,此时你肯定不希望再生成一个新节点,而你只需提交时加上--amend 即可,具体命令如下: git

    31020

    Git各指令本质,真是通俗易懂啊

    命令详解 3.1 提交相关 3.2 分支相关 3.3 合并相关 3.4 回退相关 3.5 远程相关 基本概念 ---- 1.1 Git 优势 Git是一个分布式代码管理工具,讨论分布式之前避免不了提及一什么是中央式代码管理仓库...,命令如下: git branch 分支名 切换分支 当切换分支,默认情况HEAD会指向当前分支,即HEAD间接指向当前分支指向节点 git checkout 分支名 同时也可以创建一个分支立即切换...,对应C3'和C4' 3.4 回退相关 分离 HEAD 默认情况 HEAD 是指向分支,但也可以将 HEAD 从分支上取下来直接指向某个节点,此过程就是分离HEAD,具体命令如下: git checkout... 节点哈希值 //也可以直接脱离分支指向当前节点 git checkout --detach 由于哈希值是一串很长很长乱码,实际操作中使用哈希值分离 HEAD 很麻烦,所以 Git 也提供了 HEAD...举个例子:如果开发过程发现之前提交有问题,此时可以将 HEAD 指向对应节点,修改完毕提交,此时你肯定不希望再生成一个新节点,而你只需提交时加上--amend即可,具体命令如下: git commit

    42530

    可能每天都会用到Git命令速查表

    你应该将2替换为你希望从最新提交HEAD返回提交数。 将各种提交压缩为一个(无需重新设置!)...在上一次提交时签出项目的状态 要返回过去查看过去一次给定提交项目状态,请首先运行git log以查看提交历史记录,然后选择要返回提交。 然后,复制其哈希并仅运行git checkout 。...这将使你处于"分离头"模式。要返回,只需按名称签出分支即可。 忽略已经添加到Git文件 我们到过那里-添加或提交我们不应该拥有的东西。...错误分支上提交 如果你错误分支上进行了提交,则应该能够使用我们有关删除提交知识来解决该问题,如下所示: git branch && git reset HEAD~2 -...将提交标记为良好Git会将您带到第一个"不良"提交(即,你标记为不良最后一个),以便你可以正确地调查错误。完成,只需通过签出分支(git checkout )返回分支头并解决问题。

    1.2K30

    Git各指令本质,真是通俗易懂啊

    ,命令如下: git branch 分支名 切换分支 当切换分支,默认情况HEAD会指向当前分支,即HEAD间接指向当前分支指向节点 git checkout 分支名 同时也可以创建一个分支立即切换...,对应C3'和C4' 4 回退相关 分离HEAD 默认情况HEAD是指向分支,但也可以将HEAD从分支上取下来直接指向某个节点,此过程就是分离HEAD,具体命令如下: git checkout 节点哈希值...//也可以直接脱离分支指向当前节点 git checkout --detach 由于哈希值是一串很长很长乱码,实际操作中使用哈希值分离HEAD很麻烦,所以Git也提供了HEAD基于某一特殊位置(分支.../HEAD)直接指向前一个或前N个节点命令,也即相对引用,如下: //HEAD分离并指向前一个节点 git checkout 分支名/HEAD^ //HEAD分离并指向前N个节点 git checkout...举个例子:如果开发过程发现之前提交有问题,此时可以将HEAD指向对应节点,修改完毕提交,此时你肯定不希望再生成一个新节点,而你只需提交时加上--amend即可,具体命令如下: git commit

    26010

    Git各指令本质,真是通俗易懂啊

    基本概念 1 Git优势 Git是一个分布式代码管理工具,讨论分布式之前避免不了提及一什么是中央式代码管理仓库 中央式:所有的代码保存在中央服务器,所以提交必须依赖网络,并且每次提交都会带入到中央仓库...,命令如下: git branch 分支名 切换分支 当切换分支,默认情况HEAD会指向当前分支,即HEAD间接指向当前分支指向节点 git checkout 分支名 同时也可以创建一个分支立即切换...,对应C3'和C4' 4 回退相关 分离HEAD 默认情况HEAD是指向分支,但也可以将HEAD从分支上取下来直接指向某个节点,此过程就是分离HEAD,具体命令如下: git checkout...节点哈希值 //也可以直接脱离分支指向当前节点 git checkout --detach 由于哈希值是一串很长很长乱码,实际操作中使用哈希值分离HEAD很麻烦,所以Git也提供了HEAD基于某一特殊位置...举个例子:如果开发过程发现之前提交有问题,此时可以将HEAD指向对应节点,修改完毕提交,此时你肯定不希望再生成一个新节点,而你只需提交时加上--amend即可,具体命令如下: git commit

    32120

    git常用命令

    (删除远程主机) $ git remote rename (修改远程主机名) 三、git fetch git fetch命令通常用来查看其他人进程,因为它取回代码对你本地开发代码没有影响...默认情况git fetch取回所有分支(branch)更新。...-b newBrach origin/master (git fetch取回远程分支可以基于此创建一个本地分支) 四、git pull git pull命令作用是,取回远程主机某个分支更新,再与本地指定分支合并...八、其它命令 提交git commit -a 对最近一次commit进行修改:git commit -a –amend commit之后,如果想撤销最近一次提交(即退回到上一次版本)并本地保留代码:...git reset HEAD^ 合并分支:(merge from) $ git checkout master $ git merge mybranch (merge from mybranch) 删除分支

    42920

    用21张图,把Git 工作原理彻底说清楚

    在运行命令之前,master指向ed489,提交,master指向新节点f0cec并以ed489作为父节点。 即便当前分支是某次提交祖父节点,git会同样操作。...如果想更改一次提交,使用git commit –amend。Git会使用与当前提交相同父节点进行一次新提交,旧提交会被取消。 另一个例子是分离HEAD提交[3],后文讲。...然而,当提交操作涉及到“分离HEAD”时,其行为会略有不同,详情见在下面。...关注公众号“Java后端技术全栈”,回复面试,获取面试优质资料 HEAD标识处于分离状态时提交操作 当HEAD处于分离状态(不依附于任一分支)时,提交操作可以正常进行,但是不会更新任何已命名分支。...树对应着工作目录中文件夹,树中包含 树或者blob对象对应着相应子目录和文件。每次提交都存储上一级树识别码。

    3.2K20

    图解 Git 各种用法,简单明了,一目了然!

    在运行命令之前,main指向ed489,提交,main指向新节点f0cec并以ed489作为父节点。 即便当前分支是某次提交祖父节点,git会同样操作。...如果想更改一次提交,使用 git commit --amend。git会使用与当前提交相同父节点进行一次新提交,旧提交会被取消。 另一个例子是分离HEAD提交,后文讲。...然而,当提交操作涉及到“分离HEAD”时,其行为会略有不同,详情见在下面。...HEAD标识处于分离状态时提交操作 当HEAD处于分离状态(不依附于任一分支)时,提交操作可以正常进行,但是不会更新任何已命名分支。(你可以认为这是更新一个匿名分支。)...树对应着工作目录中文件夹,树中包含 树或者blob对象对应着相应子目录和文件。每次提交都存储上一级树识别码。

    37710

    git原理及指令

    然后把当前分支指向新提交节点。下图中,当前分支是master。 在运行命令之前,master指向ed489,提交,master指向新节点f0cec并以ed489作为父节点。 ?...比如,git checkout HEAD~ foo.c会将提交节点HEAD~(即当前提交节点父节点)中foo.c复制到工作目录并且加到暂存区域中。...如果既没有指定文件名,也没有指定分支名,而是一个标签、远程分支、SHA-1值或者是像master~3类似的东西,就得到一个匿名分支,称作detached HEAD(被分离HEAD标识)。...然而,当提交操作涉及到“分离HEAD”时,其行为会略有不同,详情见在下面。 ?...HEAD标识处于分离状态时提交操作 当HEAD处于分离状态(不依附于任一分支)时,提交操作可以正常进行,但是不会更新任何已命名分支。(你可以认为这是更新一个匿名分支。) ?

    48910

    Git 进阶高频操作

    然而,你可能仍需要恢复你储藏内容。在这种情况, git 提供了git stash branch 命令来帮助你。这条命令基于储藏条目生成时提交,会将保存储藏内容转换到一个新分支。...如果你命令增加了这个选项, Git 会打开一个 UI 界面并列出将要被复制到目标分支备选提交记录,它还会显示每个提交记录哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改。...此模式你可以重新排序、编辑、删除,把多个提交合并成一个,把一个提交分离成多个, 然后把它们放回原来分支或者不同分支。...a name # t, reset = reset HEAD to a label 其中 s, squash 将会所在行所在提交合并到前一个提交中 一般为方便确认 rebase 返回...如果把衍合当成一种推送之前清理提交历史手段,而且仅仅衍合那些尚未公开提交对象,就没问题。

    70920

    Git知识点整理

    git reset是把HEAD向后移动了一,而git revert是HEAD继续前进,只是新commit内容和要revert内容正好相反,能够抵消要被revert内容。...另外,说一git revert, git reset –hard和 –soft区别 git reset –mixed id: 是将gitHEAD变了(也就是提交记录变了),但文件并没有改变,(也就是...git reset –soft id: 实际上,是git reset –mixed id,又做了一次git add。 git reset –herd id: 是将gitHEAD变了,文件也变了。...merge 是一个合并操作,会将两个分支修改合并在一起,默认操作情况提交合并中修改内容 merge 提交历史忠实地记录了实际发生过什么,关注点在真实提交历史上面 rebase 并没有进行合并操作...k和--no-keep-index指定保存进度,是否重置暂存区 --patch 会显示工作区和HEAD差异,通过编辑差异文件,排除不需要保存内容。

    51010

    Git知识总览(五) Gitmerge、rebase、cherry-pick以及交互式rebase

    二、分离HEAD 1、移动HEAD指针 HEAD指针是指向当前所在操作分支,比如我们现在是master分支,那么HEAD就指向master分支,然后master分支指向是我们commit号。...分离 HEAD 就是让其指向了某个具体提交记录而不是分支名。下方左边图就是我们要完成目标,右边是我们分支初始化状态。 ?...2、提交树上移动分支 下方要完成不单单是HEAD指针移动,而是分支指针移动,Git上可以移动你所创建分支指向,使其指向任意提交分支上。...然后使用 git branch -f master C6 命令将master分支指向C6节点。 最后使用 git checkout HEAD^ 命令将分离HEAD指针进行上移。 ?...下方我们再做个尝试,一个分支上进行了reset , 然后reset分支上做了一些提交。最后我们将这些提交进行push,然后看一具体效果。

    7K60

    图解Git工作原理

    在运行命令之前,main指向ed489,提交,main指向新节点f0cec并以ed489作为父节点。 ? 即便当前分支是某次提交祖父节点,git会同样操作。...如果想更改一次提交,使用 git commit --amend。git会使用与当前提交相同父节点进行一次新提交,旧提交会被取消。 ? 另一个例子是分离HEAD提交,后文讲。...然而,当提交操作涉及到“分离HEAD”时,其行为会略有不同,详情见在下面。 ?...HEAD标识处于分离状态时提交操作 当HEAD处于分离状态(不依附于任一分支)时,提交操作可以正常进行,但是不会更新任何已命名分支。(你可以认为这是更新一个匿名分支。) ?...树对应着工作目录中文件夹,树中包含 树或者blob对象对应着相应子目录和文件。每次提交都存储上一级树识别码。

    68430

    Learning Git by Animations

    看到一个动画版Git教程(网址),动画效果真心不错,所以学了,本文是记录其中几个重点部分。 HEAD HEAD 是当前提交记录符号名称 – 其实就是你正在其基础进行工作提交记录。...你提交时,改变了 bugFix 状态,这一变化通过 HEAD 变得可见。 分离HEAD分离HEAD实际上就是指HEAD并没有指向某个分支,而是指向了某个具体提交记录。...解析:git rebase [branch]操作也是用来合并分支,但是合并时并不产生新提交记录,而是复制那个分支所有提交记录加入到当前分支下面,同样地,该操作不改变当前分支。...2> 解析:git cherry-pick方便我们选择所需提交记录加入到某个分支,使用git rebase -i启动rebase交互模式也可以完成该任务,它甚至可以对提交记录进行排序...本地远端分支仅伴随远端更新而更新,这个分支上创建提交不会更新该分支,只会使其分离HEAD

    43620

    22 张图,摸清了 Git 门路

    在运行命令之前,main指向ed489,提交,main指向新节点f0cec并以ed489作为父节点。 即便当前分支是某次提交祖父节点,git会同样操作。...如果想更改一次提交,使用 git commit --amend。git会使用与当前提交相同父节点进行一次新提交,旧提交会被取消。 另一个例子是分离HEAD提交,后文讲。...然而,当提交操作涉及到“分离HEAD”时,其行为会略有不同,详情见在下面。...HEAD标识处于分离状态时提交操作 当HEAD处于分离状态(不依附于任一分支)时,提交操作可以正常进行,但是不会更新任何已命名分支。(你可以认为这是更新一个匿名分支。)...树对应着工作目录中文件夹,树中包含 树或者blob对象对应着相应子目录和文件。每次提交都存储上一级树识别码。

    37330

    图解Git

    在运行命令之前,master指向ed489,提交,master指向新节点f0cec并以ed489作为父节点。 ? 即便当前分支是某次提交祖父节点,git会同样操作。...如果想更改一次提交,使用git commit --amend。git会使用与当前提交相同父节点进行一次新提交,旧提交会被取消。 ? 另一个例子是分离HEAD提交,后文讲。...用分离HEAD提交(找不到好译法) HEAD分离时候, 提交可以正常进行, 但是没有更新已命名分支. 。(可以看作是匿名分支。) ? 如果此时切换到别的分支,那么所作工作会全部丢失。...没有图片体现着,细节看这里:git-rebase(1) 技术说明 文件内容并没有真正存储索引(.git/index)或者提交对象中,而是以blob形式分别存储在数据库中(.git/objects)...树对应着工作目录中文件夹,树中包含 树或者blob对象对应着相应子目录和文件。每次提交都存储上一级树识别码。

    75880

    21张图,将 Git 工作原理彻底说清楚…

    在运行命令之前,master 指向 ed489,提交,master 指向新节点 f0cec 并以 ed489 作为父节点。 即便当前分支是某次提交祖父节点,git会同样操作。...如果想更改一次提交,使用 git commit —amend。git 会使用与当前提交相同父节点进行一次新提交,旧提交会被取消。 另一个例子是分离 HEAD 提交,后文讲。...这样可以很方便历史版本之间互相切换。但是,这样提交是完全不同,详细在下面。 用分离 HEAD 提交 HEAD分离时候, 提交可以正常进行, 但是没有更新已命名分支. 。...没有图片体现着,细节看这里:git-rebase(1) 技术说明 文件内容并没有真正存储索引(.git/index)或者提交对象中,而是以blob形式分别存储在数据库中 (.git/objects...树对应着工作目录中文件夹,树中包含 树或者 blob 对象对应着相应子目录和文件。每次提交都存储上一级树识别码。

    64621

    git 那些事儿 —— 基于 Learn Git Branching

    master 分支引用向前移动了一而已 提交树上移动 HEAD 是一个对当前检出记录符号引用 —— 也就是指向你正在其基础上进行工作提交记录,大多数修改提交 git 命令都是从改变 HEAD...分离 HEAD HEAD 通常情况是指向分支名 (如 bugFix),分离 HEAD 就是让其指向了某个具体提交记录而不是分支名。...git reset HEAD^ 撤销最近一次提交 reset ,最近一次提交所做变更还在,但是处于未加入暂存区(Unstage)状态。...git revert HEAD 同样是撤销最近一次提交 revert 多了一个新提交,这个提交刚好是用来撤销 HEAD 这个提交。...断点续传式git clone(伪) [39]. git怎么查看哪些文件是版本控制呢 [40]. git修改之前commit提交信息 [41].

    2K20
    领券