我设置了一个分支来跟踪原始引用。gitcheckout切换到那个分支,并且一个gitstatus会告诉我我的分支离原点有多远,但令我惊讶的是origin/HEAD仍然指向origin/master,而不是origin/所以我的问题是,在什么情况下origin/HEAD会移动?编辑:我很欣赏有关如何移动origin/HEAD的答案,但我对“有机地”移动它的原因很感兴趣,除了我明确告诉它这样做之外。例如,当我切换分支时,git将HEAD指向我正在checkout的分支,所以我很惊讶origin/HEAD没有以相同的方式移动。 最佳答案
在Git中,我试图通过merge到另一个分支然后通过以下方式将HEAD重置到之前的位置来执行squashcommit:gitresetorigin/master但我需要走出这一步。如何将HEAD移回之前的位置?我有我需要将其移动到的提交的SHA-1片段(23b6772)。我怎样才能回到这个提交? 最佳答案 在回答之前,让我们添加一些背景,解释一下这个HEAD是什么是。FirstofallwhatisHEAD?HEAD只是对当前分支上当前提交(最新)的引用。只能有一个HEAD在任何给定时间(不包括gitworktree)。HEAD的内
我是Git的新手,如果我执行以下命令,我似乎有一个分支太多:warning:refname'HEAD'isambiguous.我得到以下输出:warning:refname'HEAD'isambiguous.Fromgithub.com:dagda1/hornget*branchmaster->FETCH_HEADwarning:refname'HEAD'isambiguous.warning:refname'HEAD'isambiguous.如果我执行gitbranch-a我得到以下信息:HEAD*masterremotes/emmekappa/masterremotes/origi
GitRef.org-Basic:gitrmwillremoveentriesfromthestagingarea.ThisisabitdifferentfromgitresetHEADwhich"unstages"files.By"unstage"Imeanitrevertsthestagingareatowhatwastherebeforewestartedmodifyingthings.gitrmontheotherhandjustkicksthefileoffthestageentirely,sothatit'snotincludedinthenextcommitsnapsho
当你运行gitbranch-r时,为什么它会列出origin/HEAD?例如,GitHub上有一个远程仓库,有两个分支:master和awesome-feature。如果我执行gitclone来获取它,然后进入我的新目录并列出分支,我会看到:$gitbranch-rorigin/HEADorigin/masterorigin/awesome-feature或者它的顺序是什么(alpha?我伪造这个例子是为了保密一个无辜的repo协议(protocol)的身份)。那么HEAD业务是什么?这是最后一个push的人在推送时将他们的HEAD指向什么吗?这不会总是他们push编辑的内容吗?HEA
gitpull--help说:Initsdefaultmode,gitpullisshorthandforgitfetchfollowedbygitmergeFETCH_HEAD.这是什么FETCH_HEAD以及在gitpull期间实际merge的是什么? 最佳答案 FETCH_HEAD是一个短暂的引用,用于跟踪刚刚从远程存储库中获取的内容。gitpull首先调用gitfetch,在正常情况下从远程获取一个分支;FETCH_HEAD指向这个分支的尖端(它存储提交的SHA1,就像分支一样)。gitpull然后调用gitmerge,me
我可以使用什么命令来打印出HEAD的提交ID?这是我亲手做的:$cat.git/HEADref:refs/heads/v3.3$cat.git/refs/heads/v3.36050732e725c68b83c35c873ff8808dff1c406e1但我需要一个脚本,它可以可靠地将某些命令的输出通过管道传输到文本文件,以便文本文件准确包含HEAD的提交ID(不多也不少,而不仅仅是一个ref)。谁能帮忙? 最佳答案 使用命令:gitrev-parseHEAD对于简短版本:gitrev-parse--shortHEAD
我在目录中看到的最后一次提交、HEAD和文件状态之间似乎存在差异。什么是HEAD,我能用它做什么,我应该避免什么错误? 最佳答案 HEAD是对当前checkout分支中最后一次提交的引用。有一个小异常(exception),那就是分离的HEAD。分离的HEAD是您在checkout提交(或标记)而不是分支时最终遇到的情况。在这种情况下,您必须将其想象成一个没有名称的临时分支;因此,我们只有有HEAD,而不是有一个命名的分支引用。它仍将允许您进行提交(这将更新HEAD),因此如果您将分离的HEAD视为没有名称的临时分支,则上述简短定义
这些符号指的是什么,它们代表什么意思?(我在官方文档中找不到任何解释) 最佳答案 HEAD是(直接或间接,即符号)对当前提交的引用。这是您在工作目录中checkin的提交(除非您进行了一些更改或等效的更改),并且它是一个提交,“gitcommit”将在该提交之上创建一个新的提交。通常HEAD是对其他命名分支的符号引用;此分支当前是checkout分支,或当前分支。HEAD也可以直接指向提交;这种状态称为“分离的HEAD”,可以理解为处于未命名的匿名分支上。@是HEAD的快捷方式,因为Git1.8.5ORIG_HEAD是HEAD的先前
这个问题在这里已经有了答案:HowcanIreconciledetachedHEADwithmaster/origin?(29个答案)关闭7年前。好像几天前我创建了一个名为detachedHEAD的分支,并且一直致力于它。我的正常流程是提交到master,然后将其推送到origin。但我无法推送detachedHEAD。我的下一站把我搞砸了。我选择了gitcheckoutmaster-我的detachedHEAD分支消失了。回到我的项目,过去几天我所做的所有更改都已清除。无论如何我可以取回这些更改吗?