IDEA Git 选项栏各项功能详解

image-20221225164211656

如图所示

image-20221225113922861

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

顾名思义 切换到 指定版本

image-20221225115221969

Show Repository at Revision

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

Compare with Local

与本地当前版本做比较

Reset Current Branch to Here

image-20221225115953318

image-20221225120031094

image-20221225152127145

mixed

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

我自己理解的是

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

image-20221225153007199

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

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

image-20221225155254410

image-20221225153145602

image-20221225153322344

image-20221225153355996

hard

image-20221225154008412

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

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

image-20221225154412279

soft

①移动本地库HEAD指针

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

mixed

①移动本地库HEAD指针

②重置暂存区

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

(就我体验下来 没区别)

keep

image-20221225160937300

Revert Commit

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

image-20221225161205206

Undo Commit

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

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

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

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

Edit Commit Message

修改提交时的备注信息

image-20221225162253879

Fixup Squash Into

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

squash into
修改文件,commit 后,再次修改,commit 处右键 squash into ,会新建一个 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

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