【问题标题】:How to ignore files in Git merge?如何忽略 Git 合并中的文件?
【发布时间】:2013-10-04 20:07:01
【问题描述】:

我正在开发一个有两个分支的 (Django) 网站:masterdev

master 是生产版本,这里不应该直接做任何工作。一旦被认为是稳定的,所有的变化都应该来自合并dev分支。

dev,您可能已经猜到,是开发分支,所有更改都在这里(和子分支)进行。

在服务器中,我有两个网站在工作,生产一个(使用master 分支)和另一个用于开发的私有网站,dev 子域使用dev 分支。

问题是所有的配置文件、静态文件(图像等)都在控制版本中,以便能够轻松地将它们推送到服务器。但是,如果这些类型的文件(静态、配置...)在dev 中被修改为仅在服务器中调试,然后我需要与主文件合并... 如何将一些文件和目录设置为将 dev 合并到 master 时被忽略?

我一直在搜索,我找到了一些 related questions,但他们告诉你使用 .gitattributesmerge=ours。但是,这种方法有一个很大的警告:它仅在文件在两个分支中被修改时才应用该策略,但这不是我的情况。

关于我应该如何继续的任何提示?

【问题讨论】:

  • @givanse 你有没有意识到这个问题已经有一个公认的答案,并且标记为可能重复的问题已经被这个问题引用了?
  • 我正在阅读多个类似的问题,一定是在某些时候将它们混合在一起。我删除了标志,请考虑使用链接源的实际标题。

标签: git branching-and-merging


【解决方案1】:
git结账大师 git merge --no-log --no-ff --no-commit dev git checkout master &ltfiles-you-don't-want-to-merge&gt git add &ltfiles-you-don't-want-to-merge&gt git 提交 -a ~~~ 测试/构建~~~ git push 起源大师

【讨论】:

  • #1 - 合并但不提交;然后从 master 分支中检出 那些 文件,从而忽略合并结果并将它们添加到索引中。休息继续定期合并周期、冲突解决、构建和提交。
  • 我意识到了这一点,但我不明白你为什么先签出然后添加相同的文件:S 如果我签出我不想提交的文件而不添加它们就足够了吗又回来了?
  • 暂存签出文件(git add)是(非)必要的,因为文件与主分支相同;但我喜欢上演它们。认为您已遵循用于合并冲突解决的程序
  • 好的!还有一件事......在进行合并时,--no-log--no--ff 真的有必要吗?还是只设置--no-commit 就足够了?
  • 请在您的回答文本中加入一些解释
【解决方案2】:

说实话,git 听起来是个错误的地方来解决这个问题。

Django 提供了为生产和开发环境进行单独设置/配置的工具。我建议你看看这个帖子:Django: How to manage development and production settings?

如果您遵循上述帖子中的建议,您可以修改您的开发环境的配置等,然后合并到 master 将是无害的,因为生产将有自己的配置。

【讨论】:

  • 你是对的;我更多地以 git 问题而不是网络最佳实践来回答这个问题。
  • 这里只讲设置,但我正在寻找更多... mediastatic 目录里面的内容呢?
  • 如果需要,请为生产和开发环境使用不同的目录:docs.djangoproject.com/en/dev/howto/static-files
  • 关于设置...我使用一个名为settings_shared.py 的模块,其中包含所有常用设置。然后,我有一个settings.py 文件,它从settings_shared 导入所有变量。每个分支都定义了自己的settings.py。关于静态文件...我不希望能够从具有static_masterstatic_dev 的另一个分支修改静态内容。做“手动合并”我认为这对我来说是一个很好的解决方案。无论如何,感谢您的 cmets,这很有用! :)
【解决方案3】:

已经很久了。但我正在寻找相同的解决方案。它突然出现在我的脑海中:使用子模块进行配置。使用子模块,您可以为不同的配置创建多个分支。

使用符号链接来链接子模块中的文件(在子目录中)。

【讨论】:

    猜你喜欢
    • 2013-02-20
    • 2016-04-04
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 2018-12-26
    • 2020-11-13
    • 2021-09-16
    相关资源
    最近更新 更多