前言:
IDEA 中 Git 文件颜色
白色:已经加入版本控制,已提交,无改动
蓝色:已经加入版本控制,已提交,有改动
绿色:已经加入版本控制,还未提交
红色:未加入版本控制
Git 本地数据管理-三大区
工作区,暂存区,版本库
● 工作区:项目目录,开发存放代码的地方。
● 暂存区:数据暂时存放的地方。待提交区,存放有修改的文件的地方。git add 之后,commit 之前
● 版本库(本地仓库):存放已经提交的数据。commit 之后,push 时,就是把这个区的数据 push 到远程仓库
开发者在工作区对代码进行修改,修改的文件 git add 添加到暂存区,然后把暂存区的代码 commit 提交到版本库,最后把版本库中的数据 push 到远程仓库。
ps:此图copy某位大佬的,画得真好
提交错了,还未 push 时回退此次提交
Undo Commit:commit了,但未push时
● 比较常用,比如说忘了切分支,不小心在master分支上做了修改,并commit了,但还没有push,想要撤回提交,但不想丢弃掉刚刚修改的内容,就可以使用 Undo Commit。
● 只是 commit 了,并没有 push 时,使用 Undo Commit,会把提交的代码恢复成未提交,并且那条提交记录也不复存在
Revert Commit:commit了,但未push时
● 只是 commit 了,并没有 push 时,使用 revert commit,会丢失掉这条提交的修改内容,并且会多生产一条 Revert 的提交记录
Drop Commit:commit了,但未push时
● 慎用
● 只是 commit 了,并没有 push 时,使用 drop commit,不仅那条提交记录的修改数据被丢弃掉了,连着提交记录也被删除了
提交错了,并 push 到了远程时回退此次提交
Revert Commit:commit+push
比较常用,比如业务提了一个需求,我开发完了,并且 push 到了 dev,后面又说这个需求不用了,这个时候就需要用到 revert commit 把这次提交的修改回滚掉。
单个分支示例:
多个分支示例:
● dev 开发分支
● 从 master/dev 分支切出一个 bugfix-01 分支
● 其他分支的修改往 dev 合
使用 revert commit
● 在 bugfix-01 分支上进行 revert commit:commit 后直接 push。 该分支此次提交的内容会被丢弃,并生成一条 Revert 的提交记录。然后把该分支往 dev 上合并,这样 dev 上的这个修改的内容也会被丢弃。
● 在 dev 分支上进行 revert commit:commit 后直接 push。dev 分支此次提交的内容会被丢弃,但 bugfix-01 分支上还保留着这次的修改。
○ 适用场景:bugfix-01 分支的内容还未测试通过,不小心合到了生产环境(master),这个时候就只能在 master 分支上对此次提交内容进行 revert commit,而不在 bugfix-01 分支上进行,应该 bugfix-01 还需要在这次修改的基础上继续修改
以上都是单个提交点的情况,多个提交点时:
Reset 使用
reset current branch to here:重置当前分支到此提交点。和 Revert 完全不同,revert 是只回滚当前提交点的内容,而 reset 是当前提交点后的修改内容全部回滚。reset 不会生成新的提交点,revert 会生成新的提交点。reset 得强制 push,revert 正常 push 即可。
reset current branch to here:Soft
● Soft:此提交点往后的修改会回到待提交区,本地其他的修改也不会被丢弃。强制 push 后,该提交点往后的提交记录都会被删除
reset current branch to here:Mixed
● Mixed:此提交点往后的修改会回到待提交区,本地其他的修改会被放到工作区,而不是暂存区(待提交区)。强制 push 后,该提交点往后的提交记录都会被删除
reset current branch to here:Hard
● Hard:慎用。此提交点往后的修改会不回到待提交区,而是直接被丢弃。本地其他的修改也会被丢弃。强制 push 后,该提交点往后的提交记录都会被删除
reset current branch to here:Keep
● Keep:此提交点往后的修改不会回到待提交区,而是直接被丢弃。本地其他的修改会被放到工作区,而不是暂存区(待提交区)。强制 push 后,该提交点往后的提交记录都会被删除
IDEA git 代码临时储藏区(Stash Changes)
Stash Changes:暂存变动
Unstash Changes:恢复暂存变动
如果本地文件有改动,且和服务器最新版本有冲突,pull 更新时会提示错误,无法更新;或者切换到其他分支时,会提示冲突;此时要么 commit 自己的改动再 pull,要么使用 Stash Changes 将改动先存储下来再 pull。
stash 的好处就是可以先将改动暂存到本地仓库中,不用担心 push 到服务器,因为 Stash Changes 的内容不参与 commit 和 push。而且,stash 中的改动可以随时取出来(Unstash Changes)再用
文章来源:https://www.toymoban.com/news/detail-754274.html
Cherry-Pick
● 获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上
文章来源地址https://www.toymoban.com/news/detail-754274.html
到了这里,关于idea中git相关知识(revert,reset,stash/unstash changes使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!