我以前没有遇到过这种情况,我的搜索并没有引导我走上正确的道路。
我的两个开发人员为同一个模块创建了文件夹。一个开发者正确地将文件夹命名为“moduleNameHere”,另一个开发者正确地将文件夹命名为“moduleNameHere”。他们同时有PR,没有人注意到重叠。现在有两个文件A.code和B.code在他们自己的文件夹中,实际上应该包含在一个文件中。他们可以保持分开,但它的 * 技术上 * 违反我们的标准,因为他们影响相同的地区。
是否有可能从文件B.code中挑选特定的提交并将其应用于A.code?
我试图用樱桃做些什么,但我可以想出一种方法来改变目标。
2条答案
按热度按时间kr98yfug1#
不知道是否有更好的方法,但你可以得到差异,修改文件名,然后apply它:
字符串
然后,编辑
changes.diff
文件,使其提到文件B.code
而不是A.code
。最后,告诉git应用更改:
型
这只会改变工作树,你仍然需要提交它。
另外,请注意,文件
B.code
在更改之前应该与文件A.code
具有几乎相同的内容,以便干净地进行更改。在任何情况下,你应该检查是否一切都已正确应用后。为了提高成功的机会,您可能需要指定查找差异的算法,例如。关于
--diff-algorithm=minimal
如果失败了,您可能需要手动应用更改,但
git diff
至少为您提供了一个关于更改内容的良好概述。vktxenjb2#
您没有指定这两个版本是否恰好在同一个项目/同一个分支中。但假设他们是,我会:
1.提交并将两个开发人员的版本推送到远程。确保远程设备具有所有源的最新版本。
1.将远程文件拉到一个或另一个的本地项目(或克隆到一个新的临时目录)
1.手动将所有源文件的“最佳”版本复制到“正确”目录
1.手动删除“坏”目录(以及其中的所有内容)
1.提交并将更新的“干净”项目推送到远程。确保提供有意义的“提交”消息。
1.“拉”到所有其他项目
好了搞定