首页
学习
活动
专区
工具
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 "*",就不能再使用上面的命令回退。

21730

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

65820

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

28020

可能每天都会用到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

24210

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

38930

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

29920

Git 进阶高频操作

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

67820

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,然后看一具体效果。

1.2K60

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处于分离状态(不依附于任一分支)时,提交操作可以正常进行,但是不会更新任何已命名分支。(你可以认为这是更新一个匿名分支。) ?

46710

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) 删除分支

40620

图解Git工作原理

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

64830

22 张图,摸清了 Git 门路

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

35230

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

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

2.5K20

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

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

36110

Learning Git by Animations

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

41320

semi-sync原主库加入集群阻塞问题分析

问题现象 客户一个一主两从半同步复制环境做了手工切换,然后尝试把原主库加入集群中,结果发现新集群中数据一直无法同步到slave(原主库)中来,查看slave(原主库)同步状态,IO线程和SQL线程都是...这里最奇怪是Rpl_semi_sync_master_status=ON。 根据半同步复制原理:主库发生数据变更写binlog,然后等待从库接收并返回ACK,最后存储引擎层提交数据。...这也就是为什么在从库(原主库)一直查不到新主库变更数据原因。默认情况,半同步复制只有等待ACK超出 rpl_semi_sync_master_timeout设置时间才会自动降为异步复制。...这里slave(原主库)被认为是半同步master,但是没有从库连接他,所以一直等待从库返回ACK。等待时间我们查看rpl_semi_sync_master_timeout变量取值 ?...进入半同步复制,客户端master每提交一个事务,master MySQL将对应事务写入binlog,然后等待slave返回ACK,之后存储引擎层提交,最后返回给客户端写入成功消息。

2.6K111

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差异,通过编辑差异文件,排除不需要保存内容。

45310

图解 Git 工作原理和常用命令使用教程

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

57610

图解 Git 工作原理,彻底说清楚!!!

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

35810
领券