0

背景

我有一个从公共仓库复制的私人仓库(都托管在 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

我的目标

鉴于上述情况,我认为我需要得出以下解决方案之一:

  1. 弄清楚如何在融合中进行更改以difftool轻松保存到“真实”文件而不是临时文件;或者
  2. 开始mergetool使用这个两个远程设置

但是,如果我完全走错了树,还有另一种更好的方法,我当然想听听。非常感谢任何和所有指导!

4

0 回答 0