美文网首页
Git 和 intellij idea使用

Git 和 intellij idea使用

作者: 奉先 | 来源:发表于2019-01-01 22:24 被阅读30次

    1. IDEA中Git的使用方式

    1.1 在IDEA中配置git的安装路径。

    使用的版本是ULTIMATE 2018.3。 配置git的安装目录,Mac系统可以使用系统自带的git即可。点击Test来测试已经配置好:


    1.2 使用IDEA 创建项目并提交本地仓库

    创建一个简单的java项目来测试提交本地仓库,点击 File -> New -> Module 来新建一个Moudle,注意配置路径步骤,将module放在项目根目录下。



    创建一个简单的类作为测试。下面将项目提交到本地库。左键选中这个项目,按照下边的图示最终点击"Create Git Repository..."



    在弹出框中,选好这个项目的目录:

    选好了项目目录后,项目中的文件也相应的变为了红色(红色表示已经初始化好了本地库):



    如果cd到这个项目的目录下,也可以看到.git文件夹,说明已经完成了git的初始化(git init的结果):

    下面就需要提交文件到暂存区(git add [filename])和本地仓库(git commit -m "x" [filename]),在IDEA中,这2步是合成了一步完成的。右键我们的项目,按照下图选择"Commit Directory..."

    选择要提交到本地仓库的文件,并键入注释信息,点击“Commit”按钮完成上传本地仓库。

    1.3 IDEA指定忽略文件

    在进行版本控制时,应该只提交开发的代码(.java文件),不能提交一些IDEA项目的配置文件.iml文件,因为不同开发人员的IDEA工具的版本会有差别,如果版本控制了这些工具配置文件,其他人员在pull文件时,如果拿下了iml文件会影响自身工具的配置,导致错误。
    第一种方法,设置某些格式文件不显示:


    第二种方法,是我选取的方法,将某种类型的文件,排除在VCS控制之外。

    配置好了之后,显示后的内容不会放在VCS控制内,不会被提交。例如,下面的例子,将规定所有以iml结尾的文件将不在VCS控制下。

    第三种方法需要安装.ignore插件。
    访问下面的地址来下载插件:http://plugins.jetbrains.com/,选择要安装的插件来搜索,搜索出结果后,非常重要的是查看自己的IDEA的版本,选取
    对应版本的插件*。

    1.4 推送代码到远程库

    既然推送到远程库,首先需要先建立一个远程库,这里我以码云(https://gitee.com/)为例,其他Github,私服的Gitlab也是同样的。
    先在码云上创建一个空的仓库:


    创建好空的远程仓库后,复制HTTP链接备用,https://gitee.com/mjlsg/GitTestDemo.git。下面在IDEA中右击项目GitTestDemo1将其push到这个远程仓库。

    在下一个窗口中点击 "Define remote":

    下一步定义远程库的别名,下面窗口中,"Name"项是远程库的别名,URL是远程库的地址。

    下面直接点击push完成整个“推送代码到远程仓库”的操作。

    需要注意的是,在推送代码到远程仓库时涉及到用户密码管理、权限等诸多问题。IDEA可以记录用户名,密码这样可以防止每次在push时都需要输入用户名、密码,很麻烦。
    但是,这里有一点需要特别注意,有时在记录用户名、密码时可能会出现Authentition的问题,这种问题出现的场景时,当多个用户共同开发一个project时,他们都需要从一个远程仓库地址来checkout,也需要push。这时,一定注意自己的用户和相应的权限是否符合要求。如果权限不符合要求,就会出现Authentition问题。
    最后,经检验代码已经在远程仓库上,push成功。

    1.5 IDEA克隆远程仓库项目到本地

    克隆远程仓库项目,需要先获得要clone项目的HTTP地址。在IDEA中,按如下操作:


    点击后,输入要clone的项目的HTTP地址和项目需要放置的位置,如下图:

    上边的截图中,可以点击 "Log in to Github..."按钮,并设置其他托管平台的信息,不一定是Github
    下面简单设置一下IDEA工程的基本信息后,就可以新建一个project了。

    1.6 IDEA拉取远程仓库项目

    这里为了演示pull操作,在GitTestDemo项目(1.5节clone下来的project)做一次commit,并push远程库,以修改远程库代码。
    回到GitTestDemo1项目,右键这个项目,按照下面操作进行点击"pull":



    点击后,出现下边信息:



    需要仔细说明下这些信息。远程库代码pull后,放到本地的"Git Root"项目路径。Remote是我们要pull的远程库的地址。"Branches to merge"表示,我们要拉取的是远程库的master分支,这里的origin是远程库的别名。点击pull后,更新后的代码就pull过来了。

    1.7 解决冲突

    Git冲突在下边情景中会产生,假如A和B两个人,同时修改了代码增添了不同的内容,当A已经push了远程库后,B再push远程库时就会有冲突,可能会覆盖A的修改。
    下边例子,原始代码如下:

    public class CommitRepository {
        public static void main(String[] args) {
            System.out.println("Commit project to Local Repository!");
            System.out.println("第二个人更新代码");
        }
    }
    

    A修改了代码,并push到了远程库,代码如下:

    public class CommitRepository {
        public static void main(String[] args) {
            System.out.println("Commit project to Local Repository!");
            System.out.println("第二个人更新代码");
            System.out.println("3333333333333333");
        }
    
        public void test(){
            System.out.println("From GitTestDemo Pro");
        }
    }
    

    之后,B修改了代码,并准备提交,代码如下:

    public class CommitRepository {
        public static void main(String[] args) {
            System.out.println("Commit project to Local Repository!");
            System.out.println("第二个人更新代码");
            System.out.println("444444444444444");
        }
    
        public void add(){
            System.out.println("From GitTestDemo1 Pro");
        }
    }
    

    可以发现B的代码与A的代码有区别,在main函数中,并且新增的方法也不一样,如果B push了自己的代码到远程仓库,会覆盖掉A的代码,导致错误。
    B将代码Commit到本地仓库时,不会有错误。在push到远程仓库时,会出现错误:



    遇到这种错误时,需要点击merge来解决冲突,通常B需要和A沟通后才能merge,以保证不影响A的功能代码。merge的内容在下边对话框中自己手动输入,以防止错误。



    修改完中间的版本后,点击"Apply",就将自己的代码修改为中间的版本,再次操作Git -> push就可以完成最终的覆盖远程代码库的操作。

    2. Git工作流

    2.1 企业Git工作流

    Git工作流通过为功能开发、发布准备和维度设立了独立的分支,也让发布迭代过程更为顺畅。严格的分支模型为大型项目提供了必要的结构。
    在企业环境下,比较大的项目的分支会比较复杂,一般情况下,可以按照下边这个结果进行分支策略。
    master分支:管理正在运行的生产环境代码。

    2.2 测试实例

    2.2.1 多用户准备

    为了完成多用户协同开发的测试,需要多个码云用户,并在仓库层面添加用户。具体添加方法是登陆码云,在管理功能下,直接添加用户,操作流程如下:



    邀请用户后,被邀请用户收到私信,被邀请用户同意邀请即可。

    2.2.2 测试过程

    项目GitTestDemo模拟程序猿用户,项目右键 -> Git -> Repository -> Branches ;
    新建一个develop branch:



    在代码中开发一些功能。

    3. IDEA的常见配置:

    下边总结了一些常用的配置,对于提高效率有帮助:
    1.Preference -> Editor ,这两项可以勾选上。完成2个功能:(1) 滑轮改变字体大小 (2)鼠标滑过一个类时,显示这个类的信息。


    2.设置自动导包。

    在输入代码时,需要导入包,或者处理错误时,使用 Alt + Enter来处理。
    3.设置显示行号和方法分隔符(将不同方法区分开来):

    4.导入包时不区分大小写:
    在java中输入代码stringBuilder时,IDEA默认不帮我们提示或是代码补充,但是如果输入了正确的StringBuffer就会进行代码提示和补充。去掉大小写检查勾选,让其都进行补充。

    5.文件tab在多行显示,避免一行时隐藏文件tab标签
    当打开的文件比较多时,默认情况下,IDEA会都在一行中显示,如果没地方会隐藏一些tab,这样用起来不方便。

    6.配置新建类的注释模板,这样可以极大减少工作量。
    一般地,在IDEA中,有以下常见的变量:
            ${PACKAGE_NAME} - 引用当前创建类时所在的包名
            ${PROJECT_NAME} - 当前项目名
            ${NAME} - 文件名
            ${USER} - 引用当前系统的登录用户名
            ${DATE} - 引用当前系统的日期
            ${TIME} - 引用当前系统的时分秒
            ${YEAR} - 引用当前系统的年
            ${MONTH} - 引用当前系统的月
            ${DAY} - 引用当前系统的日
            ${HOUR} - 引用当前系统的小时
            ${MINUTE} - 引用当前系统的分
    

    可以根据自己的实际需求来配置,例如下边的配置模板:



    7.全局设置文件编码方式
    全局设置项目文件编码方式,代码中包含中文等字符时,设置这项有较大意义。


    ======== 返回目录 ========
    《《《 上一篇 Stream API
    》》》 下一篇 机器学习算法:回归理论

    相关文章

      网友评论

          本文标题:Git 和 intellij idea使用

          本文链接:https://www.haomeiwen.com/subject/teiolqtx.html