1

我想从远程获取所有分支,然后根据对主分支的任何更改重新设置我当前的分支。

为此,出于某种原因,我需要先签出 master,拉取,然后回到我当前的分支进行 rebase。有没有办法做到这一点而不必切换分支?

这是工作流程:

> git check_out main
> git checkout my_branch
> ...
> # do some work on my_branch
> ...

然后基于对 master 的最新更改,我可以执行以下操作:

选项1:

> # Update my master with remote master
> git checkout master
> git pull
> git checkout my_branch
> git rebase master 

选项 2(不切换分支)。它似乎不起作用:

> git pull # Or git fetch
> # It complains with "There is no tracking information for the current branch"
> git rebase master 

如何在不切换分支的情况下基于 master 进行 rebase?

4

2 回答 2

4

您可以使用git rebase origin/masterrebase 获取的 master 分支(假设远程名称是 origin)。

但是,您的本地master分支不会因此而更新,但是一旦您将其签出并拉出,它们就会同步。

于 2013-08-05T21:18:58.980 回答
2

关于此操作的事情是您正在尝试更新 2 个本地分支(您的master分支和您的my_branch),其中任何一个分支都可能有冲突需要处理 - 直到您从远程获取更改,您不知道远程大师是一个干净的快进。

由于冲突只能使用工作副本来解决,因此您需要“从”相应的本地分支执行每个合并/变基。

于 2013-08-05T21:23:51.037 回答