跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 用 git 踩了个坑
未分類
15 4 月 2021

用 git 踩了个坑

用 git 踩了个坑

資深大佬 : clrss 2

事件顺序

  1. 添加文件 A — commit1
  2. 一般操作 — commit2~9
  3. git rm --cached A 并把 A 添加到 gitignore — commit10
  4. git rebase -i commit2. 保持 commit10 不变
  5. 回放 commit10 时, 文件 A 就丢了…
大佬有話說 (8)

  • 資深大佬 : yiXu

    @clrss 没怎么看懂,能给出可复现的,所有操作的命令行代码吗? gist 给个最好,我想试试看。

  • 資深大佬 : momocraft

    commit10 删掉了 A, apply 时也删掉 A 不是正常的吗?

    你的期待是 apply 后 A 留在 worktree? 可是 commit 一级不保留这个信息

  • 資深大佬 : xuanbg

    签出 commit9 不就回来了?

  • 資深大佬 : hw93

    只要 commit 了,文件就不会丢

  • 主 資深大佬 : clrss

    @xuanbg
    @hw93

    复现步骤总结错了.

    实际上是
    git rm A
    mv /some/other/file A

  • 資深大佬 : dezng

    看你上面的操作,rebase 基于 commit2,commit1 还存在,A 文件肯定还在。即使 commit1 没了,一般通过 git reflog 也能找回。

  • 主 資深大佬 : clrss

    @dezng 看附言, 实际上是 git rm A, 然后换了个同名文件. 我要的是后来换的同名文件.

  • 資深大佬 : dezng

    @clrss commit1 还在,A 一定还在 git checkout commit1 — path/to/A 你就看到原来的 A 文件了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具