问题
从克隆的git存储库导入Eclipse项目后,我做了一些更改并提交 - 和wtf?我得到一个“.git”文件夹添加到项目中,整个shebang与head和refs以及最糟糕的整个对象数据库被添加到项目中,所有文件/文件夹都有这个小问题-mark图标表示文件尚未添加/尚未被git跟踪。这个.git文件夹存在于实际的工作目录中(这有什么意义呢?)。您可以想象当尝试使用“同步”工具/视图时(这应该会使生活更轻松,您可以看到所有更改并更改文件和差异),这会引起什么烦恼。
问题(tl; dr)
如何从克隆的git存储库中正确导入Eclipse项目?我提交时不希望在“Team> Synchronize”中显示.git文件夹,让.git文件夹驻留在我项目之外的其他位置。
其他信息
我在使用Eclipse Indigo和Egit的Windows 7上。
我使用Egit从http://git.apache.org/(确切地说是ofbiz项目)克隆git repo,在向导中我选择从这个新克隆的repo中导入现有项目的选项。
是的我知道我对Egit的期望很少。事实上,如果有任何替代方法(外部git工具?命令行git for windows?其他?)在Eclipse中使用git跟踪的项目,将实际的.git东西保留在项目之外,我很乐意放弃Egit
答案 0 :(得分:0)
克隆git存储库时,默认行为是在本地克隆的根目录中创建.git文件夹。您可以通过设置GIT_DIR变量来更改默认行为:
Git docs说:
“GIT_DIR 如果设置了GIT_DIR环境变量,那么它指定一个使用的路径而不是默认的.git作为存储库的基础。“
根据您使用的终端,您可以使用setenv或export进行设置。 例如在bash终端中:
export GIT_DIR='[path_to_git_directory]'
设置变量后,您应该能够克隆并且.git目录应该显示在指定的目录中。
答案 1 :(得分:0)
我完全同意 - 我无法想象任何人都有意提交.git文件夹!
git / EGit 知道这是项目的存储库文件夹,因此应该很容易实现相应的异常 - 这样该文件夹就不会成为同步的一部分。
我知道以下内容无法解决您的问题,但是如果您控制文件在存储库中的布局方式,您可以选择将Eclipse项目文件夹不作为根文件夹存储库,而是一个子文件夹。
这也允许您在存储库中拥有不应该出现在Eclipse中的东西,或者甚至将多个Eclipse项目分组在一个存储库中(如果您希望这样做)。