如何停止合并(再次......)

时间:2015-07-21 10:19:38

标签: git git-merge

我如何明确阻止Git尝试合并?我 从不 希望它合并。

How to make Git honor a cancelled merge that was not asked for?开始,我知道该工具不尊重我的取消,因为它在没有问我的情况下杀死了它旋转的编辑器。所以现在我只是kill -9终端流程。

如果我遇到Git想要合并的情况,我总是想要服务器的源文件副本。我只是在本地删除该文件,然后从服务器再次获取它。

现在,Git用这样的善良来帮助我:

  

您尚未完成合并(MERGE_HEAD存在)   请在合并之前提交您的更改。

当然,git reset HEAD <file>无效。

这是最好的部分:它们是 完全 相同的文件。它们之间存在 没有 差异。我做了一个更改,我在8到12个不同的平台上测试它(用scp复制),然后我在测试后在其中一个盒子上检查它。但是从Tell Git to stop prompting me for conflicts when none really exist?开始,我知道这个工具太愚蠢了,无法在这方面表现出任何情报。

如果您想知道,有一组来源。它们是位于远程服务器上的项目源。我想让Git做的就是结账(克隆),更新(拉),告诉我改变了什么(差异)和签到(推)。我不需要该工具的任何其他功能。

2 个答案:

答案 0 :(得分:4)

您可以为&#39; *&#39;声明custom merge driver。 ({1}}中的(所有文件),带有.gitattributes脚本。

keepTheir

echo * merge=keepTheir > dirWithCopyMerge\.gitattributes git config merge.keepTheir.name "always keep theirduring merge" git config merge.keepTheir.driver "keepTheir.sh %O %A %B" 将是:

keepTheir.sh
  

我需要获取服务器的文件副本(并且可能会混合更改)。在Subversion下,我会使用svn update

简单:使用git fetch(不会触发任何合并),然后git checkout

mv -f $3 $2
exit 0

(参见&#34; git: how to update (checkout) a single file from remote origin master&#34;)

答案 1 :(得分:0)

将此添加到您的.git/config

[merge "keepTheir"]
   name = always keep their during merge
   driver = cp -f %B %A 

并将其添加到您的.gitattributes

public/dist/app.min.css merge=keepTheir