将一个本地提交推送到github的git被忽略(“Everything up-to”)

时间:2016-01-18 16:53:09

标签: git github

第一个远程:“alioth”https://anonscm.debian.org/git/collab-maint/wicd.git

第二个遥控器:“github”https://github.com/toogley/pkg-wicd

我从alioth获取了最后一次提交,但是当我想要“git push --all github”那个时,我的git说“一切都是最新的”,虽然我的远程分支在我看来与我的不同本地的,正好是77479e9提交。

我目前有那些(本地)git日志:

* 77479e9 (tag: debian/1.7.3-1, alioth/master) Upload to unstable as 1.7.3-1
* ffc4dce closing #582567, which was fixed upstream in 1.7.3
* 31bd86d Add patch to show "Q" as key to quit the wireless network property view
* 88e8121 Add patch to fix "ValueError: None is not in list" in wicd-curses
| * b2931ca (HEAD, github/master, github/HEAD, master) closing #582567, which was fixed upstream in 1.7.2.4

==>这有什么不对?

编辑澄清一下:我有权做我想做的事。我已成功从debian repo中获取并想要推送到我的 github repo。所以,当然我有权限。

1 个答案:

答案 0 :(得分:1)

没有什么是错误的,因为git的行为与预期一致。

当您使用git push --all时,您实际上是在提供refspec refs/heads/*:refs/heads/*。也就是说,获取所有本地分支并请求远程将其分支设置为相同的提交。

因此,使用上述内容,让我们看看您拥有的本地分支机构:

* 77479e9 (tag: debian/1.7.3-1, alioth/master) ...

这有一个标签(不是分支)和一个远程跟踪分支(不是本地分支)。

* ffc4dce ...

根本没有外部引用(通过父链接找到)。

* 31bd86d ...
* 88e8121 ...

同样适用于这两个。

| * b2931ca (HEAD, github/master, github/HEAD, master) ...

这有四个引用:HEAD(即,是您当前的分支),github/master(远程跟踪分支),github/HEAD(远程 - 再次跟踪)和master

啊哈!有一个名为master的本地分支,用于标识提交b2931ca。所以你连接到github要求他们的git将一个名为master的分支设置为b2931ca,而且,它已经存在,无所事事。

如果您希望在推送之前向本地master添加一些提交 - 毫无疑问,您必须这样做 - 您必须这样做。可能你想git merge他们,可能是一个快速的操作,也许是强制合并(这是品味和策略的问题,而不是技术问题):

git merge --ff-only alioth/master

或:

git merge --no-ff alioth/master

(或没有标志,让git决定)。