Git:如何为每个开发人员特定的属性文件版本?

时间:2013-06-10 21:37:21

标签: git workflow

我有一个看起来像这样的项目:

src
build
  | - build.xml
  | - build.properties

build.properties文件在每台开发人员计算机上都会有所不同。

通常我们的团队方法是永远不会提交build.properties文件,除非添加了新属性。

此解决方案并不理想。这意味着每个dev的属性文件都没有版本化,除非他们做了一些棘手的事情。

在Git中有没有一种标准的方法来处理这种事情?

同样的问题适用于:

  • 属性文件
  • 项目设置(日食中的特异性)
  • 应保留和版本化但从未推送到其他开发者机器的其他更改

谢谢!

编辑:如果文件没有显示在这里也会很好:

# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   .settings/org.eclipse.wst.common.component
#   modified:   .settings/org.eclipse.wst.common.project.facet.core.xml
#   ...many more

2 个答案:

答案 0 :(得分:0)

如果你在Linux上,开发人员可以将这些文件存储在一个单独的本地存储库中,然后将它们符号链接到开发存储库中的正确位置,并将它们添加到那里的.gitignore文件中。这将使开发人员有责任转到他们的设置仓库以提交更改,因为开发者仓库不会提醒他们设置文件已经更改。

如果这些可以捆绑到一个文件夹中,可以在本地创建一个子模块。然后至少会有一些通知表明设置子模块中有“更改”。关于这一点的好处是你可以让构建和其他设置与代码保持同步。我不知道那是多么相关,但您可能会在需要更改的代码中进行更改。编译设置,这将使那些通过历史记录在每个开发基础上保持联系。

答案 1 :(得分:0)

我最终做的是提交分支devEnv-Jake上的所有文件。然后,当我想要将它们拉入时,我运行jake-mergeDevEnv-git,这是别名的:

alias jake-mergeDevEnv-git='git merge --no-ff --no-commit devEnv-Jake ; git reset'

下行是您必须小心不要将这些文件提交到您正在处理的分支。