我试图将特定提交中的一些更改应用到我的Git存储库的HEAD中。此提交的分支已有近两年的历史,并且由于某些原因从未合并到存储库的主分支中。
但是,我想在端口上进行一些更改,特别是对两个文件的添加:添加到Java接口的方法签名及其在具体中的实现类。没有更改或删除这两个文件的行。
我的问题是,如果我尝试将此提交合并或樱桃选择到我当前的分支上,我会遇到各种冲突,因为提交已经过时了。即使在这两个文件中,很多代码在此期间也发生了变化,现在Git问我是否需要该提交中的行或过去两年中添加的行。我真正喜欢的是,如果Git可以在HEAD上重播与该提交中相同的添加,而不替换任何内容。
在这个特定的实例中,只有两个文件,我可以手动移植更改,但我想知道我是否缺少可以自动修复类似情况的特定Git命令/选项。
感谢。
答案 0 :(得分:1)
您可以在提交中检出文件中的特定黑客:
<?php
$formatted = number_format( $row[8] );
echo "<div class=\"wrap\"><b>Price</b></div>
<div class=\"price\">$ {$formatted}</div>
<br />
</div>";
?>
然后,Git会在git checkout -p <commit> -- <path/to/file>
和<commit>
之间查看该文件中的所有差异,并询问您是否要进行更改。但是,这可能会非常压倒性,具体取决于文件的大小以及更改的大小。