社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

Git提交未完成的合并

William Jockusch • 5 年前 • 1258 次点击  

是否有提交不完整合并的方法?我已经解决了一半的冲突。我同事的另一半更有资格应付。

也许同样好,甚至更好的方法是获取冲突块并将其恢复到冲突状态的文件中。然后我可以提交与冲突块的合并,我的同事可以获取它,将文件返回到“冲突”状态,并从中获取它。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38070
 
1258 次点击  
文章 [ 1 ]  |  最新文章 5 年前
torek
Reply   •   1 楼
torek    6 年前

简短的回答是不,这是不可能的。

我一直想写一个剧本,尽可能地接近。在冲突解决过程中, 索引中每个文件的副本,再加上工作树中的第四个文件。(添加不可更改的副本 HEAD 实际上, 每个文件的活动副本,但我们只需要保存其中的四个,因为 头部 无法更改。)可以用与 git stash 是的,这将允许通过常见的Git机制传输“正在进行的隐藏合并”。 这将包括 案例。但是,在 部分 -已解决合并根本无法保留的“reuc”撤消项,以及 全部的 合并无法记录有关高级冲突(例如重命名/重命名冲突)的一些重要信息,这些信息在执行此操作之前应该以某种方式公开。

如果您不需要撤销条目,我没有写的这个脚本可能会起作用,但是,唉,我没有写。:-)不过,基本思想是将当前(合并冲突)索引读取/复制到三个或四个未冲突的临时索引副本中:每个阶段1条目一个,每个阶段2条目一个,每个阶段3条目一个。我们还需要一个用于所有0阶段的条目,尽管这里可能可以使用原始索引。添加最后一个临时索引以保存实际工作树状态 w ,包含包含冲突标记的文件(可能是 u 提交未跟踪的文件以防有人使用 git mergetool ?).make从所有临时索引文件中提交,以某种有用的方式将它们绑定到 头部 以同样的方式 暂存 用它做一个藏匿袋 i W 承诺。那就去吧 git reset --hard ,同样的方法 暂存 做。

要恢复冲突状态,首先确保所有内容都是干净的,然后将每个提交读取到临时索引中。使用生成的索引文件构建一个新的冲突索引,其中条目位于0、1、2和3阶段(视情况而定)。使用工作树提交从保存的合并中建立工作树状态 W 承诺(事实上,可能先这么做)。


技术上可以运输 暂存 在今天的存储库之间提交,但是 暂存 前端和内部工作使它有点棘手。因为,或者至少 这个脚本的要点是使传输一个正在进行的合并变得容易,无论您想到什么脚本,都需要提供一个机制和一些清晰的指令来完成这个操作。