您的位置:首页 > 产品设计 > UI/UE

git gui 还原部分提交文件

2015-07-05 10:49 537 查看
  有时候用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。。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: