在跟踪分支之上重新设置 git 个分支
Rebasing git branches on top of tracking branches
假设您有一个 Git 存储库,其中包含 master
分支跟踪 origin/master
和长期存在的 release
分支跟踪 origin/release
。现在,假设 git fetch
操作更改了跟踪分支,使得 release
落后。最后,假设您有未隐藏的更改。
如果我们在 master 上执行 git rebase --autostash
,那么 master 将与其远程保持同步,并且未隐藏的更改将被保留,没有 rebase/unstash 冲突。问题是,如果我在 master
上有未隐藏的更改(可能落后于 origin/master
),我应该怎么做才能让 release
不再落后于 origin/release
?
我最好的猜测是使用某种形式的 git rebase --autostash --onto
,但我不确定其余参数会是什么样子。也许 git rebase --autostash --onto release origin/release release
?
另外,将release
重置为origin/release
就足够了吗?
如果您在 master
和 release
的本地副本上没有新提交,那么是的,无需使用 rebase
将它们重置为远程副本就足够了.此外,您甚至可以在不检查分支的情况下实现您的示例场景:
如果您“在 master
上有未隐藏的更改”,并且您希望将 release
更新为 origin/release
。您可以简单地 运行 命令:
git fetch
git branch -f release origin/release
但是,如果您能够做到这一点,那么正如 torek 指出的那样 ,您可能甚至不需要 release
的本地副本,因为任何时候您都可以引用它可以使用 origin/release
代替。
if I am on master with unstashed changes (and possibly behind origin/master), what should I do in order to have release no longer behind origin/release?
说
git fetch origin release:release
这可以有效地释放,而无需切换到它。您所在分支的状态无关紧要。
假设您有一个 Git 存储库,其中包含 master
分支跟踪 origin/master
和长期存在的 release
分支跟踪 origin/release
。现在,假设 git fetch
操作更改了跟踪分支,使得 release
落后。最后,假设您有未隐藏的更改。
如果我们在 master 上执行 git rebase --autostash
,那么 master 将与其远程保持同步,并且未隐藏的更改将被保留,没有 rebase/unstash 冲突。问题是,如果我在 master
上有未隐藏的更改(可能落后于 origin/master
),我应该怎么做才能让 release
不再落后于 origin/release
?
我最好的猜测是使用某种形式的 git rebase --autostash --onto
,但我不确定其余参数会是什么样子。也许 git rebase --autostash --onto release origin/release release
?
另外,将release
重置为origin/release
就足够了吗?
如果您在 master
和 release
的本地副本上没有新提交,那么是的,无需使用 rebase
将它们重置为远程副本就足够了.此外,您甚至可以在不检查分支的情况下实现您的示例场景:
如果您“在 master
上有未隐藏的更改”,并且您希望将 release
更新为 origin/release
。您可以简单地 运行 命令:
git fetch
git branch -f release origin/release
但是,如果您能够做到这一点,那么正如 torek 指出的那样 release
的本地副本,因为任何时候您都可以引用它可以使用 origin/release
代替。
if I am on master with unstashed changes (and possibly behind origin/master), what should I do in order to have release no longer behind origin/release?
说
git fetch origin release:release
这可以有效地释放,而无需切换到它。您所在分支的状态无关紧要。