git - 在跟踪分支之上重新定位 git 分支
问题描述
假设您有一个带有master
分支跟踪origin/master
和长期release
分支跟踪的 Git 存储库origin/release
。现在,假设一个git fetch
操作改变了跟踪分支,这样release
就落后了。最后,假设您有未隐藏的更改。
如果我们git rebase --autostash
在 master 上这样做,那么 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
如果您在and的本地副本上没有新的提交release
,那么是的,将它们重置为远程副本就足够了,而无需使用rebase
. 此外,您甚至可以在不检查分支的情况下实现您的示例场景:
如果您“master
正在进行未隐藏的更改”,并且希望release
使用origin/release
. 您可以简单地运行命令:
git fetch
git branch -f release origin/release
但是,如果您能够做到这一点,那么正如 torek在评论中指出的那样,您可能甚至不需要 的本地副本release
,因为您可以随时引用它来origin/release
代替。
推荐阅读
- python - print_control_identifiers() 在新窗口上
- bash - 如何检查行的第一个单词,如果匹配则导入该行?
- neo4j - 如何与 Neo4j Graphql 建立关系?
- flutter - Flutter Column:设置项目之间的固定空间
- python - 将 cumcount 0 值替换为两列上 groupby 中的先前值
- reactjs - React 中的 Axios useState
- photoshop - 通过 Javascript 加载 .atn 文件时出错
- angular - 类型 X 缺少类型“postType[]”中的以下属性:长度、弹出、推送、连接等 28 个
- git - “打包”文件对于裸 git 存储库是否必不可少?
- sql - GENERATE_TIMESTAMP_ARRAY() 上的 UNNEST 导致语法错误