我可以将本地分支映射到git中具有不同前缀的远程分支吗?
时间:2020-03-06 15:05:04 来源:igfitidea点击:
我们正在这里使用半集中式git存储库。每个开发人员在中央git存储库中都有自己的子树,因此看起来像这样:
master alice/branch1 alice/branch2 bob/branch1 michael/feature release/1.0 release/1.1
在我的树中本地工作,我有"主题/功能",它与中央树中的"迈克尔/功能"相对应。
我一直在用
git push origin topic/feature:michael/feature
将我的更改推送到远程树。但是,这很麻烦并且容易出错(例如,省略开发人员名称,拼写错误的功能名称等)。
我正在寻找一种更清洁的方法来执行此操作。例如,"git push
"。我怀疑使用修改后的获取refspec设置其他遥控器可以做到这一点,但是我不确定该怎么做。我也不确定如何修改当前的分支定义以使用其他遥控器。
我目前的.git / config
看起来像:
[remote "origin"] url = git://central/git/project fetch = +refs/heads/*:refs/remotes/origin/* [branch "topic/feature"] remote = origin merge = refs/heads/michael/project
编辑:我也想将其应用于拉/取。但是branch。<name> .merge
可以解决这个问题吗?
如果有发现,我将继续进行研究并在此处发布,但我希望能得到其他一些好主意。
编辑2:我决定将本地和远程分支名称保持相同。看来这将是最少的工作,并且最不容易出现将来的问题。
解决方案
在[远程"来源"]部分中,为每个映射添加一行。包括高手到高手。
push = refs/heads/master:master push = refs/heads/topic/feature:michael/feature
我不确定如何使用git-config命令。
请注意,从现在开始,当我们进行直接git push(无参数)时,所有分支均以相同的方式被推送。
我们是否愿意解释为什么不在本地和远程保留相同的分支名称?
如果可以,我建议我们在本地和远程使用相同的分支名称。然后git push
会将我们所有的本地分支推送到中央存储库中的相应分支。
要在本地和远程存储库中使用不同的前缀,我们每次创建新功能分支时都需要向配置文件中添加映射。设置主题/ BRANCH_NAME的映射的命令是
git config remote.origin.push refs/heads/topic/BRANCH_NAME:michael/BRANCH_NAME