将 master 拉到 Intellij 的另一个分支上
Posted
技术标签:
【中文标题】将 master 拉到 Intellij 的另一个分支上【英文标题】:Pull master being on another branch in Intellij 【发布时间】:2019-03-16 13:23:41 【问题描述】:当我在我的分支上时,我想从master
生成pull
以获取最新版本的代码,然后我将我的分支重新设置为master
,然后我将我的分支推送到服务器并创建拉取请求。
今天我用下一个方法来做这一切:
我在my_branch
,我切换到master
分支
切换后,打开master
,我要么执行git pull
,要么在Intellij中使用图形界面VCS->git->pull
我回到my_branch
并执行变基
变基后我创建了一个git push -f
如何避免从 my_branch
切换到 master
并返回 Intellij?有没有办法将master
拉到master
在另一个分支上?
【问题讨论】:
你的本地master总是和远程master一样?如果是这种情况,您可以设置您的功能分支来跟踪远程 master 而不是本地,然后您可以获取/rebase(或 pull --rebase)而无需切换到本地 master 进行拉取。 是的,master
是每个人的公共分支,我们创建新分支并合并回它。没有人在 master 上写东西(除了非常罕见的热修复)
好吧....不需要保留本地主机...实际上,您可以保留它...但是您的功能分支(或其他)可以不是从本地主机启动,而是从远程启动掌握。然后,正如我在之前的评论中解释的那样,您无需切换到本地 master 即可在其之上重新调整您的功能。
***.com/questions/520650/…
【参考方案1】:
我正是为此创建了 git 别名。把它放到你的 ~/.gitconfig 中
[alias]
update = "!fn() \
repo=$2:-origin; \
if [[ $(git rev-parse --abbrev-ref HEAD) = \"$1\" ]]; \
then \
git pull \"$repo\"; \
else \
git fetch \"$repo\" \"$1\":\"$1\"; \
fi; \
; fn"
然后您可以使用git update master
来更新您的本地主机,而无需切换到它。或者,如果您的遥控器不是origin
,而是upstream
,您可以使用git update master upstream
。 Intellij 呢,似乎没有开箱即用的功能。
【讨论】:
【参考方案2】:假设您谈到的 master 分支位于名为 upstream 的远程,您可以在推送代码之前运行接下来的 2 个命令:
git fetch
git rebase upstream/master
如果您没有设置任何远程,默认远程名称是 origin,在这种情况下,命令是:
git fetch
git rebase origin/master
git fetch 不会更改您的任何本地分支,它只会提供有关服务器上存在的内容的 git 信息。
这是一个相关的 *** 问题,您可能还想在有时间的时候查看:How to rebase local branch with remote master
【讨论】:
以上是关于将 master 拉到 Intellij 的另一个分支上的主要内容,如果未能解决你的问题,请参考以下文章