温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样在Idea中使用Git

发布时间:2021-11-10 15:54:06 来源:亿速云 阅读:327 作者:柒染 栏目:大数据

怎样在Idea中使用Git,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

IDEA同步远程分支信息

在Idea视图中GIT的分支信息在右下角,如果我们在remote新建了分支,本地默认不显示,可以在上方导航:VCS-Update project 同步远程分支信息。
怎样在Idea中使用Git

IDEA新建、切换本地分支

在IDEA右下角GTI视图中,我们可以选择分支进行checkout,即新建/切换分支;
如果我们需要指定从哪个分支新建分支,则在GIT视图中选择分支-checkout As进行新建
怎样在Idea中使用Git
如果我们需要查看某个分支是从哪个分支拉的,我们可以使用命令:git reflog show childBranch 命令查看
怎样在Idea中使用Git

GIT命令新建/切换分支

--查看当前分支
git branch
--基于某个分支新建分支
git checkout 原分支名
--新建分支并切换
git checkout -b 新分支名称
--然后使用git branch查看,分支已经新建并切换

GIT命令查看/切换上游分支

我们使用git checkout as分支后,分支默认跟踪的是checkout的分支,我们可以使用命令来查看当前分支跟踪的上游分支

--查看当前分支的上游分支
git branch -vv
--切换跟踪的上游分支
git branch --set-upstream-to=origin/release_1001

GIT命令删除/恢复分支

删除

--查看分支列表
git branch -a
--删除本地分支
git branch -D 分支名称
--删除远程分支
git push origin --delete 分支名称

恢复

删除时会显示被删除的hash
$ git branch -D dev
Deleted branch dev (was 1a103dd).

--恢复删除
git branch dev 1a103dd(分支hash即可)

git远程强制覆盖本地

比如说本地删除了一个文件,需要远程覆盖回来

git reset --hard origin/所在的分支

IDEA合并分支

例如我们从test分支新建了dev分支,在dev分支上进行了代码改动后,需要将dev的提交合并到test分支。

  • git视图选择test分支checkout切换到test

  • 项目右键:git-repository-pull更新test分支

  • 项目右键:git-repository-merge changes,选择dev分支进行合并 怎样在Idea中使用Git

GIT撤销merge

假设我们合并了一个分支,但是不想合并了,想撤销这个合并的动作

git merge --abort

GIT选择合并某次提交

master拉出分支dev,且都进行了多次提交,此时master需要合并dev某一次的提交(可能是个紧急bug修复)。

--1.切换到master分支
checkout master
--2.git页面上查看提交记录(git log -n查看最近n条)
git log -5
--3.选择合并某个commit
git cherry-pick 0601e177dd

然后就正常pull> push即可

GIT rebase

一般情况下我们如果需要合并代码,会使用git merge,但是还有一个比较强大的功能是rebase;rebase的意思是指将某个分支按照另一个分支重新设置基准;这样的好处有:

  • rebase对比merge节点树会显示的更加清晰

  • rebase可以减少不必要的commit信息

merge和rebase对比

假设我们有分支master,然后checkout出来一个dev,我们按照以下操作步骤来测试一下。

1.master 修改并commit
2.dev 修改并commit 
3.master 修改并commit
4.dev修改并commit

如果我们的dev分支需要和master保持最新,避免无效修改,我们需要将master代码合并到dev中。

//切换到dev分支
git checkout dev
//dev分支同步master的提交
git rebase master

下图是我们对比merge(左)和rebase(右)的节点树显示效果。
怎样在Idea中使用Git
由上图可以看出,merge后的节点树会按照提交时间进行排序;而dev重设基准后,dev的提交都是在master后面显示,由此可以保持提交信息的清晰。

rebase合并提交信息

注意,此情况在本地提交情况下使用
假设存在一种这样的情况:我在本地修改了一个bug,commit了5次之后才修好,那么如果我吧这些push到remote,会导致gitlog很乱,其实这五个提交可以合并成一个。在这种情况下,我们可以使用rebase合并本地的commit

首先我们在本地进行5次提交,git log如下:
怎样在Idea中使用Git

然后我们使用git rebase -i 提交ID(注意这个id代表,合并这个id之后的所有提交,但是不包含这个id的,如果需要包含的话要往前找一下

git rebase -i cf8525cd52c4bb87d3f11b4f721e6c1a8a3ac3f4

然后git会进入vim页面,我们可以按insert进入编辑模式,填写对应的操作;此处有三个参数:

  • pick : 代表合并后的提交用这个提交的注释

  • s : squash命令的简写,代表合并提交中包含这个提交

  • d : 代表合并提交中排除这个提交

我们按需要更改参数后,esc退出编辑模式,:wq写入并退出,git会进入下一步:填写合并的commit message界面:
怎样在Idea中使用Git

同样的我们进入vim的编辑模式,注释掉不需要的信息,并将5次提交的信息修改为bug fix 2,:wq写入并退出就完成了合并。
怎样在Idea中使用Git

最后,我们分别在git命令和IDEA视图中查看,我们的5次提交信息以及合并为bug fix 2。
怎样在Idea中使用Git

push和remote冲突

本地进行了修改,然后commit了;结果push的时候发现remote已经被修改过,我们使用pull命令后,会失败,此时会提示: You have not concluded your merge.(MERGE_HEAD exists) 此时我们应该:

  • 备份本地数据

  • 放弃本地修改,远程reset本地
    git fetch --all
    git reset --hard origin/所在的分支

  • 然后用备份的数据手动合并本地再提交

关于怎样在Idea中使用Git问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI