Windows 7 上的 Git - git 版本 1.7.3.1.msysgit.0。
我的公司在 Git 存储库中有多个项目(如果重要的话,在 GitHub 上)。
对于其中一些,当我创建本地跟踪分支(例如git push -u origin mybranch
,或)时,我可以分别使用&--set-upstream origin/mybranch
拉动和推送到该分支,一切正常。git pull
git 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 变基 = 真