• 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。。。

  • 相关阅读:
    cmd 中英文 切换
    comparable和comparator
    ORACLE 毫秒转换为日期 日期转换毫秒
    asp.net弹出对话框
    一、DataBinder.Eval的基本格式
    转载 创业
    常用的js验证数字,电话号码,传真,邮箱,手机号码,邮编,日期
    CodeSmith开发系列资料总结
    SQL函数说明大全
    SQLServer游标的使用
  • 原文地址:https://www.cnblogs.com/abcwt112/p/4621826.html
Copyright © 2020-2023  润新知