ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

IntelliJ IDEA 中git使用说明书

2022-02-07 20:30:43  阅读:227  来源: 互联网

标签:git IntelliJ IDEA 说明 tag 操作 push commit



版权
IDEA中内置的GIT功能已经比较全面,对于同时使用两款软件的同学,其实已无需安装其它软件,本文旨在尽可全面的介绍IDEA中操作git,对此已经很熟悉或是习惯直接操作命令的同学可以略过。
几点说明:
1、本文会尽可能减少原理说明和直接使用命令的情况。
2、本文会略过安装配置相关内容。
3、使用版本:window版IntelliJ IDEA 2017.1.5,其他版本可能会略有差异。
4、文章将分为三部分内容,一git简要说明,二高频操作(基本可以覆盖日常工作的90%),三其他操作(方便需要的时候查看)。
一、git简介
二、常用操作
 1.下载项目(git clone)
 2. 提交(git commit)
 3. 推送远端(git push)
 4. 分支(git checkout)
 5. 日志面板(git log)
 6. 回退/撤销(revert/reset)
 7. 合并分支(git merge)
 8. 总结
三、其他操作
 1. fetch vs pull(git fetch)
 2. 标签管理(git tag)
 3. 临时存储(git stash)
 4. 整理提交(git rebase)
 5. 部分合并(cherry pick)
 6. 创建版本库
 7. 快捷键
 8. 总结

一、git简介
这一部分介绍几个必要的git概念,只做基本了解,方便对于一些操作的理解,有关git原理性的内容请自行搜索。
1、工作区(Working Directory):通常来说就是我们的代码工程目录
2、暂存区(staging area):暂存区就是一个文件(工作区.git/index),当我们修改文件,并执行add之后,修改就被放入暂存区。
3、本地/远程仓库(Repository):这个很好理解,当我们把暂存区中的文件commit之后,就会生成一条提交,push之后就会把修改同步到远端。
4、git分支:分支的目的是让我们可以并行的进行开发,比如当我们开发新功能时为了不影响这期间其他功能正常上线,一般就新建一个分支。

二、常用操作
1、下载项目(git clone)
位置:VCS——Checkout from Version Control——git

在这里插入图片描述

 


2、提交(git commit)
位置:VCS/项目目录鼠标右键——git——Commit DIrectory
说明:idea中commit操作不需要手动执行add操作。git菜单入口有2个,在项目上鼠标右键,或者菜单栏VCS中都有git选项,下文不再对此说明。一般使用中会直接操作快捷键,关于快捷键最后说明。

在这里插入图片描述

 


3、推送远端(git push)
位置:VCS——git——Push
说明:一般情况commit操作会连带跳出push弹窗,图中标注的选项,在下文对应场景中说明。需要注意的是除非特殊情况,不要使用强制提交。

在这里插入图片描述

 


4、分支(git checkout)
位置:idea窗口右下角
说明:idea中集成了分支的创建,切换、删除等操作,右下角的入口使用十分方便,推送分支到远端,需要push操作。

在这里插入图片描述
5、日志面板(git log)
位置:窗口左下角Version Control
说明:顾名思义查看git提交日志,图中标出的位置可以通过分支、提交用户等进行筛选,对应右侧窗口显示选中提交中包含的内容,可点开查看代码,图中另一个红色标记reset命令下一步会说到。

在这里插入图片描述

 

 


6、回退/撤销(revert/git reset)
revert
位置:项目右键——git——Revert
说明:idea中的revert 与 git revert 命令含义并不一样,此处仅说明idea中revert操作。
revert相当于把未进行commit操作的更改撤销,如图所示

在这里插入图片描述

 

reset
位置: 如5日志面板图中标示 Reset
说明:简单说明下几个选项的含义,
soft只会回退本地版本库(其实是修改head指向),操作后可以重新再提交,在撤销commit的操作时比较有用。
mixed(默认选项):相比soft又多回退了一个暂存区,实际使用没什么差别。
hard:全部回退,本地代码会丢失,虽然有方式找回,但还是要慎用,一定要清楚自己再做什么操作。
此外一旦代码push到远程,强烈不推荐再执行reset——push force命令组合。

