Git Push问题

时间:2010-04-28 13:12:19

标签: git

我有一个我从github新克隆的存储库。如果你想尝试一下,地址是git://github.com/JoshClose/CsvHelper.git。我正在使用tortoisegit,但是如果需要的话,将使用命令行来解决这个问题(我可能需要我的手持一点)。

日志如下所示:

*   0.11
|
| * master origin/HEAD origin/master 0.10
| |
|-
|
*   0.9.1

我非常肯定在对0.10做了更改之后,我没有将分支切换回0.9.1并且工作在0.11,但它看起来像。

我想要做的是删除0.11,切换到0.10,对我需要的0.11进行更改,然后推送到github。我认为变化很小,但我可以将两者合并。

更改后,日志如下所示:

* (this has no label/branch name)
|
* master origin/HEAD origin/master 0.10
|
* 0.9

为什么主人没有切换到我的新变化?

当我这样做并尝试推送到github,或进行任何更改并推送时,我收到错误:

git.exe push    "origin" (no branch)

error: src refspec (no does not match any.
error: src refspec branch) does not match any.
error: failed to push some refs to 'git@github.com:JoshClose/CsvHelper.git'

我已经尝试过拉他们推送方法解决这个问题,但那没有用。 Pulling说一切都是最新的。我也试过做一个--force,但得到同样的错误。

我认为master没有设置我的新更改存在问题。当我去推销github时,我所在的分支说(没有分支)。

我该怎么做才能解决这个问题?我已准备好删除存储库并重新开始。

1 个答案:

答案 0 :(得分:3)

您必须直接签出标签或SHA1提交,在此过程中 detached HEAD 。 所有的更新/修改都是通过所说的“分离的HEAD”在这个未命名的分支引用中进行的。

在推送之前,您应该创建(声明)分支,或者使用HEAD(快进)合并来合并主数据。

git branch tmp
git checkout master 
git merge tmp # fast-forward master

那应该给你:

* (master,tmp)
|
* origin/HEAD (origin/master) 0.10
|
* 0.9