V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
sunhk25
V2EX  ›  git

git 初始化时,.gitignore 不小心被忽略的文件夹有办法恢复到某一个节点吗?

  •  
  •   sunhk25 · 26 天前 · 775 次点击
    「 git rm --cached -r 」可以忽略已经版本控制的文件,反之.gitignore 修改后有什么命令可以把忽略的文件再添加到所有版本控制里吗?
    3 条回复    2024-04-05 18:52:46 +08:00
    geelaw
        1
    geelaw  
       26 天前 via iPhone
    git add -f path/to/file
    geelaw
        2
    geelaw  
       26 天前 via iPhone
    要加到旧 commit 里面(“所有”版本控制作此理解的话)的话,先 git checkout -b new old_commit 然后把 new 调整到你希望的状态,再 git checkout -b new2 previous_current 再 git rebase new 。

    当然如果希望新的历史还时刻反映忘记版本控制的文件在创造旧历史期间的变化,那当然无法自动完成,因为这些信息已经丢掉了,可以如上,但每个旧历史的 commit 都 cherry-pick 再修改到你希望的状态。

    还有一种是在当前的 commit 上继续产生数个 commits ,用来表达对每个旧版的修正,然后 git rebase -i 重排、合并让历史看起来完美。
    sunhk25
        3
    sunhk25  
    OP
       26 天前
    @geelaw
    谢谢!好像可以的样子,我回去试一下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2143 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:55 · PVG 18:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.