git - 如何告诉 git 对一个分支使用上游跟踪,而对其他所有分支使用“当前”行为?
问题描述
我的用户级别.gitconfig
包含:
[push]
default = current
这是我 99% 的时间想要的行为。
我有一个带有两个遥控器的 Git 结帐,origin
并且bitbucket
. 当地master
分行跟踪origin/master
。我也想要一个分支,比如说bbmaster
轨道bitbucket/master
。所以我有.git/config
:
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "bbmaster"]
remote = bitbucket
merge = refs/heads/master
尽管如此,如果我从bbmaster
没有指定远程目标分支的情况下推送:
$ git push
Total 0 (delta 0), reused 0 (delta 0)
To bitbucket.org:(remote path)
* [new branch] bbmaster -> bbmaster
...它创建一个新的远程分支bbmaster
。我希望它表现得就像我输入了一样git push -u bitbucket bbmaster:master
,但记住每次都输入它是困难且容易出错的。
我想保留push.default = current
其他所有行为的行为。但是对于这个精确的用例,我想将偶尔的分支设置为推送到不同命名的分支。我可以这样做吗?
解决方案
我相信对您的工作流程push.default
具有价值upstream
会更好。
当您在不同的存储库中使用多个主分支时,我认为不current
适合。
current
- 推送当前分支以更新接收端的同名分支。适用于中央和非中央工作流程。
upstream
- 将当前分支推回其更改通常集成到当前分支的分支(称为@{upstream})。仅当您推送到您通常会从中提取的同一存储库(即中央工作流程)时,此模式才有意义。
你也可以使用nothing
nothing
- 除非明确给出 refspec,否则不要推送任何内容(错误输出)。这主要适用于希望通过始终明确来避免错误的人。
推荐阅读
- google-authentication - GOOGLE_APPLICATION_CREDENTIALS 在环境中定义但在身份验证时无法识别
- python - 将数据帧结果与 DatetimeIndex 索引相结合
- jquery - $ 未定义,但它仍然可以完美运行
- javascript - 更新状态时无法在现有状态转换期间更新?
- angular - 链 Observables 和 Promise
- angular6 - 如何根据全局/父组件的条件设置多个角度材料日期选择器的状态无效
- data-mining - 稍后添加新功能时处理“丢失”数据
- c# - Unity3D - 'SocialPlatforms' 包从 2018.1 更改为 2018.2?
- javascript - setTimeout() 如何在 nodejs 中工作
- sass - PostCSS 预设环境 alpha 十六进制颜色不适用于 sass 变量