自动将两个文件合并在一起而不会产生冲突的最佳方法是什么?

时间:2019-08-14 15:01:14

标签: git merge diff auto

我有两个包含两个doc块的文件。生成file1并用用户输入填充,file2是另一个生成的文档块,没有填写字段。我希望将这两个文档块合并,如果有冲突,应自动选择--theirs(因为它是file2且是较新的版本)。

示例:

file1包含(用户已经填写了一些TODO部分):

/**
 * Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quis sem ut
 * felis imperdiet elementum. Etiam eu consequat felis. Suspendisse ac lectus
 * vel lacus blandit sollicitudin at ac sapien. Donec scelerisque nisl id tellus
 * faucibus tempor. Praesent accumsan turpis nisi.
 *
 * @param array $p1 Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 * Duis gravida nisi eget mollis semper. Class aptent taciti sociosqu ad litora.
 * @param float $p2 Lorem ipsum dor sit amet.
 * @param string $p3 (optional) Lorem ipsum dor sit amet.
 * @param \Drupal\core\Entity\Node $p4 Lorem ipsum dolor sit amet, consectetur
 * adipiscing elit. Mauris pharetra commodo dolor.
 * @return mixed [TODO:description]
 */

file2包含(具有一些更改的新生成的文档块):

/**
 * [TODO:description]
 *
 * @param array $myVar [TODO:description]
 * @param float $p2 [TODO:description]
 * @param [TODO:type] $p3 (optional) [TODO:description]
 * @param \Drupal\core\Entity\Node $p4 [TODO:description]
 * @param [TODO:type] $p5 [TODO:description]
 * @return [TODO:type] [TODO:description]
 */

我更喜欢让git进行合并,因为它的合并系统和历史合并算法很好,但是当我尝试运行时:$ git merge-file -p file1 file3 file2(其中file3仅是空的)打印以下输出:

<<<<<<< file1
/**
 * Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quis sem ut
 * felis imperdiet elementum. Etiam eu consequat felis. Suspendisse ac lectus
 * vel lacus blandit sollicitudin at ac sapien. Donec scelerisque nisl id tellus
 * faucibus tempor. Praesent accumsan turpis nisi.
 *
 * @param array $p1 Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 * Duis gravida nisi eget mollis semper. Class aptent taciti sociosqu ad litora.
 * @param float $p2 Lorem ipsum dor sit amet.
 * @param string $p3 (optional) Lorem ipsum dor sit amet.
 * @param \Drupal\core\Entity\Node $p4 Lorem ipsum dolor sit amet, consectetur
 * adipiscing elit. Mauris pharetra commodo dolor.
 * @return mixed [TODO:description]
 */
||||||| file3
=======
/**
 * [TODO:description]
 *
 * @param array $myVar [TODO:description]
 * @param float $p2 [TODO:description]
 * @param [TODO:type] $p3 (optional) [TODO:description]
 * @param \Drupal\core\Entity\Node $p4 [TODO:description]
 * @param [TODO:type] $p5 [TODO:description]
 * @return [TODO:type] [TODO:description]
 */
>>>>>>> file2

也许这可能是因为file3为空?

我希望输出如下:

/**
 * Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec quis sem ut
 * felis imperdiet elementum. Etiam eu consequat felis. Suspendisse ac lectus
 * vel lacus blandit sollicitudin at ac sapien. Donec scelerisque nisl id tellus
 * faucibus tempor. Praesent accumsan turpis nisi.
 *
 * @param array $myVar Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 * Duis gravida nisi eget mollis semper. Class aptent taciti sociosqu ad litora.
 * @param float $p2 Lorem ipsum dor sit amet.
 * @param string $p3 (optional) Lorem ipsum dor sit amet.
 * @param \Drupal\core\Entity\Node $p4 Lorem ipsum dolor sit amet, consectetur
 * adipiscing elit. Mauris pharetra commodo dolor.
 * @param [TODO:type] $p5 [TODO:description]
 * @return mixed [TODO:description]
 */

0 个答案:

没有答案