git gui 还原部分提交文件
有时候用git提交文件的时候会一起提交了多个文件,但是突然后悔了,想把其中一个文件撤销提交,其他文件不做修改。这个时候该怎么办呢?
我觉得有很多办法,比如可以先checkout到上次的提交,然后复制要撤销修改的文件,然后再checkout到最新的版本,再手动复制粘贴。。这样相当于手动去旧版本copy了一个文件覆盖新版本。这样做其实也不难,但是比较烦。。。目录多的时候找文件比较麻烦,另外要撤销的文件多的时候也比较坑爹。。。这个时候其实可以利用git自带的功能来完成任务的。
Cherry -pick
cherry-pick用于把另一个本地分支的commit修改应用到当前分支。
基本百度这个命令都能得到这个答案。。。。。
但是经过我实验发现这个命令其实并不止局限于2个不同的分支,即使是同一个分支也是能做到的。
所以说我们的目的怎么达到呢?在最新的版本上利用cherry -pick 命令去把上次提交的合并到当前版本就OK了。
举栗子~
现在在版本1提交了2个txt文件,1.txt和2.txt
修改2个文件以后再提交
现在我想把1.txt恢复到上次提交,2.txt不变怎么办呢?
查看master分支历史以后,在上个版本上(init)上右键选择cherry -pick this commit
然后gui会询问你,这个commit已经在分支上了,是否要继续。。。
选择是以后,会提示你有冲突,这和我们想的一样,因为上个版本的txt和最新版本的txt肯定不一样嘛。。。
然后就到了解决冲突的界面。。。
当前local版本是最新的版本,remote的版本是cherry -pick过来的commit版本,所以我们要还原1.txt的话就在1.txt的正文里选择remote的版本,在2.txt里选择local的版本
然后再提交这次commit就OK了。。。这次commit相当于是做了一个merge。。。
git gui 还原部分提交文件的更多相关文章
- [Git & GitHub] 利用Git Bash进行第一次提交文件
转载:https://blog.csdn.net/dietime1943/article/details/72420042 利用Git Bash进行第一次提交文件 快下班的时候,MD群里有人问怎么向g ...
- 云盘+Git GUI实现云盘文件版本号控制
以下介绍操作细节 1.先下载Git GUI 下载地址:http://msysgit.github.io/ 再下载百度云网盘 下载地址:http://pan.baidu.com 接下来就是安 ...
- git按需过滤提交文件的一个细节
问题场景 用git管理代码时,作为git小白的我总会遇到一些无法理解的问题,在请教了一些高手后终于解开了疑惑,参考以下场景: 1.比如我们已在电脑1上完成用vs编辑项目.添加.提交到服务器的完整流程, ...
- Git本地有未提交文件,直接拉取远端最新版本
git pull = git fetch + git merge 1.修改不同的文件: 用户D和用户L在本地提交中修改了不同的文件,如果用户D将改动推送到服务器后,用户L再推送就会遇到非快进式推送错误 ...
- 手把手教你提交文件到git
手把手教你使用git提交到github 作者 数据分析与优化 关注 2016.07.17 10:25 字数 7342 阅读 399评论 1喜欢 6 摘要Git是分布式版本控制系统,那么它就没有中央服务 ...
- Git学习之路(3)-提交文件到三个区
▓▓▓▓▓▓ 大致介绍 年过的差不多了,开始学习!小白学Git(持续更新) Git有三个工作区域: ◆ 工作区(Working Directory) ◆ 暂存区(Stage) ◆ 版本库(Reposi ...
- Git Gui、Ssh key的使用和ideaui配置使用Git解决冲突(下)
目的: 1.Git Gui的使用 2.Ssh key 介绍及使用 2.1小结:https 和 SSH 的区别 3.Idea配置使用并使用git 4.ideaui使用Git冲突问题解决 Git Gui的 ...
- GIT GUI的使用(转)
前段时间跟着Ruby On Rails的toturial玩了一把Git,今天再回过头来,觉得这个版本控制工具真的很不错.下面来讲一下,在windows下如何通过git gui来管理代码. 首先,要在h ...
- Git GUI 的使用
下面,我们开始使用Git Gui 如果你想init一个本地的git仓库,到你的代码根目录下,右键选择Git Init Here 这时,你会发现在代码根目录下,生成了一个.git的隐藏属性目录. 再选择 ...
随机推荐
- MySql踩坑总结
衣带渐宽终不悔,为伊消得人憔悴,众里寻他千百度,蓦然回首,那人却在灯火阑珊处好通顺的句子哈哈 转了那么多弯,才明白问题就在一个地方.睡觉之前想明白了问题,还是经验太少.王国维的治学三境界: 昨夜西风凋 ...
- 微软本月将推Win10 望打破Win8所带来差评影响
系统妈 据香港“文汇报”7月15日报道,美国电脑巨擘微软13日宣布,新视窗系统10(Windows 10)将于7月29日推出.微软高层迈赫迪在网志表示,届时全球将有13个城市举办特别活动,表扬参与Wi ...
- Spring 02多种注入方式和注解实现DI
一.Bean作用域 spring容器创建的时候,会将所有配置的bean对象创建出来,默认bean都是单例的.代码通过getBean()方法从容器获取指定的bean实例,容器首先会调用Bean类的无参构 ...
- Hadoop 2.x
Hadoop 2.x 生态系统及技术架构图 一.负责收集数据的工具:Sqoop(关系型数据导入Hadoop)Flume(日志数据导入Hadoop,支持数据源广泛)Kafka(支持数据源有限,但吞吐大) ...
- 强大的支持多文件上传的jQuery文件上传插件Uploadify
支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...
- JavaScript模板引擎artTemplate.js——template.helper()方法
上一篇文章我们已经讲到了helper()方法,但是上面的例子只是一个参数的写法,如果是多个参数,写法就另有区别了. <div id="user_info"></d ...
- TextView字体阴影效果
android:shadowDx="1" android:shadowDy="1" android:shadowColor="#8c8c8c" ...
- [node.js 学习]1.start a simple server
1.启动一个本地的服务 下面是官方的例子,会生成一个随机端口,返回的是纯文本: var net = require('net'); var server = net.createServer((soc ...
- 关于mybatis中mapper.xmlSQL语句书写的心得
本文主要针对MySQL ---------------------------------------------------------------------------------------- ...
- Android 在线订单倒计时设计
接到一个需求,用户下单后,商店这边需要显示在线订单列表,订单十分钟内有效.于是需要设计倒计时,显示每个订单剩余处理时间. 倒计时剩余时间: 订单创建时间 + 10分钟 - 系统当 ...