使用 git 篡改历史
⭐️ 更多前端技术和知识点,搜索订阅号
JS 菌
订阅
有时候我们需要修改 git 历史提交的文件内容,如果只是在前一个 commit,那么只需要修改文件并执行 --amend
即可:
如修改上一次提交的文件:
- // do something
- git add .
- git commit --amend --no-edit
- 复制代码
另外,可能还需要修改以往历史提交的文件,那么就需要使用到 rebase:
git log 查看一下以往的提交纪录:
- commit 084dbd48be6fff86b0d3de23220cff8cabddd9c6 (HEAD -> master)
- Author: oli <oli@olideMacBook-Pro.local>
- Date: Thu May 9 23:20:09 2019 +0800
-
- echart how to use
-
- commit 3358a5fd3078d7fb6794d8c2d468054db300a46f
- Author: oli <oli@olideMacBook-Pro.local>
- Date: Wed May 1 11:26:12 2019 +0800
-
- edit Readme.md
-
- commit c0b7ac77431ceb270b5f0aa0f97b13a79afca4b9
- Author: oli <oli@olideMacBook-Pro.local>
- Date: Wed May 1 02:25:40 2019 +0800
-
- init
- 复制代码
假设我们需要修改第二条纪录中的项目的文件,那么之行命令:
git rebase 3358a5fd3078d7fb6794d8c2d468054db300a46f^ --interactive
将 pick
- pick 3358a5f edit Readme.md
- pick 084dbd4 echart how to use
- 复制代码
改为 edit
- edit 3358a5f edit Readme.md
- pick 084dbd4 echart how to use
- 复制代码
然后保存
- Stopped at 3358a5f... edit Readme.md
- You can amend the commit now, with
-
- git commit --amend
-
- Once you are satisfied with your changes, run
-
- git rebase --continue
- 复制代码
按照提示,修改文件然后使用 git commit --amend
提交,并调用 git rebase --continue
即可:
- diff --git a/README.md b/README.md
- index 73ae153..98b8201 100644
- --- a/README.md
- +++ b/README.md
- @@ -1,29 +1 @@
- -# vuebox
- -
- -## Project setup
- -```
- -yarn install
- # ...
- +Read the guide and start building things in no time!
- 复制代码
修改文件后提交:
git add . && git commit --amend --no-edit
- > running pre-commit hook: lint-staged
- No staged files match any of provided globs.
- [detached HEAD 4436ffc] edit Readme.md
- Author: oli <oli@olideMacBook-Pro.local>
- Date: Wed May 1 11:26:12 2019 +0800
- 11 files changed, 177 insertions(+), 131 deletions(-)
- # ...
- 复制代码
最后调用 git rebase --continue
- Successfully rebased and updated refs/heads/master.
- 复制代码
搞定~
请关注我的订阅号,不定期推送有关 JS 的技术文章,只谈技术不谈八卦 ?