背景
我有一个从公共仓库复制的私人仓库(都托管在 github 上)。我需要有选择地将来自公共的更改合并到私人回购中(而不是简单地做一个git pull
.
如果可行,我希望为此目的使用融合工具,但我对所有可行的替代方案持开放态度。
(副本是根据 Github 的文档在这里创建的;添加第二个遥控器2nd_remote
来比较两个 repos 是根据 iamamac 的回答在这里完成的;meld 的配置是根据 mattst 的优秀指南在这里完成的。)
作为参考,这是我确切的全局 git 工具配置:
[merge]
tool = meld
[diff]
tool = meld
[difftool "meld"]
cmd = meld "$LOCAL" "$REMOTE"
[mergetool "meld"]
# order of $VARS indicates order that panes display
cmd = meld "$REMOTE" "$MERGED" "$LOCAL" --output "$MERGED"
[mergetool]
# to avoid accumulating cruft
keepBackup = false
[core]
trustctime = false
问题
此设置适用于查看差异:meld 中的git difftool origin/main 2nd_remote/main
输出/显示符合预期,显示每个 repo 中指定分支之间的所有差异。
但是,由于使用的是临时文件,因此基于这些差异在melddifftool
中进行和保存更改并不容易(或明显如何) 。
我想做的是使用 meld 的设置,它很容易管理和保存更改。mergetool
但是,当我进行应该引入合并冲突的测试更改(例如,两个存储库中同一行的不同附加)并更新遥控器时,git mergetool origin/main 2nd_remote/main
会给出:
No files need merging
我的目标
鉴于上述情况,我认为我需要得出以下解决方案之一:
- 弄清楚如何在融合中进行更改以
difftool
轻松保存到“真实”文件而不是临时文件;或者 - 开始
mergetool
使用这个两个远程设置
但是,如果我完全走错了树,还有另一种更好的方法,我当然想听听。非常感谢任何和所有指导!