You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
p/git-reset-revert/
前言 在团队开发中,使用 Git 作为版本开发工具,可以便捷地协同多人管理并行开发,但是由于自己或者其他人代码提交污染了远程分支,就需要对远程代码进行恢复操作,Git 提供了 reset 和 revert 两种命令来进行恢复操作,这两种操作效果是截然不同的,不太清楚这个原理的同学需要了解一下,以免在实际的开发过程中翻车,导致线上远程仓库不可逆转的操作。\n首先从英文释义来讲,reset 是重置的意思,revert 是恢复、还原的意思,作为 Coder ,第一感觉 reset 的效果比 revert 更猛一些,实际情况也的确如此,让我们一起探讨一下吧。\n背景 Git 的每一次提交都是一次 commit,上图可以看到在时间线上有三次提交,此时 HEAD 指向 main 分支,main 分支又指向最新的 Commit3。\nHEAD 是指向当前分支的最新提交的指针,可以在任意分支进行切换; main (master)分支,是一个 git 代码仓库的主分支也是默认分支; commit 每一次提交代码都会产生一个 commit id 来标识工作区的变更与改动。 实践出真理 为了直接明白的了解其原理,我这里在 github 上创建一个空白的仓库,按照上图创建三次提交:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 commit b0ef8f9125226af8f06ff1aba7c1f1fc83adea9b (HEAD -> master, origin/master) Author: debuginn [email protected] Date: Tue Sep 21 16:36:39 2021 +0800 feat add 3.go commit 338bf3e30983d34074f37a18b3ff80ea9bca75f0 Author: debuginn [email protected] Date: Tue Sep 21 16:36:09 2021 +0800 feat add 2.go commit 6b166ed34962da08d944e2b1d3f36d9015dd8f35 Author: debuginn [email protected] Date: Tue Sep 21 16:35:16 2021 +0800 feat add 1.go Git Reset git reset 的作用是将 HEAD 指向指定的版本上去:\n
https://blog.debuginn.com/p/git-reset-revert/
Beta Was this translation helpful? Give feedback.
All reactions