如何忽略合并冲突?

How to ignore merge conflict?

我有下一个合并冲突:

<<<<<<< Updated upstream
    my( $c, $name ) =  (shift,shift);
  my %name =  defined $name ? ( name => $name ) : ();

||||||| merged common ancestors
    my( $c ) =  shift;
=======
    my( $c, $name ) =  (shift,shift);

  my %name =  defined $name ? ( name => $name ) : ();
>>>>>>> Stashed changes

<<<<<<< Updated upstream
    return $c->render_to_string( 'control/toggle', id => "toggle$id", %name, @_ );
||||||| merged common ancestors
  return $c->render_to_string( 'control/toggle', @_, id => "toggle$id" );
=======
    return $c->render_to_string( 'control/toggle', id => "toggle$id",  %name,  @_ );
>>>>>>> Stashed changes

如果只有空格发生变化,是否可以选择忽略此类冲突?就像 -w -b 选项

嗯,你不能忽略冲突,因为那意味着有问题,你必须告诉 Git 你解决了冲突。

如果你真的想保持文件原样,你可以删除冲突的差异行,然后 git 添加/ git 提交冲突的文件,这样你就可以保留文件的所有行。

否则,如果您想保留文件的特定版本("theirs",意思是您尝试合并到本地代码库的内容或 "ours",意思是您的代码库),您可以使用:

git checkout --ours my/file

git checkout --theirs my/file

那么,不要忘记提交文件,这样 git 就不会处于这种奇怪的冲突模式。

最简单的方法,如果你有未合并的路径,使用 git merge --abort 中止合并。这样,您的代码将看起来与尝试与其他分支合并之前的代码相同...