草庐IT

git - 为什么git checkout带有显式的refs/heads/branch给出分离的HEAD?

如果仅使用分支名称checkout一个分支,HEAD将更新为指向该分支。$gitcheckoutbranchSwitchedtobranch'branch'如果我使用refs/heads/branch或heads/branchcheckout分支,则HEAD变得分离。$gitcheckoutrefs/heads/branchNote:checkingout'refs/heads/branch'.Youarein'detachedHEAD'state.Youcanlookaround,makeexperimentalchangesandcommitthem,andyoucandiscar

Git pull 原点 HEAD

有人告诉我,您可以通过以下方式向与当前Git分支名称相匹配的远程分支推送和pull:gitpushoriginHEAD或gitpulloriginHEAD它以前一直对我有用,但奇怪的是有时它不起作用,而是推迟从ma​​ster分支推/pull(这会导致pullmerge......不是我想要做)。我知道您可以通过简单地使用分支名称轻松地从您所在的分支推送/pull:gitpulloriginname-of-branch-i-want-to-pull-from无论如何:是否有某种原因导致HEAD丢失跟踪/不指向我当前的分支,就像它几乎总是这样?有没有什么方法可以推/pull到我当前正在处

git - 为什么裸存储库有 HEAD

我想知道裸存储库中HEAD的用途是什么?是否仅在克隆存储库时使用它来知道要在克隆的存储库中checkout哪个分支?请注意,这个问题不是关于什么是HEAD,而是考虑到它的功能,我想知道为什么bare存储库中需要它。 最佳答案 CanyoupleasenameacasewhereHEADisusedinabarerepository?参见“t/t1430-bad-ref-name.sh”您可以在裸仓库中进行软重置,这意味着您可以四处移动HEAD(当前提交),这是changethedefaultbranch的一种方式.这意味着当您克隆一

Git: "Error: refusing to create funny ref ' HEAD' remotely"用于初始推送

我正在尝试将我的Git存储库从Egit(EclipseGit)初始推送到GitHub。不幸的是,我收到以下错误:error:refusingtocreatefunnyref'HEAD'remotely我将源和目标ref都设置为“HEAD”这个错误信息是什么意思? 最佳答案 我通过选择master(refs/heads/master)作为源引用来解决这个问题。然后Egit也自动将目标ref设置为master。我想这个命令告诉git创建主分支,而选择HEAD要么尝试创建一个名为HEAD的分支,要么尝试推送到当前(不存在的)远程HEAD。

git - 如何删除远程 origin/refs/heads/master

别问我怎么做到的,但我在git存储库中意外地获得了以下远程分支:$gitbranch-rorigin/HEAD->origin/masterorigin/masterorigin/refs/heads/master所有都指向同一个提交。如何删除origin/refs/heads/master中不必要的列表?我尝试了以下操作$gitpushorigin:refs/heads/mastererror:dstrefspecrefs/heads/mastermatchesmorethanone.但是如图所示,这给出了一个错误。 最佳答案 这

Git checkout - 切换回 HEAD

我一直在做我的项目,而在某个时候我发现有一件事停止了工作。当我的代码正常工作时,我需要查看它的状态,所以我决定使用gitcheckout(因为我想检查一些东西)。所以我已经完成了gitcheckoutSHA几次回到我无法到达HEAD的点时,输出如下:gitcheckoutSHA-HEADerror:Yourlocalchangestothefollowingfileswouldbeoverwrittenbycheckout:[listoffiles]Please,commityourchangesorstashthembeforeyoucanswitchbranches.Abortin

git - 如何从 'detached head state' 恢复提交?

我检查了另一个有更新的分支,然后做了一些更改,切换回主git,现在更改消失了!我可以取回它们吗?终端基本上是:$gitcommit[detachedHEAD7c09e17]Fixedsomestufffileschanged,insertions(+),deletions(-)$gitpushmasterfatal:'master'doesnotappeartobeagitrepositoryfatal:Theremoteendhungupunexpectedly$gitcheckoutmasterPreviousHEADpositionwas7c09e17...Fixedsomest

git - "refs/heads/master"与 Git 中的 "refs/remotes/origin/master"相同吗?

问题很简单:refs/heads/master和refs/remotes/origin/master是一回事吗?如果在某些情况下不是,我怎么知道什么时候不是,然后又是什么? 最佳答案 它们是两个不同的符号名称,可以指向不同的事物。refs/heads/master是您工作副本中名为master的一个分支。通常这是refs/remotes/origin/master的跟踪分支,因为origin是由gitclone及其创建的远程的默认名称主分支通常也被命名为master。你可以通过gitrev-listrefs/heads/master

git - 有没有工具可以让 git 在图表中显示 "detached heads"?

我经常引用gitlog--graph--decorate--oneline--all--full-history来查看我的分支的当前状态,但它不显示分离的头/匿名分支。有没有办法让分离的头出现在这个图中?我知道gitreflog存在,但它很难阅读,因为没有结构-你所要做的就是提交消息,如果我没有,它仍然可能是WIP'尚未完成提交。一些背景(这不是回答问题所必需的,但有助于解释它的动机):我是Mercurial用户,我的工作流程涉及很多匿名分支。我倾向于大量使用hgheads来检查这些heads,并且经常使用hgrebase根据对目的有意义的内容来分离或组合一系列提交易于理解的代码审查。

git - 我无法 checkout 特定分支, "detached HEAD state"

我和我的friend有一个他创建的代码库。然后他创建了一个名为“词法分析器”的分支供我们处理。问题是虽然他可以在master和lexer之间来回切换,但对我来说根本不起作用。最终我只是重新开始(rm-rfrepo然后克隆了repo)但是仍然无法检查lexer分支?在新克隆的repo上:gitbranch给出:$gitbranch*mastergitcheckoutlexer给出:$gitcheckoutlexer$gitstatusOnbranchmasterYourbranchisup-to-datewith'origin/master'.我可以检查origin/lexer但我最终处