3

当我使用 EGit 从远程分支创建新分支时,我设置了错误的远程跟踪:

我从远程分支 refs/heads/master 创建本地分支 feature1 并立即推送到上游。在我的 .git/config 文件中配置了以下远程跟踪:

[branch "feature1"]
    remote = origin
    merge = refs/heads/master

因此,拉入和推入该分支将拉出/拉入远程主分支。我希望使用以下跟踪配置:

[branch "feature1"]
    remote = origin
    merge = refs/heads/feature1

我知道我什至可以从 EGit 修复它,但我担心我团队中的其他开发人员没有意识到这一点并将未完成的功能推送到主分支。

难道我做错了什么?

4

2 回答 2

1

默认情况下,从远程分支创建分支时,Egit 将采用上游分支作为合并参数。
这意味着,如果您想执行remote/master仅从本地分支推送的策略master,您可以尝试在本地执行它。

检查 Egit 是否尊重 agit config push.default current仅将当前分支推送到具有相同名称的上游分支(这实际上可能成为git1.7.10 之后的默认策略)。
但是,这存在确保每个开发人员在他/她的 repo 中都有该策略的问题。

(我认为您不能在“中央”存储库中强制执行它,您可以在其中添加一个像钩子一样的服务器端update钩子:该脚本采用正在更新的分支的名称(即这里的 ' master',而不是名称下游回购中的分支,即这里' feature1')


注意:错误 378960在Egit 3.2中已标记为已解决(2014 年 2 月):

推送分支/初始推送向导简化了推送分支,还允许为推送操作创建的新分支进行上游配置

https://wiki.eclipse.org/images/6/6f/Egit-3.2-PushBranchWizard.png

于 2012-05-11T07:30:58.223 回答
0

也许您应该建议开发人员不要从远程跟踪分支(例如 origin/master)创建功能分支,而是从本地分支(master)创建。这样,EGit 默认不会设置任何远程跟踪。

如果您随后决定首次发布分支,那么在实施错误 378960后应该可以设置远程跟踪(相当于 git push --set-upstream) 。

于 2012-05-16T13:45:44.417 回答