我从我们的仓库检查了一个新分支.一切都适合我们的开发分支.但在新的分支’推’没有做任何事情.
一切看起来都很正常 – 有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分支.第二个适用于该存储库中的所有跟踪分支(如果使用全局选项,则全局跟踪).