当前位置:  开发笔记 > 运维 > 正文

使用Git与Intellij Idea的最佳实践

如何解决《使用Git与IntellijIdea的最佳实践》经验,为你挑选了1个好方法。

简而言之:使用Intellij Idea(9)和Git的最佳实践是什么?

上下文

我们最近升级到Intellij创意版本9,并开始使用Git在现有项目上使用新功能.

我们主要使用git命令行来更好地学习该工具.但是我们认为我们会选择蜂巢头脑来找出git最佳实践的想法.

Idea UI与CVS和Git类似,但底层实现略有不同.

示例问题

例如: - 使用CVS,当我们有多个产品版本时,我们每个人都会拥有1-0,2-0,3-0等分支的本地副本,每个分支都有自己的Intellij文件(即.ipr,.iws等)."git方式"似乎有一个项目并使用'git branch'来切换分支.这很好,但是当你改变分支时,它会为想法创造巨大的开销(因为它必须重新加载每个已更改的文件,包括签入的jar).那么:你们每个"主要版本"还有一个单独的项目(.git),或者有一个项目并使用"git branch"吗?

- 使用Autostash是个好主意吗?

- 您是否自动将每个修改添加到您的git提交?或者稍后使用"git add"?

你有什么变化吗?

- 合并的最佳方式?

- 任何其他提示/提示/为你工作的东西等.

最后评论

我们仍然"在cvs中思考",所以这部分习惯于git; 部分已经习惯了Idea的Ui for git.

这些是相当基本的问题,因为我们仍然主要使用命令行.另外我听说10有更好/更强/更快的git集成工具

谢谢



1> user331465..:

这是我们在Git/Idea几周后发现的.我把它变成了一个社区维基.请投入你的2克朗/厘米/ pfennings /美分.

注意:我正在回答我自己的问题,因为我找到了那些简单易用的要点.

前提

想法是很棒的工具.这里没有人抱怨.只是观察.

最佳实践

在这一点上(9.0.3)使用Idea的Git比使用Idea的SVN更难使用.部分源于Git(vs SVN)的复杂性,部分原因是Idea的工具并不能完成git世界中的所有工作.

因此,您将需要使用命令行

理念的合并工具的工作很多比命令行合并,甚至使用合并工具(MELD使用或合并工具)更好.原因是:你有更多的自由离开在"思想环境"中工作,而不是一次修复一个棉绒.

从命令行更新工作树时,请记住在Idea(ctrl-alt-y)中进行同步

看Git控制台学习想法的git技巧; 想法在那里执行git命令.(版本控制视图,控制台选项卡):

例:

13:30:58.234: git log -M --follow --name-only --pretty=format:%H%x00%ct%x00%an%x20%x3C%ae%x3E%x00%cn%x20%x3C%ce%x3E%x00%s%n%n%b%x00 --encoding=UTF-8 -- src/jsp/workspaces/include/edit.jsp
13:31:02.437: cd J:\projects\PE-GIT\pe
13:31:02.437: git annotate -p -l -t -M HEAD -- src/jsp/workspaces/include/edit.jsp

遗憾的是,Idea在9.0.3中没有很好的工具来"合并上游提交中的冲突"

例:

Alice工作,提交(本地)文件A,提交文件B,提交文件C.

Bob工作,提交文件C,提交文件D,提交文件E.

爱丽丝推动她的变化

鲍勃拉出他的改变

来自CVS/SVN,我期待Ideas弹出方便的差异工具.没有.相反,git/idea会引发一个红旗,我通常最终会使用"git mergetool"(在Linux上使用meld od,在windows上使用tortoiesmerge).

注意:也许Idea提供了更好的方法.请让我直截了当.请注意动机:你能设置.gitconfig来使用Idea的差异化工具吗?

积攒

想法"搁置"功能复制"Git Stash".两者看似相似.两者都使用补丁.您可能想要使用其中一个.我还没有弄清楚其中一个的好处

大老项目

如果您正在处理最近迁移到Git的十年旧项目,则将jar文件签入scm(即之前已检入CVS/SVN,其中log4j-1.0.jar位于BRANCH-2-0中且主线具有log4j- 9.0.jar),请谨慎操作,如果要检出项目的"2.0版本".Idea需要卸载所有"头"罐子并重新加载罐子里检查过的2.0.这需要永远.

其他小东西

即使你已经初始化了Git,想法菜单/ UI仍会显示"git init ...".令人困惑,但忽略它.

你不能在Git和CVS/SVN中拥有相同的工作树(虽然UI似乎暗示如此).我/我们在最初的"让我们尝试git并仍然使用CVS作为备份计划"阶段尝试了这一点.它没用

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有