工具 :vs2017 git 操作
背景:本地与远程分支同步
操作:还原、挑拣、重置--hard 、重置--mixed
分支:本地1、本地2、origin\本地1

基本操作
1:分支:本地2-add something like //testthis function 提交
2:checkout 本地1 后,本地2分支合并入本地1分支,同步\origin。
3:本地1分支add something like //testthis2 function 提交,同步\origin。
------------------完成操作---------进行试验-----------------

1:还原
对本地1 中 合并本地2 的提交1进行还原,发现本地1 中没了//testthis function
结论:还原针对的是某一次提交的所有commit,做了反向操作,新生成一个commit覆盖了这个操作。
后续,再次合并本地2 进入本地1 无法将//testthis function 新增,证明了反向操作的存在。
2:挑拣
还原本地2的提交后,对本地2的提交进行挑拣操作,发现代码又出现了。
结论:挑拣是针对两次commit之间不同代码的比对,后进行合并不同的代码。且针对的也是某一次提交。
3:重置--hard
假设目前有三次提交A-B-C,对A进行“重置--hard”后发现本地1的代码回到了A。参考https://www.cnblogs.com/kidsitcn/p/4513297.html
结论重置--hard 将我们的head、index、工作区代码全部回滚到A。
但是需要注意的origin\中的内容并不会修改,本地如果现在直接“同步”操作后,做的重置--hard操作又没用了。
4:重置--mixed
假设目前后三次提交A-B-C,对于A进行“重置--mixed”后发现本地代码没变,
但是head、index发生了更变,本地代码没变!自己可以修改本地代码后再次提交,但是对比的head、index不同了。
以下是另外一个博主给出的解释:
所有该branch上从original HEAD(commit)到你重置到的那个commit之间的所有变更将作为local modifications保存在working area中,(被标示为local modification or untracked via git status),但是并未staged的状态,你可以重新检视然后再做修改和commit。

附录:
  • HEAD
这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交
  • Index
index也被称为staging area,是指一整套即将被下一个提交的文件集合。他也是将成为HEAD的父亲的那个commit
  • Working Copy
working copy代表你正在工作的那个文件集

知识点:vs2017 git 操作重置、还原、挑拣对比相关推荐

  1. git reset 怎么还原_git reset –hard后的恢复操作

    先说下我遇到的问题和解决办法,然后再放原文. 我遇到的问题 在初始化一个比较大的项目时,由于最后一次commit的文件数量较大,无法成功push,百度无果后想要撤回这次commit,于是手贱用了git ...

  2. Git操作手册|命令速查表

    Git操作手册|命令速查表 这篇文章主要介绍Git分布式版本管理与集中式管理的一些差异,总结下Git常用命令作为日后的速查表,最后介绍Git进阶的一些案例. 本文分为以下几个部分: Git与SVN差异 ...

  3. 手把手教你熟悉Git操作

    文章目录 Git 一.版本控制 二.Windows安装Git 1. Git 安装 2. Git 一次性配置 三.理解Git文件的三种状态与工作模式 四.创建版本库并提交文件 1. 初始化git 2. ...

  4. 【Tools】git操作总结

    git操作总结 下载的工程带有子工程submodule: 当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令 ...

  5. git 修改分支名字_基础Git操作与GitHub协作吐血整理,收好!| 原力计划

    作者 | 光子俊来源 | CSDN博客出品 | CSDN(ID:CSDNnews) Git介绍 Git是目前世界上最先进的分布式版本控制系统,可以为我们管理项目.构建工程.多人协作提供便利,作为一个爱 ...

  6. eclipse git 取远程代码_IDEA中的Git操作,看这一篇就够了!

    大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. SpringBoot实战电商项 ...

  7. Git 操作总结整合篇

    前言 自己关于 Git 操作的总结,旨在通过详细的操作介绍,带你快速了解 Git 如何使用. 并通过 Git 打开开源的大门. 快速操作教程 Git 介绍 Git 官方安装教程(Windows版) G ...

  8. git 修改commit_结合IDEA与命令行,解决常用git操作与特殊情况的最佳实践

    本文适合总觉得git操作不够顺滑,被各种分支问题搞得焦头烂额的Java业务开发同学. 如果是git的初学者,建议搜索下git其他入门教程,这方面资料很多,非常推荐git init一个新项目,然后本地操 ...

  9. 基础Git操作与GitHub协作吐血整理,收好!| 原力计划

    作者 | 光子俊 来源 | CSDN博客 出品 | CSDN(ID:CSDNnews) Git介绍 Git是目前世界上最先进的分布式版本控制系统,可以为我们管理项目.构建工程.多人协作提供便利,作为一 ...

  10. git操作后的各种后悔情况解决

    这篇文章之前是写了一个git add之后,没有commit的还原方法.在不断的开发过程中,发现有时候脑子迷糊还会遇到其他各种'后悔的'情况,因此做个总结. 情况一:git add ./之后,并没有co ...

最新文章

  1. sql service 从创建访问用户到数据库访问 【SQL】
  2. [HOW TO]-从github拉取optee代码拉不下来怎么办?
  3. 多线程的两种实现方式和区别?
  4. div不随滚动条左右移动而改变位置
  5. 计算机网络必备知识,非常全面!
  6. js在wap端获取定位_iPhone 定位服务,没用的都关掉
  7. 高通camera调试
  8. dcmtk编译 android,windows下编译dcmtk的Android版本
  9. ROS的学习(十五)验证publisher和subscriber
  10. Linux 基础命令3 shell
  11. 2020年中级数据库系统工程师考试时间表与考试大纲
  12. 网站速度优化的三套解决方案
  13. 玩转华为ENSP模拟器系列 | 配置设备使用SNMPv2c与网管通信示例
  14. UEStudio设置为传统菜单
  15. 【Pyecharts】20W条淘宝文胸商品评论数据可视化~
  16. 云计算前景如何?大专学历学习云计算怎么样?
  17. Python优秀函数库集锦(二)
  18. WPF翻盘连连看(二)
  19. Pulsar 社区周报|2021-07-12 ~ 2021-07-18
  20. 有没有想过:malloc分配的内存空间地址连续吗

热门文章

  1. JVM垃圾收集器基准报告 – Ionuț Baloșin 如何选择适合你的垃圾回收器
  2. Apktool 使用教程
  3. 学计算机应用技术掉头发,为什么程序员更容易脱发呢?
  4. ajax 发http请求吗,使用 Ajax 发送 http 请求 (getpost 请求)
  5. 如何把pdf转换成word文档?
  6. hive —— struct 复合结构
  7. 为什么很多人交易十几年都做不到稳定盈利呢?
  8. 笔记本电脑连接无线局域网怎么设置?
  9. QLabel 添加下划线 删除线
  10. minikube start命令的国内使用方法