IDEA Git 选项栏各项功能详解

IDEA git图形化界面 add gitlab account idea git工具栏_本地库

如图所示

Copy Revision Number

顾名思义 拷贝当前版本号 到剪切板

a8e4b86ce9ca01968629504a6e19b4b99d76a853

Create Patch

  1. 在 git 日志中选择要创建补丁的commit,右键选择Create Patch...
  2. 同一个文件在多次commit中都存在,取到的是最新的内容。

(暂时看不懂他的应用场景)

Cherry-Pick

只需要将A分支的几个改动 合并 到B 分支, 不需要全部合并(有些情况下整个分支合并冲突太多处理起来过于麻烦)。可以使用cherry pick .

假设当前所在分支为B,可以在Version Control的Log中选择在A分支单个commit或者多个commit的内容,会将选中的内容拉到B分支重新进行commit,之后记得push上去,就完成了公共功能代码的拉取。

Checkout Revision xxxxxx

顾名思义 切换到 指定版本

IDEA git图形化界面 add gitlab account idea git工具栏_intellij-idea_02

Show Repository at Revision

展示某个版本的 整个仓库信息

Compare with Local

与本地当前版本做比较

Reset Current Branch to Here

IDEA git图形化界面 add gitlab account idea git工具栏_intellij-idea_03

IDEA git图形化界面 add gitlab account idea git工具栏_git_04

IDEA git图形化界面 add gitlab account idea git工具栏_intellij-idea_05

mixed

执行 git reflog(简化,但信息更多)获取到全部的commit的版本信息,再通过git reset进行前进。 这行命令可以获取

我自己理解的是

mixed 如果你已经提交到 工作区了 就是 commit 了 那么原本你commit的东西会依然保留 但是回到了暂存区 可再提交或者回滚

IDEA git图形化界面 add gitlab account idea git工具栏_github_06

mixed 第二种情况 你存到暂存区 但是本地的文件已经被修改了 那么这次更改依然会被保留

git reset --mixed HEAD^,可达到类似于撤回commit效果。但要知道它本质只是回退到上版本并重置了暂存区,并没有真正撤回commit,已经commit的记录是不可磨灭的。但是 你可以在此基础上 rockback 达到同样的目的

IDEA git图形化界面 add gitlab account idea git工具栏_intellij-idea_07

IDEA git图形化界面 add gitlab account idea git工具栏_本地库_08

IDEA git图形化界面 add gitlab account idea git工具栏_github_09

IDEA git图形化界面 add gitlab account idea git工具栏_intellij-idea_10

hard

IDEA git图形化界面 add gitlab account idea git工具栏_暂存区_11

完全回到上个版本 你写的所有当前版本的东西都会被覆盖

–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交

IDEA git图形化界面 add gitlab account idea git工具栏_github_12

soft

①移动本地库HEAD指针

意思就是,回滚后,仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的。而你上次改动已提交committed到本地库的代码显示是绿色即未提交

mixed

①移动本地库HEAD指针

②重置暂存区

意思就是,回滚后,不仅移动了本地库的指针,同时暂存区的东西也没了,意思就是你上次添加到暂存区的文件没了

(就我体验下来 没区别)

keep

IDEA git图形化界面 add gitlab account idea git工具栏_github_13

Revert Commit

**撤销你提交过的内容 会产生一条提交记录 ** 这个撤销可以撤销🤣🤣

IDEA git图形化界面 add gitlab account idea git工具栏_github_14

Undo Commit

适用情况:代码修改完了,已经Commit了,但是还未push,然后发现还有地方需要修改,但是又不想增加一个新的Commit记录。这时可以进行Undo Commit,修改后再重新Commit。

如果已经进行了Push,线上的Commit记录还是会存在的

好用!!!! 妈妈再也不用担心我在俩项目间切来切去的了

每一次 undo commit 之前的记录都会保存在暂存区 会累加

Edit Commit Message

修改提交时的备注信息

IDEA git图形化界面 add gitlab account idea git工具栏_git_15

Fixup Squash Into

fixed up
修改文件,commit 后,再次修改,commit 处右键 fixed up ,会新建一个 commit,默认 message { fixup ! commit 的 message }

squash into
修改文件,commit 后,再次修改,commit 处右键 squash into ,会新建一个 commit,默认 message { squash ! commit 的 message }

Drop Commit

commit 的修改被 丢弃 ,不会存在于暂存区或工作区

Interactively Rebase from Here

压缩提交 即将多个commit 压缩为一个commit

在 Git 中,你可以使用强大的 interactive rebase(交互式 rebase)将多次提交合并成一次。这是我常用的一个很方便的工具;我经常通过将多个临时的小的提交合并成一次提交,然后将整理好的代码 push 给远端。(需要的时候在学)

New Branch

基于当前分支新建一个 一模一样的分支

New Tag

通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。

所以,标签也是版本库的一个快照

Go to parent commit / Go to child commit

当前分支的上一个/下一个提交 如果当前处于顶端则不可用(按钮被置灰)