在git中,如果你直接checkout一个提交,你会得到一个很大的警告,开头是:"Youarein'detachedHEAD'state.Youcanlookaround..."没关系-我打算处于分离的HEAD状态。但是我在脚本中使用它,我不想在输出日志中出现这个警告,但我确实想要正常输出。我现在的“丑陋”解决方法是运行相同的命令两次,第一次使用-qstash警告,再一次获得正常输出:HEADisnowatdeadbeef...Message因为警告只打印一次。是否可以禁用警告以便我可以避免解决方法或解析输出? 最佳答案 无耻地复制
我有一个非常简单的Git项目,只有一个主分支,没有源。我不小心在我的项目中创建了一个分离的HEAD,然后在对该分离的HEAD进行了一系列提交之后,试图将它merge回我的Master分支。我在SourceTree中这样做,起初merge似乎有效(图表显示master进入头部,并且存在我修复的merge冲突),但后来我双击Master切换到那个分支然后我的HEAD突然消失了。我无法在所有分支下的SourceTree中的任何地方找到它,命令行上的gitbranch和gitlog也只显示我的Master分支。有没有办法从我丢失的分离HEAD中取回我的提交? 最佳答
我正在为Eclipse使用EGit插件,但每当我将我的项目添加到Git时,该插件都会在Eclipse目录View中我的项目文件夹旁边放置一个“NO-HEAD”指示。难道我做错了什么?这是什么意思? 最佳答案 它可以简单地意味着,在您进行第一次添加和第一次提交之前,您没有分支(甚至没有master分支),因此没有HEAD引用任何分支机构。在“WhydoIneedtoexplicitlypushanewbranch?”中查看更多信息。 关于Git"NO-HEAD"语句,我们在StackOve
我不得不承认我没有使用过gits的高级功能,但在我当前的项目中我不得不使用。情况:有人试图实现一些功能并将它们提交给master,现在我被要求做另一个人试图做的(但失败了),因此,我做的第一件事是gitcheckout-bclean_startHASHHash是一个正确的SHA1散列,在当前master之前大约有20次提交并且有效。我现在对该分支进行了一些更改,现在我想将远程存储库的当前主分支(具有其他人所做的更改)更改为我的本地分支。换句话说,我想将master20提交的头部移回,然后将我的新干净分支merge到其中。这正是我必须做的吗?使用revertHEAD~20等,或者是否有一
如果我执行gitcheckoutHEAD^,我会得到:$gitcheckoutHEAD^Note:checkingout'HEAD^'.Youarein'detachedHEAD'state.Youcanlookaround,makeexperimentalchangesandcommitthem,andyoucandiscardanycommitsyoumakeinthisstatewithoutimpactinganybranchesbyperforminganothercheckout.Ifyouwanttocreateanewbranchtoretaincommitsyoucr
我意识到我在HEAD上犯了一些错误,检查了一个较旧的提交并从那里开始编码。当我尝试推送时,我被告知我当前的提交已经落后,我需要与HEADmerge。Git推荐“gitpull”。但是,HEAD有我想忽略的代码。我该如何解决这个问题?流程图:--------HEAD(bad)----------------------+(behindconflict,requires\/mergewithHEAD,whichis\-------Currentcommit(good)----/badandneedstobeignored) 最佳答案 以
我可以通过执行以下任一操作找到当前的git分支名称:gitbranch|awk'/^\*/{print$2}'gitdescribe--contains--allHEAD但是当处于分离的HEAD状态时,例如在Jenkins中的后期构建阶段maven构建(或在Travisgitfetch中),这些命令不起作用。我目前的工作解决方案是这样的:gitshow-ref|grep$(gitlog--pretty=%h-1)|sed's|.*/\(.*\)|\1|'|sort-u|grep-vHEAD它显示在其HEAD提示上有最后一次提交的任何分支名称。这工作正常,但我觉得git-fu更强的人可能
从几天前开始,每次我在bash中按tab键来完成分支名称时,我都会看到消息:warning:ignoringbrokenrefrefs/remotes/origin/HEADwarning:ignoringbrokenrefrefs/remotes/origin/HEAD例如,当我有一个名为feature/foo的分支并按下tab时,这是我看到的:gitcheckoutf$gitcheckoutfwarning:ignoringbrokenrefrefs/remotes/origin/HEADwarning:ignoringbrokenrefrefs/remotes/origin/HE
我对Git还很陌生,但仍在掌握它的窍门。我最近才开始使用分支机构,遇到了一些问题。我有两个开发系统,一个Ubuntu桌面和一个MacBookPro。我在Ubuntu系统上的一个新的organizations分支中做了很多工作,并执行了提交并推送到我的远程仓库。此时,我有这些分支:tauren@ubuntu:/projects$gitbranchaccountingmaster*organizationstauren@ubuntu:/projects$gitbranch-rorigin/accountingorigin/masterorigin/organizationsorigin/s
我想将存在于另一个分支中的文件的不同版本加载到我当前的分支中。githelpcheckout说:DESCRIPTIONUpdatesfilesintheworkingtreetomatchtheversionintheindexorthespecifiedtree.Ifnopathsaregiven,gitcheckoutwillalsoupdateHEADtosetthespecifiedbranchasthecurrentbranch.有没有办法checkout所有这些文件,但不更新HEAD? 最佳答案 通过提供当前路径chec