git checkout与git reset有啥区别吗
答案:3 悬赏:60 手机版
解决时间 2021-03-22 23:50
- 提问者网友:你独家记忆
- 2021-03-22 14:44
git checkout与git reset有啥区别吗
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-03-22 16:05
git reset用于撤销操作。
git reset [--hard | --mixed | --soft] []
--hard 会执行下图中操作123,参数hard会同时改变版本库的HEAD引用指向,缓存区内的内容,以及工作空间的内容,执行之后HEAD引用会指向commit指向的版本,同时缓存区内的内容也会以版本库HEAD指向的版本进行刷新,工作空间内的内容也会以HEAD引用指向的代码版本进行替代。
--mixed 会执行下图中操作12 在该参数的情况下,工作空间内的内容不会被刷新,只会更新HEAD引用的指向以及缓存区的内容
--soft 会执行下图中操作1 只会改变HEAD引用的指向
git checkout一般用于切换分支,也可以用来回退代码
git checkout branchName切换分支到指定的分支上,使用的时候,需要注意,使用该命令工作空间下的内容会被指定的分支内容覆盖,在之前分支上面所做的没有提交的变动会丢失。 如果需要新建一个分支并使用新的分支,我们可以使用git checkout -b dev,这样我们就新建了一个名为dev的分支,并切换到该分支下面。
该命令默认以HEAD引用来创建分支,需要需要使用指定的版本号来创建分支,可以在后面跟上版本号。
git reset [--hard | --mixed | --soft] [
--hard 会执行下图中操作123,参数hard会同时改变版本库的HEAD引用指向,缓存区内的内容,以及工作空间的内容,执行之后HEAD引用会指向commit指向的版本,同时缓存区内的内容也会以版本库HEAD指向的版本进行刷新,工作空间内的内容也会以HEAD引用指向的代码版本进行替代。
--mixed 会执行下图中操作12 在该参数的情况下,工作空间内的内容不会被刷新,只会更新HEAD引用的指向以及缓存区的内容
--soft 会执行下图中操作1 只会改变HEAD引用的指向
git checkout一般用于切换分支,也可以用来回退代码
git checkout branchName切换分支到指定的分支上,使用的时候,需要注意,使用该命令工作空间下的内容会被指定的分支内容覆盖,在之前分支上面所做的没有提交的变动会丢失。 如果需要新建一个分支并使用新的分支,我们可以使用git checkout -b dev,这样我们就新建了一个名为dev的分支,并切换到该分支下面。
该命令默认以HEAD引用来创建分支,需要需要使用指定的版本号来创建分支,可以在后面跟上版本号。
全部回答
- 1楼网友:鱼忧
- 2021-03-22 17:38
git checkout -- file;撤销对工作区修改;这个命令是以最新的存储时间节点(add和commit)为参照,覆盖工作区对应文件file;这个命令改变的是工作区
git reset HEAD -- file;清空add命令向暂存区提交的关于file文件的修改(Ustage);这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化
git reset HEAD -- file;清空add命令向暂存区提交的关于file文件的修改(Ustage);这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