前言:

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)再用

Cherry-Pick

● 获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: