Git:如何对特定于每个开发人员的属性文件进行版本设置?
我有一个项目看起来像这样:Git:如何对特定于每个开发人员的属性文件进行版本设置?,git,workflow,Git,Workflow,我有一个项目看起来像这样: src build | - build.xml | - build.properties 每个开发人员的计算机上的build.properties文件都会不同 通常,我们的团队方法是永远不要提交build.properties文件,除非向其中添加了新属性 这个解决方案并不理想。这意味着每个开发人员的属性文件都没有版本控制,除非他们做了一些棘手的事情 在Git中有处理这种事情的标准方法吗 同样的问题也适用于: 属性文件 项目设置(eclipse中的特殊性)
src
build
| - build.xml
| - build.properties
每个开发人员的计算机上的build.properties文件都会不同
通常,我们的团队方法是永远不要提交build.properties文件,除非向其中添加了新属性
这个解决方案并不理想。这意味着每个开发人员的属性文件都没有版本控制,除非他们做了一些棘手的事情
在Git中有处理这种事情的标准方法吗
同样的问题也适用于:
- 属性文件
- 项目设置(eclipse中的特殊性)
- 其他应该保留和版本化的更改,但决不推送到其他开发人员的机器上
# 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
#未为提交而暂存的更改:
#(使用“git add…”更新将提交的内容)
#(使用“git签出--…”放弃工作目录中的更改)
#
#修改:.settings/org.eclipse.wst.common.component
#修改:.settings/org.eclipse.wst.common.project.facet.core.xml
#……更多
如果您在Linux上,开发人员可以将这些文件存储在单独的本地repo中,然后将它们符号链接到开发repo中的正确位置,并将它们添加到那里的.gitignore文件中。不过,这会让开发人员有责任去他们的设置repo提交更改,因为开发人员repo不会提醒他们设置文件已经更改
如果这些可以捆绑到一个文件夹中,那么它们可以在本地成为一个子模块。然后至少会有一些通知,说明设置子模块中有“更改”。这样做的好处是,您可以让构建和其他设置与代码保持同步。我不知道这有多重要,但您可能会在代码中进行更改,例如编译设置的更改,这将使这些更改在每个开发人员的基础上通过历史联系在一起。我最终做的是提交分支
devEnv Jake
上的所有文件。然后,当我想把它们拉进来时,我运行jake mergeDevEnv git,它的别名是:
alias jake-mergeDevEnv-git='git merge --no-ff --no-commit devEnv-Jake ; git reset'
缺点是您必须小心不要将这些文件提交到您正在处理的分支 SVN本地保存文件。或者在git上创建一个文件夹,让每个开发人员都命名他们的文件(我假设这是一个备份)。不过有点笨重。事实上,GIT如何知道为每个用户保留此文件的多个版本?@SH-我想这是每个使用GIT的人都面临的问题,因此必须有一些标准解决方案。耶,我想知道,它是有用的。它似乎与GIT的核心结构截然相反。可能相关:从该链接上的一条评论来看,这似乎直接相关,而且令人眼花缭乱:-虽然它看起来像是我们在别处讨论的符号链接的包装。是的,这就是我在家里对我的点文件(.bashrc、.vimrc等)所做的但在工作中,我们使用的是windows,因此符号链接解决方案不起作用。windows现在确实有符号链接,尽管它们有点笨重: