git stash 迁移

背景:一位同事因为误操作,将.git文件删除了部分东西,导致git 远端拉取步骤繁琐,且拉取完,远端分支不可见。重新clone 仓库正常,但是之前git本地仓库贮藏大量未提交代码无法迁出,于是本人开启一段git stash 迁移探寻之路。闲话不表,直接给出解决方案:
参考文档 https://stackoverflow.com/questions/3973034/export-a-stash-to-another-computer

思路
1、进入项目目录及.git所在目录
2、查看当前git 贮藏 git stash list
3、选出需要导出的贮藏 git stash show "stash@{0}" -p > changes.patch
其中 stash@{0} 是需要迁移出来的贮藏记录,0是该记录在git 贮藏栈中的下标
4、将changes.patch copy到另一个 新clone的项目目录下
5、切换至贮藏记录所在的分支
6、执行git apply changes.patch
注意,如果贮藏的信息已经在项目中提交过,则此次应用会失败,报错
7、如果应用贮藏发生冲突,可以用 git apply --3way changes.patch 强制变更,检查错误后再进行提交

如果存在没有跟踪的贮藏,可以通过git stash show "stash@{0}" -u -p > changes.patch 提取贮藏信息

use git apply --3way changes.patch to try to solve conflicts later, if you have got "patch does not apply".

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我在当前分支开发了,开发一部分,然后需要在其他分支解决问题,怎么办? 在介绍合并的时候,有提到需要保持分支干净,所...
    tingtingtina阅读 982评论 0 2
  • Git工具 选择修订版本 Git能够以多种方式来指定单个提交、一组提交或者是一定范围内的提交。 单个修订版本 可以...
    squarejohn_5dc8阅读 343评论 0 1
  • 缘起 今天在看一个bug,之前一个分支的版本是正常的,在新的分支上上加了很多日志没找到原因,希望回溯到之前的版本,...
    kangaroo_v阅读 2,215评论 1 1
  • git branch 不带参数:列出所有本地分支,并且在当前分支的前面用"*"标记git branch 列出所有远...
    CoderLS阅读 450评论 0 1
  • 前言 git是用来管理代码和工作流的强大工具,它以commit为单位,低成本开辟分支等优势备受青睐.在实际开发中,...
    sea_biscute阅读 74,665评论 2 34