代码之家  ›  专栏  ›  技术社区  ›  Alexander Zeitler

在Git合并冲突期间将正在进行的工作移动到另一台计算机

git
  •  0
  • Alexander Zeitler  · 技术社区  · 5 年前

    旁用 cp 或者类似的情况,是否存在将正在解决Git合并冲突的工作转移到另一台计算机的方法?

    2 回复  |  直到 5 年前
        1
  •  1
  •   torek    5 年前

    不幸的是,没有:你正在做的合并工作是在Git的索引中进行的,加上你的工作树。没有“git”方法可以将它们发送到另一台计算机上的另一个存储库。(应该有,但没有。)

    可以从整个工作树中创建一个可转移的存档,并且 .git 将其发送到另一台计算机(或使用 scp -r 或rsync或类似)复制所有内容,包括索引文件。但是,索引本身包含特定于机器的 stat 数据,所以这不一定有效。

    Git需要某种方法将索引转储到可转移的形式中。( git ls-files --stage ,或多或少),然后在保存和恢复工作树状态的同时将其读回其他地方(即,传输其他计算机上丢失的任何blob,以及此文本转储)。理想情况下,应该有一种方法将所有这些转换为提交(不进行任何分支,即la stash提交),然后将其“撤消”到目标机器中。这也提供了一种保存部分合并的方法,并在以后使用备份再次提取它。但它今天不存在。

        2
  •  1
  •   Makoto    5 年前

    如果已经将您所做的工作推送到上游存储库,并且该工作与另一个上游分支冲突,那么您不必复制任何内容;让另一台计算机拉住现有分支,然后尝试合并。那台机器可以用来解决冲突。