Windows 7 上的 Git - git 版本 1.7.3.1.msysgit.0。
我的公司在 Git 存储库中有多个项目(如果重要的话,在 GitHub 上)。
对于其中一些,当我创建本地跟踪分支(例如git push -u origin mybranch,或)时,我可以分别使用&--set-upstream origin/mybranch拉动和推送到该分支,一切正常。git pullgit push
但是在其他情况下(其他项目),当我尝试相同的场景时,我可以拉(git pull),但我必须在推时指定原点和分支 - 例如git push origin mybranch。只是做git push将返回“一切都是最新的”,即使它不是也没有推动我想要的更改。
下面是git remote show origin&的输出,cat .git/config分别是它工作的存储库和一个不工作的存储库。
我注意到两件事:
在一个有效的 p1_branch 中,在远程显示输出中同时显示推送和拉取条目。但是对于没有的, p2_branch 只有一个拉条目。但我不知道为什么会这样。它们的设置方式相同。
一个设置为合并,另一个设置为变基。我已经
git config branch.master.rebase true在存储库中运行,它不起作用但不是另一个。我认为这解释了这种差异,但不明白它是否会导致这个问题。
作品(项目1):
$ git 远程显示原点
* 远程来源
获取地址:git@github.com:MyCompany/project1.git
推送地址:git@github.com:MyCompany/project1.git
HEAD 分支:master
远程分支:
主跟踪
p1_branch 跟踪
为“git pull”配置的本地分支:
master 与远程 master 合并
p1_branch 与远程 p1_branch 合并
为“git push”配置的本地参考:
主推到主(最新)
p1_branch 推送到 p1_branch (最新)
$ 猫 .git/config
[核]
-- 两个存储库相同 --
[遥远的“起源”]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:MyCompany/project1.git
[分支“主”]
远程=原点
合并=参考/负责人/主人
[分支“p1_branch”]
远程=原点
合并 = refs/heads/p1_branch
不起作用(项目2):
$ git 远程显示原点
* 远程来源
获取地址:git@github.com:MyCompany/project2.git
推送地址:git@github.com:MyCompany/project2.git
HEAD 分支:master
远程分支:
-- 剪掉一堆被跟踪的分支条目 --
主跟踪
...
p2_branch 跟踪
...
为“git pull”配置的本地分支:
主变基到远程主
p2_branch 变基到远程 p2_branch
为“git push”配置的本地参考:
主推到主(最新)
$ 猫 .git/config
[核]
-- 两个存储库相同 --
[遥远的“起源”]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:MyCompany/project2.git
[分支“主”]
远程=原点
合并=参考/负责人/主人
变基 = 真
[子模块...]
-- 剪掉一堆子模块的东西 --
[合并]
冲突风格 = diff3
[分支]
autosetuprebase = 总是
[分支“p2_branch”]
远程=原点
合并 = refs/heads/p2_branch
变基 = 真