java开发中常用的Git命令详解(IDEA内如何操作)

  • 一:写这篇文章的目的是什么?
  • 二:使用场景在哪里?
  • 1:当我们要使用idea去git仓库拉代码时,首先我们的idea得配置git工具
  • 2:项目有了,我们该如何创建自己的分支呢
  • 3:代码的基本提交流程,生成远程分支
  • 4:本地分支合并master的流程
  • 5:图解将远程master分支合并到本地
  • 三:常用的命令区别与个人理解
  • pull与fetch区别
  • checkout和reset区别
  • 组长喊我写代码了。。。。。之后的再慢慢补充


一:写这篇文章的目的是什么?

答:一方面自己记性不好,好记性不如烂笔头。
另一方面,网上的解析我觉得是没有一篇能够满足我的需求的,特此在这总结一下。

二:使用场景在哪里?

1:项目刚开始,老大给我个链接,要我拉下代码,创建自己的一个分支
2:自己添加了代码,怎么完整的推送到自己的远程分支
3:怎么把自己的代码合并到master上不容易出错呢

1:当我们要使用idea去git仓库拉代码时,首先我们的idea得配置git工具

第一步,配置git(下载git后最好先配置下全局用户名和邮箱)

Java git开发工具 java git操作_Java git开发工具


第二步,拉取代码(也可以登录github账号直接拉取github上的项目)

Java git开发工具 java git操作_Java git开发工具_02


Java git开发工具 java git操作_intellij idea_03


在URL地址里的输入老大给你的代码仓库的地址,

Directory里是项目保存的地址。

点击clone就可以啦。(如果有权限问题再问问老大把!!!)

2:项目有了,我们该如何创建自己的分支呢

Java git开发工具 java git操作_Java git开发工具_04


项目clone完成后,在idea界面的右下方,默认当前分支是master主分支,点击即可查看所有远程分支和本地分支。

Java git开发工具 java git操作_远程分支_05

左键远程分支,选择New Branch from Selected 。输入分支名称,即可创建本地分支了。

Java git开发工具 java git操作_Java git开发工具_06

3:代码的基本提交流程,生成远程分支

当我们在创建一个新文件后,会出现以下提示:

Java git开发工具 java git操作_Java git开发工具_07


该提示的目的是将刚创建的文件添加到git的暂存区。这个在之后的命令介绍里再具体解释有啥用!!当我们的代码有变动后,点击下图对勾的地方进行代码的提交(提交只会提交到本地仓库):

Java git开发工具 java git操作_远程分支_08


Java git开发工具 java git操作_intellij idea_09


点击commit将变动提交至本地仓库,点击commit and push将代码提交到本地仓库后,同时推到远程仓库。

如果只点击了commit,我们还可在右下角分支位置进行push操作。

Java git开发工具 java git操作_远程分支_10

4:本地分支合并master的流程

1:将远程master分支pull下来与当前分支合并,(如果有冲突解决冲突)
(这里的用意是所有的冲突尽量在自己的分支解决,不直接在master上去解决冲突)
2:将当前分支push到远程仓库
3:切换到master分支,将远程仓库自己的分支pull到本地与master合并
4:将本地master分支push到远程仓库

5:图解将远程master分支合并到本地

右键idea项目名称 如图:

Java git开发工具 java git操作_java_11

Java git开发工具 java git操作_java_12

将远程分支上最新的内容与拉取到本地,与当前分支进行merge合并操作。

三:常用的命令区别与个人理解

Java git开发工具 java git操作_java_13



pull与fetch区别

pull = (fetch + merge)
pull操作会直接将远程分支合并到本地分支,同时自动merge两者的代码。
(这个操作对于严谨性要求高的公司是不可取的,程序的自动合并如果有代码问题无法快速定位)

关于fetch的操作具体可以参考这个大哥哥的博客

checkout和reset区别

当本地文件进行修改,删除操作还没进行add操作时,使用checkout会将远程仓库最新的拉取到本地,覆盖掉之前未add的操作(新增的除外,会有提示smart check)。

使用reset会丢弃掉本地已经commit的版本,回到上一次commit的版本,对于已经push的不能进行reset操作。

组长喊我写代码了。。。。。之后的再慢慢补充