在这里插入图片描述

 

7、合并分支(git merge)
位置:VCS——git——Merge Changes
合并:
说明:merge操作一般来说选项都是默认即可,如图中简单解释了几个选项的意思,
几个选项虽然是复选,但实际使用中往往需要几个配合勾选才能达到效果,具体信息这里不做展开说明。

在这里插入图片描述

 

冲突
说明:merge如果发生冲突,idea会弹出下图界面,根据实际情况选择处理方式即可

在这里插入图片描述

在这里插入图片描述 

 


放弃合并

说明:放弃合并虽然可以用上文提提到的reset的方式解决,但reset这个操作还是要格外小心,在这里并不推荐使用,推荐终端直接使用命令。
如图:git merge --abort

在这里插入图片描述

 


8、总结
以上就是git常用操作,使用很简单,但基本涵盖了多数的工作场景,一般开发流程是,在主干上新建分支,在分支上开发,commit代码,每次push之前要先pull代码,开发完成合并到主干,流程结束

三、其他操作
1、获取代码(git fetch)
位置:VCS-git-fetch
说明:pull操作相当于fetch+merge,由于pull操作会隐藏一些合并细节,所以有推荐fetch+merge的说法。使用时首先执行fetch,然后在手动执行merge远程对应分支即可

在这里插入图片描述
2、维护版本-标签操作(git tag)
创建一个tag
位置:VCS-git-tag(在最新一次提交新建tag),日志面板——选中一个commit右键——new tag(在当前commit上新建tag),
说明:一般每次发版之后,会在主干分支新建一个tag,方便记录、回滚、查看等功能。
推送tag到远端,需要注意在push操作时勾选“push tag”,push一节中已经标注。

在这里插入图片描述 

 

查看所有tag
idea中目前没有发现能直接查看tags的位置,可以通过控制台,直接输入git tag查看

在这里插入图片描述

 

checkout对应tag的代码
位置:窗口右下角创建分支处——Checkout Tag or …
说明:checkout后会产生一个临时分支,在此基础上再操作新建分支即可checkout对应tag

在这里插入图片描述

 


3、暂时存储代码(git stash)
位置:VCS——git——stash
说明:stash意思是暂时存储已经更改但未提交的代码,这样工作空间将变成干净的,需要时unstash再恢复回来,使用场景比如需要临时处理一些其他的功能,但正在开发的功能还不太适合commit,会用到这个功能。

在这里插入图片描述

在这里插入图片描述

 

 

4、获得清晰的commit记录(git rebase)
位置:VCS——git——rebase
说明:首先说明rebase是一个危险的操作,除非在足够熟悉他的情况下,慎用。笔者在实际工作中对这个命令也很少操作,这里只做简单介绍,rebase直译是变基,其功能和merge相识,不同点在于它产生的commit记录更加清晰干净,切记永远不要rebase一个已经push的分支,会产生很多混乱。

在这里插入图片描述

 


5、合并分支上的部分提交(cherry pick)
位置:日志面板——右键——cherry-pick
说明:有些时候需要合并分支上的部分commit,这时候就可以用cherry-pick

在这里插入图片描述


6、创建版本库(git init…)
位置:如图
说明:创建git仓库,可以本地创建,在push到对应远端即可,不做过多说明

在这里插入图片描述

 


7、关于快捷键
由于每个版本的快捷键有一些差异,在此就不罗列具体的快捷键了,对应操作的快捷键可以通过图中方式查看或设置,也可以去搜索下通用的快捷键相关的文章。

在这里插入图片描述

 


8、总结
除了上面提到的图形界面操作,git还有更加丰富的命令行操作方式,比如合并多次commit,git reflog、git bisect这种命令,只不过日常工作极少用到,如果感兴趣可以继续学习下git命令,最后欢迎沟通指教。
 

标签:git,IntelliJ,IDEA,说明,tag,操作,push,commit
来源: https://blog.csdn.net/u011250186/article/details/122814177

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有