我今天最终得到了一个独立的头,同样的问题如下所述:git push说一切都是最新的,即使我有本地更改
据我所知,我没有做任何与众不同的事情,只是从我当地的回购中提交和推送.
那我怎么最终得到一个detached HEAD
?
当你运行git branch -r
为什么火焰会列出origin/HEAD
?例如,GitHub上有一个远程仓库,比如说有两个分支:master和awesome-feature.如果我git clone
抓住它然后进入我的新目录并列出分支,我看到:
$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature
Run Code Online (Sandbox Code Playgroud)
或者它的任何顺序(阿尔法?我正在伪造这个例子以保持无辜的回购秘密的身份).那么HEAD
业务是什么?它是什么,最后一个人push
有他们HEAD
在尖时,他们推?这不会是他们push
编辑的一切吗?HEAD
四处走动......为什么我会关心别人HEAD
在另一台机器上指出的东西?
我只是处理远程跟踪等问题,所以这是一个挥之不去的混乱.谢谢!
编辑:我的印象是专用的远程回购(比如GitHub,没有人会在这个代码上工作,但只有拉或推等)没有也不应该有HEAD,因为基本上,没有工作副本.不是吗?
我见过的大多数git工作流建议branch
在合并到master之后删除它.例如,这个gitflow建议如下:
# Incorporating a finished feature on develop
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff myfeature
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d myfeature
Deleted branch myfeature (was 05e9557).
$ git push origin develop
Run Code Online (Sandbox Code Playgroud)
我为什么要删除分支?我也好奇当以后发现一个由该功能引入的错误时该怎么做 - 我是否应该再创建一个具有相同名称的分支,修复那里的bug,合并到master并再次删除分支?
我知道这可以在存储库的Admin页面上完成.可以在那里设置另一个默认分支.这就是这个问题的答案.
但我发现(可能是一个错误?)以下内容.如果你的master分支和develop分支完全相同,那么git clone不会克隆默认的"develop"分支,但仍然是"master"!! 如果您对开发分支提交了一些内容,删除了克隆并再次克隆,那么您将获得开发分支!
这是Git行为还是Github?这可以修复,以使其始终发展?