2012-09-04 121 views
3

是否有可能一直保留某个文件未合并?Git:保留特定文件未合并

我要的是:

如果有两个分支(A)和(B),并且它们具有相同的文件。例如,

在分支(A)中的文件 “设置” 有以下几点:

this is setup 
in a branch A 

在分支(B)的文件 “设置” 有以下几点:

this is setup 
in a branch B 

这些分支没有未提交的文件(对不同分支中相同文件的不同提交)。

GOAL将合并这些分支后保持这些文件不被触及。

How to tell Git to always select my local versionPrevent merging a file from master with Git中的解决方案对此不起作用。因为它们只在合并它们时发生冲突时才起作用。 (好吧,如果我们合并这两个分支并且它只工作一次,会发生冲突,但是如果我们合并(A)到(B),然后(B)到(A),那么文件变得相同两个分支)

GIT是否有这种可能性?

+1

您在问如何解决问题,而不是如何解决问题。你可以退后一步,并解释为什么你想要/需要这个?然后,我们可以提供更好的建议如何做事情。 – Ikke

+0

你是否期望文件有进一步的变化? – kan

+0

是的。我希望在这个特定的文件和其他文件中有进一步的变化,这些文件需要像往常一样合并。 –

回答

4

不,git没有简单的方法来做到这一点,因为git对待合并。

我可能是错的,但似乎你想保持配置文件合并。是对的吗?因为有更好的/其他的方式来处理配置文件。

This页面解释了一些解决方案如何处理几种情况。

摘要:

  • 如果你可以修改你的程序,让别人忽略未跟踪
  • 您的配置文件,如果您不能修改程序,不跟踪配置文件本身,而是跟踪模板。
+0

是的,你是对的。它是一个配置文件。我怎样才能让他们不同的主人和发展部门? –

+0

@EsenbekKydyruulu阅读我发布的链接。它包含一些替代品。 – Ikke

+0

谢谢!它有很棒的想法。我不认为他们在我的情况下工作,但在我看来,我可以使用模板,而不是实际的配置文件,并以某种方式管理它。 –

1

如果你真的需要保留他们掌握和开发分支不同,我推荐第二个选项提到了Ikkeanswer和版本2值的文件(一个主,一个用于Dev分支),加一个模板文件。

具有多个值文件意味着它们不会在分支之间发生合并问题(每个用户只修改与当前分支相关的值文件)。
模板文件是有帮助内容filter driver到结账产生私人文件,它代表了实际的配置文件(用正确的语法,从模板文件和正确的价值观,用正确的价值文件,after the current branch

filter driver

+0

这是非常有用的,但不幸的是在我的情况下不起作用。因为我的应用程序运行在不同的分支上,并且配置文件不时更新。 'git checkout'只做了一次,但是它'拉动配置文件很多次。 –

+0

@EsenbekKydyruulu'git pull'会触发结帐和过滤器触发器。 – VonC

1

做出.gitignore文件所在的文件存在,只是把文件名中的目录中!

然后运行表彰

的git RM -cached path_to_setup.file

因此,它会忽略文件中的所有像合并,拉,推的业务,...

更多infromation:https://help.github.com/articles/ignoring-files

+0

忽略该文件会使其无法跟踪存储库。我需要卡车。 –

1

有点长篇大论,但使用--no-commit您最初的合并操作,然后检查取出原始文件以确保它没有被覆盖,然后提交。

目前git邮件列表上还有一个“预合并钩子”讨论,这也可能会给你一些选择。 git list

你也可以尝试在看git的源代码和沿线加入.gitdonotmerge文件(在同一目录)作为.gitignore(再使用所有现有的代码;-)和更新合并stratgetgy选项,以便这种适度常见的麻烦得到修复。抓住你自己的开源痒的乐趣!

0

其中一个选项是git update-index --assume-unchanged [file]它将忽略登台和提交时文件的更改,但会将其保留在存储库中。这是一个危险的命令,因为您需要记住,假设要提交更改时,您已假定文件未更改。另外,我不完全确定这将如何与合并行为。

相关问题