码迷,mamicode.com
首页 > 其他好文 > 详细

Git 相关问题分享,git reset与git revert的区别?

时间:2020-03-06 17:42:58      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:效果   png   没有   查看   git add   相关   info   code   保存   

1.如果我在git add 后想要撤销操作,该怎么做?

使用 git rm --cache 【文件名/ *】
或者 git reset HEAD, 为什么这个命令也会有效果呢,实际上reset将 HEAD指针指向的提交复制到了暂存区,所以看起来暂存区像是没有东西。


这里可以扩展一下:
Git 分为三颗“树”:

技术图片

 

当我们在工作区修改了时,git add 命令会将文件复制到暂存区,git commit 之后会将index中的内容保存为一个永久的快照。然后创建一个指向该快照的提交对象,最后更新master分支指向它。

 技术图片

 

 

2.如果我想要将版本回退到某一次提交该怎么做?

使用 git reset 或者 git revert
Git reset 将HEAD指向了指定版本,如果不使用 --hard工作区还是会保留,一旦使用了--hard 将不能撤回了,reset命令实际分为了三步:

技术图片

git revert 相当于用新的一次提交来回滚。

 

3.如果我在git commit 之后想要修改commit信息重新提交,该怎么做?

使用 git commit --amend

 

4.如果我在一个分支修改了部分代码但未提交,此时我想切换到另一个分支,并且修改的代码不会丢失,该怎么做?

使用 git stash 将修改的代码储存起来,此时可以随意切换分支了,想用这些代码的时候可以用 git stash apply ,

git stash list 查看储存的,git stash drop [名称 ] 移除储存的,也可以直接用git stash pop来应用储藏然后立即从栈上移除它。

 

Git 相关问题分享,git reset与git revert的区别?

标签:效果   png   没有   查看   git add   相关   info   code   保存   

原文地址:https://www.cnblogs.com/tangxiao1996/p/12427497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!