怎样在Idea中使用Git,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
在Idea视图中GIT的分支信息在右下角,如果我们在remote新建了分支,本地默认不显示,可以在上方导航:VCS-Update project 同步远程分支信息。
在IDEA右下角GTI视图中,我们可以选择分支进行checkout,即新建/切换分支;
如果我们需要指定从哪个分支新建分支,则在GIT视图中选择分支-checkout As进行新建
如果我们需要查看某个分支是从哪个分支拉的,我们可以使用命令:git reflog show childBranch 命令查看
--查看当前分支 git branch --基于某个分支新建分支 git checkout 原分支名 --新建分支并切换 git checkout -b 新分支名称 --然后使用git branch查看,分支已经新建并切换
我们使用git checkout as分支后,分支默认跟踪的是checkout的分支,我们可以使用命令来查看当前分支跟踪的上游分支
--查看当前分支的上游分支 git branch -vv --切换跟踪的上游分支 git branch --set-upstream-to=origin/release_1001
删除
--查看分支列表 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 reset --hard origin/所在的分支
例如我们从test分支新建了dev分支,在dev分支上进行了代码改动后,需要将dev的提交合并到test分支。
git视图选择test分支checkout切换到test
项目右键:git-repository-pull更新test分支
项目右键:git-repository-merge changes,选择dev分支进行合并
假设我们合并了一个分支,但是不想合并了,想撤销这个合并的动作
git merge --abort
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 merge,但是还有一个比较强大的功能是rebase;rebase的意思是指将某个分支按照另一个分支重新设置基准;这样的好处有:
rebase对比merge节点树会显示的更加清晰
rebase可以减少不必要的commit信息
假设我们有分支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(右)的节点树显示效果。
由上图可以看出,merge后的节点树会按照提交时间进行排序;而dev重设基准后,dev的提交都是在master后面显示,由此可以保持提交信息的清晰。
注意,此情况在本地提交情况下使用
假设存在一种这样的情况:我在本地修改了一个bug,commit了5次之后才修好,那么如果我吧这些push到remote,会导致gitlog很乱,其实这五个提交可以合并成一个。在这种情况下,我们可以使用rebase合并本地的commit。
首先我们在本地进行5次提交,git log如下:
然后我们使用git rebase -i 提交ID(注意这个id代表,合并这个id之后的所有提交,但是不包含这个id的,如果需要包含的话要往前找一下)
git rebase -i cf8525cd52c4bb87d3f11b4f721e6c1a8a3ac3f4
然后git会进入vim页面,我们可以按insert进入编辑模式,填写对应的操作;此处有三个参数:
pick : 代表合并后的提交用这个提交的注释
s : squash命令的简写,代表合并提交中包含这个提交
d : 代表合并提交中排除这个提交
我们按需要更改参数后,esc退出编辑模式,:wq写入并退出,git会进入下一步:填写合并的commit message界面:
同样的我们进入vim的编辑模式,注释掉不需要的信息,并将5次提交的信息修改为bug fix 2,:wq写入并退出就完成了合并。
最后,我们分别在git命令和IDEA视图中查看,我们的5次提交信息以及合并为bug fix 2。
本地进行了修改,然后commit了;结果push的时候发现remote已经被修改过,我们使用pull命令后,会失败,此时会提示: You have not concluded your merge.(MERGE_HEAD exists) 此时我们应该:
备份本地数据
放弃本地修改,远程reset本地
git fetch --all
git reset --hard origin/所在的分支
然后用备份的数据手动合并本地再提交
关于怎样在Idea中使用Git问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。