如何解决如何安全地将 remote1:master 推送到 remote2:branch123
问题:我想将分支从一个远程推送到另一个远程。这是我到目前为止所做的:
注意:我已经有一个遥控器了origin1
git remote add origin2 repolink.git
git fetch origin2
现在我有本地 origin2
及其分支。
结构:
local
master
remote
origin1
master
origin2
master
branch123
要求:我想将 local:master
推送到 orgin2:branch123
。 branch123
已经有源文件和提交。
option:1 origin2:branch123
last commit 可以是 local:master
init commit 的父项。我想这可能是重新定位。
option:2 origin2:branch123
强制替换为 local:master
。在这种情况下,我将丢失由 origin2:master
分支的 origin2:branch123 的提交。我不知道在这种情况下 local:master
是否会与 origin2:master
发生冲突(选项:2)
哪个选项是安全的。我更喜欢 rebasing
,因为 origin2:branch123
last commit 几乎与 remote1:master
init commit
相同。
请看图:
请告知哪个选项是安全的或最好的,以及哪些命令是有用的。我现在在版本控制管理方面有点天真。
解决方法
这对我有用:
git push origin2 master:newbranch
// master 是 origin1:mastergit fetch origin2
git checkout newbranch
// 来自 origin2,即 origin1:master
的副本
git checkout branch123
//确保 branch123 中没有任何暂存或未跟踪的文件
// HEAD
在 branch123git rebase --onto newbranch
git push
// 这将推送 branch123
,它现在也有 newbranch
的提交,但 git 会提示 merge
或 rebase
,我做了 {{1 }} 和 rebase
origin2:branch123
移至 HEAD
local:branch123
,后者重新基于 HEAD
。 (可以搜索 rebase 远程分支等。我是在 pycharm IDE 中完成的,所以它提示我两个选项 origin2:newbranch
或 merge
。
无论如何。现在有点幸运,我将一个 rebase
unrelated branch history
添加到另一个分支 origin1:master
,我可以在 origin2:branch123
分支中合并。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。