1

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分别是它工作的存储库和一个不工作的存储库。

我注意到两件事:

  1. 在一个有效的 p1_branch 中,在远程显示输出中同时显示推送和拉取条目。但是对于没有的, p2_branch 只有一个拉条目。但我不知道为什么会这样。它们的设置方式相同。

  2. 一个设置为合并,另一个设置为变基。我已经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
        变基 = 真
4

0 回答 0