工具 :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代表你正在工作的那个文件集

转载于:https://www.cnblogs.com/zhaokunbokeyuan256/p/9597038.html

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. AI一分钟 | 小鹏汽车回应前苹果员工窃取商业机密:积极配合相关调查
  2. shell 字符串操作(长度,查找,替换)详解
  3. SMB文件共享及用户权限使用配置
  4. 在家点点接入云信,打造全新社区商业和社交生态
  5. 315曝光不良奸商 对企业不能罚酒三杯
  6. P5163-WD与地图【tarjan,整体二分,线段树合并】
  7. 《MySQL—— 业务高峰期的性能问题的紧急处理的手段 》
  8. 打包HTML文件基础之webpack配置
  9. java junit
  10. Visual.Basic.2008编程参考手册
  11. Photoshop: 机关单位公章
  12. 1003 我要通过! (20 分)—PAT (Basic Level) Practice (中文)
  13. dubbo之SPI扩展机制注解:@Extension注解的作用
  14. 天池大数据竞赛——糖尿病遗传风险预测赛后总结(二)
  15. 有一个3x4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号.
  16. Ubuntu 16.04 鼠标可以移动不能点击问题
  17. 利用Python实现阴阳师自动抽卡
  18. 基于Java实现的几何图形处理系统
  19. 数据结构排序算法之归并排序(c语言实现)
  20. HTML5+CSS设计导航栏及其子菜单

热门文章

  1. 为程序员爆肝整理的防治脱发大集锦
  2. 第一款在太空中使用的芯片
  3. java表格边框问题_Java 设置Word表格边框
  4. 俄语入门-俄语语音规则
  5. 采用计算机对酒店客房进行管理,酒店客房管理系统—计算机毕业设计论文.doc...
  6. Verilog——三角波发生器(状态机)
  7. 一个bug看一天,写代码像cxk
  8. iOS组件化方案对比
  9. 云栖科技评论第18期:Tenable 发布全球安全指数
  10. 概率论 —— 条件数学期望