当我使用EGit从远程分支创建新分支时,我得到了错误的远程跟踪设置:
我从远程分支refs / heads / master创建本地分支feature1并立即推送到上游。跟随远程跟踪在我的.git / config文件中配置:
[branch "feature1"]
remote = origin
merge = refs/heads/master
因此,拉动并推入该分支将从/向远程主分支拉/拉。我希望以下跟踪配置:
[branch "feature1"]
remote = origin
merge = refs/heads/feature1
我知道我甚至可以从EGit修复它,但我担心我的团队中的其他开发人员没有意识到这一点并将未完成的功能推送到主分支。
我做错了吗?
答案 0 :(得分:1)
默认情况下,Egit将在从远程分支创建分支时获取merge参数的上游分支
这意味着,如果您要强制执行仅从本地分支remote/master
推送到master
的策略,您可以尝试在本地强制执行该策略。
检查Egit是否尊重git config push.default current
仅将当前分支推送到具有相同名称的上游分支(实际上可能成为default policy after git1.7.10)。
但是,这有一个问题,即确保每个开发人员都在他/她的仓库中激活该策略。
(我不认为你可以在“中央”仓库强制执行它,你可以添加server-side hook像update
钩子:该脚本取更新分支的名称(即此处为“master
”,而不是下游仓库中分支的名称,即此处为“feature1
”
注意:bug 378960已在Egit 3.2标记为已解决(2014年2月):
推送分支/初始推送向导简化了推送分支,并且允许通过推送操作创建的新分支的上游配置:
答案 1 :(得分:0)
也许你应该建议开发人员不是从远程跟踪分支(例如origin / master)创建功能分支,而是从本地分支(master)创建功能分支。这样,EGit默认情况下不会设置任何远程跟踪。
如果您决定第一次发布分支,则应该可以在实现bug 378960之后设置远程跟踪(相当于git push --set-upstream)。