将 Git 存储库保留在 Eclipse 工作区内部还是外部更好?

2024-03-12

我是一名典型的 Eclipse/Subversion 用户,开始迁移到 Git。我研究了 git 的基本概念,并决定一开始坚持每个存储库一个项目的方法,以保持事情简单。不过,我仍然无法决定将每个项目的存储库放置在哪里。

我花了很多时间查看答案这个问题 https://stackoverflow.com/questions/7906045/git-eclipse-workflow,尽管我相信该问题的作者假设如果存储库位于 Eclipse 工作区中,则只能使用 Eclipse 来管理存储库,这当然不是真的。

不过,这个问题最让我印象深刻的是,除了一个答案(包括已接受的答案)之外,所有答案都建议将存储库保留在 Eclipse 工作区中,而只有一个答案指出Egit 用户指南 http://wiki.eclipse.org/EGit/User_Guide#Considerations_for_Git_Repositories_to_be_used_in_Eclipse建议恰恰相反。

然而,在实践中,Eclipse/EGit 实现了许多方法,其中一些似乎与 EGit 建议相矛盾。

例如,如果您使用新建项目向导从 Git 创建一个新的 PHP 项目,并且存储库是远程的,Eclipse/EGit 会很乐意在 Eclipse 工作区中创建一个项目文件夹,并将存储库 (.git) 放入项目文件夹中。这是我真正想要的最终结果,因为它将所有内容都封装在 Eclipse 工作区中。

但是,如果您使用新建项目向导并选择本地的 Git 存储库,Eclipse/EGit 不会像远程存储库那样克隆该存储库。相反,它使用该存储库的工作副本作为项目位置,在该位置创建其 .project 和其他元内容,并在该工作副本中创建一个新的(看似不必要的)文件夹,其名称与您的项目相同(因此您结束例如,~/git/blah/blah)。如果删除该多余的文件夹,您最终会得到与第一个示例相同的结构,唯一的区别是项目文件夹不是 Eclipse 工作区文件夹的子文件夹,它位于文件系统上的其他位置(例如。~/git/blah)。这种方法似乎唯一积极的一点是它遵循了 EGit 用户指南中的建议,但从技术角度来看,很难看出这与第一个示例有何不同。

鉴于这些令人费解的观察结果,我想知道人们使用这些方法中的每一种都有什么样的经历,以及如果忽略 EGit 用户指南中的建议可能会出现哪些陷阱。


这两种解决方案的含义都直接列在您链接的用户指南中。我可以告诉你这部分

这可能会导致性能问题

不幸的是,这是非常真实的。因此,如果您的工作区中有一个包含大量文件的 git 目录,则许多 git 操作将以“计数对象...”对话框开始,该对话框会阻止您的 IDE,因为它会扫描工作区中的所有文件。对于我当前的 20000 个文件,这意味着每次提交、每次切换都要等待 10 到 20 秒……

在业余时间活动中,幸运的是我可以使用其他替代方案(在工作区之外使用 git 工作目录),一切都感觉更加快捷,并且合并和切换很有趣。

