GitHub+;Eclipse工作流

GitHub+;Eclipse工作流,eclipse,git,egit,Eclipse,Git,Egit,我相信这是一个RTFM的事情,但经过几天的研究,我仍然无法确定正确的(或最好的)工作流程 我有一个Eclipse工作区,其中有许多Java项目和许多C++/Arduino项目 我想开始使用GitHub作为我的项目的在线存储库(可以从我的私有LAN开发环境外部轻松访问) 我想我想要一个单独的C++/Arduino和JavaGithub repos。Python、PowerShell等可能会有更多的建议(但我很乐意接受其他关于回购结构的建议) 除了使用Egit的实际机制之外,我无法找出实现这一点

我相信这是一个RTFM的事情,但经过几天的研究,我仍然无法确定正确的(或最好的)工作流程

  • 我有一个Eclipse工作区,其中有许多Java项目和许多C++/Arduino项目
  • 我想开始使用GitHub作为我的项目的在线存储库(可以从我的私有LAN开发环境外部轻松访问)
  • 我想我想要一个单独的C++/Arduino和JavaGithub repos。Python、PowerShell等可能会有更多的建议(但我很乐意接受其他关于回购结构的建议)
除了使用Egit的实际机制之外,我无法找出实现这一点的最合适的工作流/文件夹结构。我是否应该创建本地Git repo并将其作为远程应用程序推送到GitHub?我应该使用GitHub的web界面来导入整个Eclipse工作区吗?我应该直接使用Eclipse工作区还是使用单独的Git文件夹

我想我的问题的症结在于,在阅读了这个站点上的一些相关文章之后,我得到了关于从Eclipse工作区创建本地回购与单独的本地回购的相互矛盾的建议。我认为在最终确定最佳的总体工作流程之前,我需要首先理解这一区别

对于这个问题的广泛性,我深表歉意,但我希望社区能够帮助我缩小工作流流程设计(或问题本身)的范围。

  • 永远不要将整个工作区置于源代码管理中;项目:是,工作区:否。
    .metadata
    文件夹包含特定于该位置和您的计算机的数据,这忽略了公开该位置和计算机的任何潜在安全风险

  • eGit可以处理git克隆的元数据,因此如果您更愿意从命令行执行某些操作,那么就使用它。我知道我是,但我仍然很欣赏eGit提供的UI和装饰。只需确保工作区Git首选项页面上的任何自动刷新/更新首选项都已打开

  • 您可能希望存储库包含多个项目,而不是每个项目都有一个单独的存储库。这样,历史和变化就在一起了。以您喜欢的方式嵌套布局,但请记住,您也不必将所有内容都限制在单个存储库中

  • 我不知道这方面是否有最佳实践,特别是对于已经存在的项目,但项目本身应该是可重新定位的。我的建议是,在支持了这一切之后:

  • 制作Github项目,在本地克隆其回购协议。我这样做,从命令行,以节省我的任何头痛与历史,远程和参考。不过,我认为您不能用这种方法修改存储库元数据

  • 将工作区项目移动到本地克隆中。您可以从工作区中删除它们(确保以删除底层文件),在Eclipse之外物理移动目录,然后从Git Repositories视图中返回——除非它们是Maven项目,在这种情况下,最好使用M2E的导入向导

  • 阶段化、提交并将项目推送到远程源。对于Java项目,不要忘记在Java构建路径中设置
    JRE系统库
    ,以使用执行环境。这是一个简单的间接操作,使它们更易于跨机器移植


  • 我非常感谢你详细的回答。它很有帮助,而且写得很好。我想知道你是不是有意先从“两件事”开始,然后列出三件事。如果是这样的话,我希望我能给你加分。哈,不,我想我加了第三个,因为我记得关于这个的其他问题,但没有意识到它“打破”了结构。