IDEA Git 选项栏各项功能详解
如图所示
Copy Revision Number
顾名思义 拷贝当前版本号 到剪切板
a8e4b86ce9ca01968629504a6e19b4b99d76a853
Create Patch
- 在 git 日志中选择要创建补丁的
commit
,右键选择Create Patch...
- 同一个文件在多次
commit
中都存在,取到的是最新的内容。
(暂时看不懂他的应用场景)
Cherry-Pick
只需要将A分支的几个改动 合并 到B 分支, 不需要全部合并(有些情况下整个分支合并冲突太多处理起来过于麻烦)。可以使用cherry pick .
假设当前所在分支为B,可以在Version Control的Log中选择在A分支单个commit或者多个commit的内容,会将选中的内容拉到B分支重新进行commit,之后记得push上去,就完成了公共功能代码的拉取。
Checkout Revision xxxxxx
顾名思义 切换到 指定版本
Show Repository at Revision
展示某个版本的 整个仓库信息
Compare with Local
与本地当前版本做比较
Reset Current Branch to Here
mixed
执行
git reflog
(简化,但信息更多)获取到全部的commit的版本信息,再通过git reset进行前进。 这行命令可以获取我自己理解的是
mixed 如果你已经提交到 工作区了 就是 commit 了 那么原本你commit的东西会依然保留 但是回到了暂存区 可再提交或者回滚
mixed 第二种情况 你存到暂存区 但是本地的文件已经被修改了 那么
这次更改依然会被保留
git reset --mixed HEAD^,可达到类似于撤回commit效果。但要知道它本质只是回退到上版本并重置了暂存区,并没有真正撤回commit,已经commit的记录是不可磨灭的。但是 你可以在此基础上 rockback 达到同样的目的
hard
完全回到上个版本 你写的所有当前版本的东西都会被覆盖
–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
soft
①移动本地库HEAD指针
意思就是,回滚后,仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的。而你上次改动已提交committed到本地库的代码显示是绿色即未提交
mixed
①移动本地库HEAD指针
②重置暂存区
意思就是,回滚后,不仅移动了本地库的指针,同时暂存区的东西也没了,意思就是你上次添加到暂存区的文件没了
(就我体验下来 没区别)
keep
Revert Commit
**撤销你提交过的内容 会产生一条提交记录 ** 这个撤销可以撤销🤣🤣
Undo Commit
适用情况:代码修改完了,已经Commit了,但是还未push,然后发现还有地方需要修改,但是又不想增加一个新的Commit记录。这时可以进行Undo Commit,修改后再重新Commit。
如果已经进行了Push,线上的Commit记录还是会存在的
好用!!!! 妈妈再也不用担心我在俩项目间切来切去的了
每一次 undo commit 之前的记录都会保存在暂存区 会累加
Edit Commit Message
修改提交时的备注信息
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
当前分支
的上一个/下一个提交 如果当前处于顶端则不可用(按钮被置灰)