【问题标题】:Sibling directories lost after git stash of current directorygit stash 当前目录后兄弟目录丢失
【发布时间】:2017-07-07 18:11:53
【问题描述】:

假设我有这个目录结构:

项目根 | +--父母 | +--孩子 | +--baby_brother

baby_brother 是一个新目录,没有被 git 跟踪。我对child 中的文件也有很多更改。我需要临时访问 child 中文件的早期版本,所以我想我只是隐藏我的更改:

cd $project_root/parent/child
git stash push .

然后:

cd $project_root/parent/child
git stash pop

现在,令我沮丧的是,baby_brother 和一周的工作都不见了。 :-(

我有两个问题:

  1. 有什么方法可以找回我的文件吗?我怀疑答案是否定的。

  2. 这是一个错误,还是我做错了什么?

我看到an SO question 说 git 删除未跟踪的文件是预期的行为,但一方面,它还说这在 1.7.1.1 中已修复(我使用的是 2.13.0),另一方面,我预计存储只会影响child,因为我在那个目录中并且在命令末尾包含一个点来引用当前目录。


这是一个演示问题的快速重现:

1 ~ % mkdir 项目根目录 2 ~ % cd 项目根目录 3 project_root % mkdir 父级 4 project_root % 触摸父/文件 5 project_root % mkdir 父/子 6 project_root % 触摸父/子/file2 7 项目根 % git 初始化 在 /home/pdaddy/project_root/.git/ 中初始化空的 Git 存储库 8 项目根 % git add 。 9 project_root % git commit -m '在 git 中获取' [master (root-commit) 2d0872c] 在 git 中获取 2 个文件更改,0 次插入 (+),0 次删除 (-) 创建模式 100644 父/子/file2 创建模式 100644 父/文件 10 project_root % mkdir parent/baby_brother 11 project_root % 触摸父母/baby_brother/file3 12 project_root % 触摸父/file4 13 project_root % 触摸文件5 " 14 project_root % comment="事实证明,file4 和file5 也将被删除。 15 project_root % 树 $PWD /home/pdaddy/project_root |-- 文件5 `-- 父级 |-- 宝贝兄弟 | `--文件3 |-- 孩子 | `--文件2 |-- 文件 `--文件4 3个目录,3个文件 16 project_root % echo '一些改变' >> 父/子/file2 17 project_root % cd 父/子 18 孩子 % git stash push 。 在 master 上保存工作目录和索引状态 WIP:2d0872c 在 git 中获取 19 project_root % 树 ~/project_root /home/pdaddy/project_root `-- 父级 |-- 孩子 | `--文件2 `-- 文件 2个目录,2个文件 20 孩子 % git stash pop 在分支主 未为提交暂存的更改: (使用“git add ...”来更新将要提交的内容) (使用“git checkout -- ...”丢弃工作目录中的更改) 修改:文件2 没有添加到提交的更改(使用“git add”和/或“git commit -a”) 删除了 refs/stash@{0} (80e41d0ed1f2b0a085d4f5ca3a38833a18873f98) 21 孩子 % 树 ~/project_root /home/pdaddy/project_root `-- 父级 |-- 孩子 | `--文件2 `-- 文件 2个目录,2个文件

【问题讨论】:

    标签: git git-stash


    【解决方案1】:

    我使用 git 的 next 分支 (v2.14.0.rc0) 测试了我的复制示例,但问题并未出现,所以我猜这是一个错误,并且有人已经修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 2020-01-16
      相关资源
      最近更新 更多