因此,如果您要进行大型项目,请考虑将工作区之外的 git 目录作为首选。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Git 存储库保留在 Eclipse 工作区内部还是外部更好? 的相关文章

  • 名称和电子邮件在 Git 的每用户配置文件中设置,但 Git 仍使用默认生成的名称和电子邮件

    标题已经说了 但我会更彻底地解释一下 我已使用以下命令按照建议配置了用户名和电子邮件 git config global user name git config global user email 我可以通过执行以下操作来验证这是设置的g
  • git update-index --no-assume-unchanged 不起作用

    我设置了assume unchanged咬了几个文件 现在我想取消它们 但这不起作用 gt git update index no assume unchanged Gemfile gt git ls files v grep Gemfil
  • 获取Eclipse中当前编辑文件的绝对路径

    我想编写一个插件来对 Eclipse 中当前编辑的文件执行某些操作 但我不确定如何正确获取文件的完整路径 这就是我现在所做的 IFile file IFile window getActivePage getActiveEditor get
  • 如何与其他用户共享 bitbucket 存储库?

    我正在使用 Bit 存储桶 并且我想与一位朋友分享我的存储库 我用的是免费的个人账户 似乎有一个选项可以在位桶中创建团队 但它说它将把我的帐户从个人帐户转换为团队帐户 我不要那个 我如何授予其他用户访问此存储库的权限 有一个共享链接选项 如
  • 将处理项目移至 Eclipse

    我已经在处理项目上工作了一段时间 现在想将其移至 Eclipse 中 我已经在 Eclipse 环境中安装了 Proclipse 我有很多扩展名为 pde 的文件 然而 Proclipse 文件都以 java 结尾 所有 pde 文件都存在
  • 如何避免Eclipse在将类名放在注释中时导入类,以便checkstyle稍后不会抱怨?

    有时我将类名放在方法或类的注释中只是为了引用 但是 Eclipse 会自动执行导入并在文件中留下导入语句 这会导致稍后出现 未使用的导入 检查样式错误 当我在注释中输入类名时 是否可以更改一些配置以避免 Eclipse 自动导入 人们不同意
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • 当类明显存在时,我收到 java.lang.NoClassDefFoundError

    当我尝试在运行时使用该库时 出现以下错误 java lang NoClassDefFoundError com google api client extensions android2 AndroidHttp 我已经将此库添加到我的项目中
  • git 从存储中删除文件

    我有一个藏匿处 里面有一堆文件 但由于文件冲突 我无法应用我的存储 我已经在我的存储中发现了有问题的文件 我想将其删除 如何从存储中删除单个文件而不破坏整个文件 存储是一次提交 或者实际上是两次甚至有时是三次提交 并且您无法更改提交 那么
  • Git rebase --继续而不打开编辑器

    调用时git rebase continue在正常的变基冲突之后 编辑器 GIT EDITOR 打开并要求修改提交消息 因为提交消息可能包含前导 所以这可能会失败 export GIT EDITOR true git rebase cont
  • 将主分支的提交合并到另一个分支,但不合并两个分支

    我有 git 存储库和一个主分支 我决定开发新功能 并且创建了新分支 new branch 我已经在 new branch 中创建了一些提交 但我还没有完成新功能 我决定修复 master 分支中的一些错误 因此我切换到 master 分支
  • gitattributes 中的`* text=auto eol=lf` 会做什么?

    我们的 gitattributes 文件中有这样的内容 text auto eol lf 我想准确理解这是做什么的 第一部分是text auto 来自文档 http git scm com docs gitattributes 这确保了所有
  • 如何使用 git 撤消所有空白更改

    我有一个 git 存储库 我在其中本地替换了很多文件 git status 现在显示许多修改的文件 有些是 真正修改过的 其他的只是行结尾不同 我希望那些仅通过行结尾不同的内容消失 git重置它们 但是 我似乎找不到 linux pipin
  • 如何解决git中文件重命名文件夹冲突?

    我有以下问题 我有两个分支 Branch1 和 Branch2 的一些共同提交 A Branch1 是一个公共分支 位于服务器上 Branch2 是本地分支 在 Branch1 中我更改了文件 BAD folder somefile txt
  • 将远程更改合并到非当前分支的分支中

    我有多个分支 我想将远程更改合并到一个分支中不是我当前的分支 例如 git merge remote branch some other branch 仅当本地分支可以快速转发到远程头时 这才是可行的 在任何分支中 要从源获取远程分支并更新
  • 如何 git checkout 提交并将子模块更新到该提交?

    我正在克隆一个带有子模块的项目并恢复到大约一年前的提交 git clone recursive branch 5 6 https codereview qt project org pyside pyside setup cd pyside
  • git reword 在变基期间显示合并冲突,但是 pick 工作正常

    我正在尝试用很少提交的另一个分支来重新建立一个分支 虽然提交包括合并提交 但我可以使用以下命令成功地对其进行变基git rebase i r m
  • Eclipse JAVA工具jar不存在

    The archive C Java jdk1 6 0 26 32 lib tools jar which is referenced by the classpath does not exist 这是我运行Tomcat时遇到的错误 清理
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • Eclipse 错误:“设置构建路径”遇到错误

    我正在使用一个名为 jtwitter 的 API 它有一个 jar 文件 jtwitter jar 我一直在使用它并使用 git 维护它 我把代码托管在github上 有些天 我没有碰过它的代码 今天 当我克隆我的 git repo 时 实

随机推荐