Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:如何对特定于每个开发人员的属性文件进行版本设置?_Git_Workflow - Fatal编程技术网

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现在确实有符号链接,尽管它们有点笨重: