Eclipse Projects和Git

时间:2013-09-26 18:27:53

标签: eclipse git

我通过终端使用计算机A创建a)创建git存储库,b)向repo添加index.html文件,c)添加远程源,d)推送到远程源。一切都好。

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

返回计算机A,我使用Eclipse在原始repo文件夹中创建项目,然后我尝试从远程源启动,以获取使用计算机B时推送的更改。

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

请提供有关如何避免此事的信息。

  • 我是否应该从Eclipse中创建本地repo然后将其推送到远程源,以便(.settings)等项目受版本控制,并且(如果有的话)如何给人们克隆带来麻烦repo并使用不同版本的Eclipse?

  • 我应该gitignore这些项目吗?

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

2 个答案:

答案 0 :(得分:0)

看起来你没有gitignored eclipse文件。

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

强烈建议你gitignore那些eclipse文件。您可以在github gitignore repo中看到.gitignore文件的示例。

希望它有所帮助。

答案 1 :(得分:0)

它抱怨,因为如果您从遥控器中提取更改,它将覆盖您的本地文件。那就是问题所在。另一个回答者有权利。您应该更好地添加所有eclipse项目文件,并将.settings和classpath作为目标添加到gitignore。在创建项目之前,您也可以为计算机使用全局gitignore。例如,您可以使用maven,然后只能从git存储库中给出的pom.xml -s导入项目。 我用它们一样。 Egit和其他guis有点太复杂了。 Git存储库可以在一个不一致的状态下变得容易,你应该使用oldfashioned终端来解决问题。喜欢,重新定位,融合冲突。 Gits学习曲线很扎实。 现在,您可以解决问题,如果在第一台计算机上保存原始备份并在以后修复项目后再修复它。在第二个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 repo和其中的dotfiles。我也将它用于不同的Windows和Linux发行版。 就这样。您应该将所有配置保存在安全的地方。源代码管理可以做到这一点。但是不要把私人物品交给一个公共场所! ;)

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