Git push并没有“推动”一个新的分支

我从我们的仓库检查了一个新分支.一切都适合我们的开发分支.但在新的分支’推’没有做任何事情.

一切看起来都很正常 – 有2个提交推送.

-> git branch -vv
  develop   8ab7ef1 [origin/develop] Merge branch 'develop' of git.example.com:core-platform into develop
* hotfix112 8521cef [origin/hotfix/1.1.2: ahead 2] CORE-1263 - Completed merging from dev into hot fix.

但Push不做任何事情:

-> git push
Everything up-to-date

-> git status
# On branch hotfix112
# Your branch is ahead of 'origin/hotfix/1.1.2' by 2 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

我发现’git pull’使用远程,但’git push’不会:

-> git remote show origin
* remote origin
  Fetch URL: git@git.example.com:core-platform.git
  Push  URL: git@git.example.com:core-platform.git
  HEAD branch: develop
  Remote branches:
    core-platform-1.0.0 tracked
    develop             tracked
    hotfix/1.1.2        tracked
    master              tracked
    release/1.0.0       tracked
    release/1.1.1       tracked
  Local branches configured for 'git pull':
    develop   merges with remote develop
    hotfix112 merges with remote hotfix/1.1.2
  Local ref configured for 'git push':
    develop pushes to develop (up to date)
->

我无法弄清楚为什么hotfix112没有链接到遥控器,但拉动是.

如何修复此配置?

最佳答案 Git就像你描述的那样,因为你有以下情况:

>您有一个本地分支(hotfix112),它正在跟踪一个命名不同的远程分支
>您将push.default选项设置为匹配(默认值)或简单

与git的情况一样,您可以使用一些替代方法来设置git以根据需要执行操作:

1.)最简单的方法是更改​​本地分支的名称以匹配远程分支的名称.然后,推送开始自动工作.所以只需将分支’hotfix112’重命名为’hotfix / 1.1.2’:

git branch -m hotfix112 hotfix/1.1.2

2.)您可以通过将push.default选项设置为“tracking”来更改推送行为.因为您已经将分支’hotfix112’设置为跟踪origin / hotfix / 1.1.2,所以git push将按需运行.要设置本地git选项,请运行:

git config --local push.default tracking

3.)您可以手动编辑.git / config文件并设置push以匹配本地refspec’hotfix112’到远程’hotfix / 1.1.2′.您应该在[远程“原点”]部分下方添加推线:

[remote "origin"]                                                               
  url = ...
  fetch = ...
  push = hotfix112:hotfix/1.1.2

第一种和第三种方法仅适用于hotfix112分支.第二个适用于该存储库中的所有跟踪分支(如果使用全局选项,则全局跟踪).

点赞