首页 > 解决方案 > 如何在 Intellij 中配置“更新项目”以从上游存储库中提取并推送到分支?

问题描述

我正在使用 Intellij 从upstream存储库中提取,在本地进行更改并推送到我的 fork ( origin)。我了解如何通过获取、正确配置的拉取然后正确配置的推送来完成此操作。

我担心的是这里有多个手动步骤。有没有办法将 Intellij 的“更新项目”操作配置为具有不同的默认存​​储库来更新(获取和拉取)并推送到?目前“更新项目”操作只是从当前存储库更新,很容易忘记从upstream.

标签: gitgithubintellij-ideagit-fork

解决方案


有没有办法将 Intellij 的“更新项目”操作配置为具有不同的默认存​​储库来更新(获取和拉取)并推送到?

否:IDEA-100429是关于考虑一个push.default值,但仍未解决:

2020 呼唤。@{push}这对于三角工作流(单独和)仍然非常烦人@{upstream},我可以使用 IntelliJ 跨项目进行多分支、多提交,但需要进入每个项目并执行“ git push”,其中(无需进一步配置)知道在哪里做什么IntelliJ 错误地尝试推送@{upstream}而不是尊重git config.

并且IDEA-98693提到 Git Push 对话框不记得远程分支,但是:

记住您推送到的上一个分支是不好的,因为其中包括:

您推送到的任何分支都会被记住,并且您下次可能会意外地插入错误的分支,例如,如果您只需要在某个地方推送一次分支,然后再次推送到上游/跟踪的分支。

更好的方法是设置默认值。默认情况下它被跟踪分支,但如果它不起作用 - 相应地配置 git。

记住分支有时很有用,但在其他情况下则不然——有请求允许设置默认分支来推送。

git push行为不同。

所以我们恢复了行为!2018.1 及以后的版本不会记住最后一个分支,但会像 git push 一样在 commSo 和线路上运行。
因此,默认情况下,它将根据您的git config设置选择一个分支。

因此,如果您想推送到某些特定分支(不同于默认上游),请指定例如

git config remote.<name>.push refs/heads/LocalBranch:refs/heads/remoteBranch

有关实际示例,请参阅“在 IntelliJ 中同时推送到多个远程存储库”。(它至少适用于推送到不同的远程仓库)


推荐阅读