2013-09-26 61 views
0

我通过终端使用的计算机甲创建)建立一个git仓库,b)一种index.html文件添加到回购,c)加入的远程来源,d)推到所述远程来源。一切都好。Eclipse项目和git

然后,我用计算机乙克隆通过终端该存储库。然后,我打开Eclipse(配备了Egit),并在由克隆过程创建的文件夹中创建了一个新项目。然后我使用Eclipse将任何更改推送到远程原点。

回到计算机A,我用Eclipse创建原回购文件夹中的项目,然后我试图从远程产地拉,以获取使用计算机B.

当推的变化

Eclipse不会这样做。它抱怨我有诸如.settings.project和类似的项目,并且由于它们不受版本控制,它不会通过从服务器获取文件来覆盖它们。我不得不手动删除这些文件(通过终端),然后Eclipse按预期工作。

请提供关于如何避免这种情况的信息。

  • 我应该在Eclipse中建立本地回购,然后将其推送到远程的原点上,所以项目如(.settings)是版本控制,(如果有的话),如何将这项寻衅滋事的人克隆回购并使用不同版本的Eclipse?

  • 我应该gitignore那些项目?

  • 我应该让Eclipse将其自己的关联文件保存到另一个文件夹(不是我知道如何做到这一点,我只知道NetBeans这样做)?

+0

我喜欢在源代码控制中包含.project文件。从eclipse中的git repo视图中,您应该能够克隆,然后导入项目,而不必第二次创建它。一般情况下,我会排除其他可能与系统相关的设置文件。 – aet

回答

0

看起来像你没有gitignored eclipse文件。

也许,当你通过egit提交/推送时,你也提交并推送那些已经在你的机器A中未版本化的文件,所以git抱怨,因为你要求覆盖现有的未版本控制的文件。

强烈建议您gitignore这些日食的文件。您可以在github gitignore repo中看到.gitignore文件的示例。

希望它有帮助。

0

它抱怨,因为如果你拉从远程更改将覆盖本地文件。那就是问题所在。另一个回答者有权利。您最好添加所有的eclipse项目文件,并将.settings和classpath目标文件添加到gitignore中。在创建项目之前,您也可以为您的计算机使用全局gitignore。例如,你可以使用maven,然后你只能从git仓库中给出的pom.xml-s导入你的项目。 我使用它们相同。 Egit和其他guis有点太复杂,无法使用。在不一致的状态下,Git存储库可以很容易地使用旧式终端来解决问题。喜欢,重新设定,合并冲突。学习曲线是稳定的。 现在,如果在第一台计算机上保存了原件的备份,并在稍后修复了项目后克隆了项目,则可以解决问题。在第二个git中删除所有这些文件,但使用--cached选项来避免删除它们。在你这样做之前,检查一下git remove的帮助!你做完这些之后,把它们放进去。gitignore作为带有通配符的文件名。您也可以在用户文件夹中使用全局gitignore文件。创建的.gitconfig文件,你可以指定地址全局忽略下列要求:

[core] 
    excludesfile = ~/.gitignore_global 

不仅仅是创建这样的.gitignore_global:

/nbproject 
/bin 
/build.xml 
.idea 
chess.iml 
target/ 
bin 

(此文件是理念和NetBeans,你可以在这里添加eclipse项目文件)

您也可以为每个项目配置.gitignore文件。您可以将它们提交到存储库,因此在下一台计算机上,您不必再次执行此操作。我认为最好的方式是拥有一个dotfiles git存储库,它是您的主目录的git仓库和其中的点文件。我也将它用于不同的Windows和Linux发行版。 就是这样。您应该将所有配置保存在安全的地方。源代码管理可以做到这一点。但不要私人的东西公开一个地方! ;)

哦,我想提一下,你可以在你的.gitignore文件中有.gitignore条目。当你不想触摸一个仓库,但是需要添加一个gitignore来隐藏某些东西,尤其是从给定的仓库中隐藏某些东西时,这可能非常有用。