网站开发及维护费用,网页设计培训,房产集团网站建设,phpstudy怎样做多个网站实践场景
场景1 回退提交 在日常工作中#xff0c;我们可能会和多个同事在同一个分支进行开发#xff0c;有时候我们可能会出现一些错误提交#xff0c;这些错误提交如果想撤销#xff0c;可以有两种解决办法:回退( reset )、反做(revert) keywords#xff1a;reset、rev…实践场景
场景1 回退提交 在日常工作中我们可能会和多个同事在同一个分支进行开发有时候我们可能会出现一些错误提交这些错误提交如果想撤销可以有两种解决办法:回退( reset )、反做(revert) keywordsreset、revert、reflog 回退 git reset reset 操作就是修改 HEAD 指向的位置将 HEAD 当前指向的位置回退到指定的某个版本例如针对某个分支我们提交了三次如图所示这是 reset 之前的三个 commit 记录目前 HEAD 指向的是 commit 3的位置如果我们想把代码回退到 commit 1的位置怎么操作呢 git reset --hard commit 1 的提交id操作完之后 commit 2和 commit 3 的提交记录就没有了直接回退到了commit 1。注意区分两个参数hard soft
–hard 直接回退–soft 软回退
soft只回退了commit 的信息但是内容不会消失工作区的文件内容都还在。如果还要提交直接 commit 即可。这种操作的友好性就是如果我们本身只是想把commit的操作给回退但是不想还原内容保持所有内容都还在这种操作就很合适保证了代码不会丢失。
重做/反做 git revert git revert是用于“反做”某一个版本以达到撤销该版本的修改的目的。比如我们commit了三个版本版本一、版本二、 版本三突然发现版本二不行如有bug想要撤销版本二但又不想影响撤销版本三的提交就可以用 git revert 命令来反做版本二生成新的版本四这个版本四里会保留版本三的东西但撤销了版本二的东西。如下图所示 反做前
git revert -n commit 2 的提交id
git commit -m test4反做后
找回reset和revert的记录 git reflog 如何找回因回退或反做而消失的commit记录上述两种操作会造成有些 commit 记录消失但是如果自己又后悔了想找回来我们该怎么操作呢可以使用reflog查看所有分支的所有操作记录包括已经被删除的 commit 记录和 reset 的操作 git reflog
faa135e HEAD{0}: commit: test3
783ef0a HEAD{1}: commit: test2
2288ba8 HEAD{2}: commit: test1
abddace HEAD{3}: commit: test3
30df387 HEAD{4}: commit: test3参考资料 Git 版本回退实际工作中基本都会遇到 - 掘金yuque.GIT实践与常用命令