Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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
如何忽略eclipse元数据但保留模板?_Eclipse_Git_Version Control_Gitignore - Fatal编程技术网

如何忽略eclipse元数据但保留模板?

如何忽略eclipse元数据但保留模板?,eclipse,git,version-control,gitignore,Eclipse,Git,Version Control,Gitignore,我在Eclipse中有一个ARM项目……实际上,我正在使用基本CDT Eclipse的STM工作台包 我和其他几个人一起工作,我们使用一个git服务器来推拉 然而,每个人的工具链、操作系统等都有一点不同的设置 这会带来麻烦,因为我们是git傻瓜,当我们在本地工作后推动更改时,我们会这样做 git add . git commit -m "some message" git push origin master 当我们做改变的时候,我们就做了 git pull origin master 祈祷

我在Eclipse中有一个ARM项目……实际上,我正在使用基本CDT Eclipse的STM工作台包

我和其他几个人一起工作,我们使用一个git服务器来推拉

然而,每个人的工具链、操作系统等都有一点不同的设置

这会带来麻烦,因为我们是git傻瓜,当我们在本地工作后推动更改时,我们会这样做

git add .
git commit -m "some message"
git push origin master
当我们做改变的时候,我们就做了

git pull origin master
祈祷在此期间没有其他人做任何事情,因为我们害怕合并分歧,但这是另一回事

无论如何,整个项目都有一些子目录,其中包括数据表、Word文档等等……但是,它还包括Eclipse项目的元数据。因此,最后一个提交的人也会推送他们的独特设置,例如工具链路径、首选生成器等。这会破坏其他人的设置,在每次推送之后,其他人都必须手动更新他们的项目设置以修复此问题


那么,对于项目设置,哪些文件对Eclipse来说是特殊的,如果这些文件已经存在,我如何告诉git忽略它们呢?例如,它们需要可用于
git克隆
,但在后续的
git push
git pull
中,它们需要被忽略。

如果您需要设置文件,而不需要重命名它,并且设置文件也无需进行版本控制,那么有一种方法可以通过
.gitignore
执行以下步骤:

  • 创建一个.gitignore文件<代码>触摸。gitignore
  • 编辑并保存.gitignore文件

    .gitignore
    文件名

  • 从版本控制中删除缓存<代码>git rm--缓存的文件名

  • 提交并推送

  • 如果您需要设置文件而不重命名它,并且设置文件也可以,则无需执行版本控制,因此有一种方法是通过
    .gitignore
    执行以下步骤:

  • 创建一个.gitignore文件<代码>触摸。gitignore
  • 编辑并保存.gitignore文件

    .gitignore
    文件名

  • 从版本控制中删除缓存<代码>git rm--缓存的文件名

  • 提交并推送

  • 您可以通过以下方式忽略这些文件的本地更改:

    git update-index --skip-worktree -- .project
    git update-index --skip-worktree -- .classpath
    
    请参阅:“,它应该更好地抵抗
    git拉


    另一种选择是使用内容过滤器驱动程序,该驱动程序(在
    git签出时自动生成
    .classpath
    ),如果它还不存在的话。
    这允许您对
    .classpath.tpl
    模板进行版本设置,并且您可以将实际的
    .classpath
    完全保密(并且在
    .gitignore
    中)

    请参阅。

    您可以通过以下方式忽略这些文件的本地更改:

    git update-index --skip-worktree -- .project
    git update-index --skip-worktree -- .classpath
    
    请参阅:“,它应该更好地抵抗
    git拉


    另一种选择是使用内容过滤器驱动程序,该驱动程序(在
    git签出时自动生成
    .classpath
    ),如果它还不存在的话。
    这允许您对
    .classpath.tpl
    模板进行版本设置,并且您可以将实际的
    .classpath
    完全保密(并且在
    .gitignore
    中)

    看。

    我不这么认为……我不确定。我的理解是(在打破这一点几次之后)项目通过关联文件名来查找这些项目名…因此,就Eclipse而言,更改文件名就像完全删除它们一样糟糕。好的,因为您的项目无法重命名设置文件,如果您不需要在remote中推送设置文件,还有另一种方法。我更新了我的答案,请检查它是否符合你的要求。我不这样认为…我不确定。我的理解是(在打破这一点几次之后)项目通过关联文件名来查找这些项目名…因此,就Eclipse而言,更改文件名就像完全删除它们一样糟糕。好的,因为您的项目无法重命名设置文件,如果您不需要在remote中推送设置文件,还有另一种方法。我更新了我的答案,请检查是否符合您的要求。