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

267 天前
 sunhk25
「 git rm --cached -r 」可以忽略已经版本控制的文件,反之.gitignore 修改后有什么命令可以把忽略的文件再添加到所有版本控制里吗?
1330 次点击
所在节点    git
3 条回复
geelaw
267 天前
git add -f path/to/file
geelaw
267 天前
要加到旧 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
266 天前
@geelaw
谢谢!好像可以的样子,我回去试一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1029846

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX