当前位置:   article > 正文

使用 git 篡改历史

git伪造提交记录

使用 git 篡改历史

⭐️ 更多前端技术和知识点,搜索订阅号 JS 菌 订阅

有时候我们需要修改 git 历史提交的文件内容,如果只是在前一个 commit,那么只需要修改文件并执行 --amend 即可:

如修改上一次提交的文件:

  1. // do something
  2. git add .
  3. git commit --amend --no-edit
  4. 复制代码

另外,可能还需要修改以往历史提交的文件,那么就需要使用到 rebase:

git log 查看一下以往的提交纪录:

  1. commit 084dbd48be6fff86b0d3de23220cff8cabddd9c6 (HEAD -> master)
  2. Author: oli <oli@olideMacBook-Pro.local>
  3. Date: Thu May 9 23:20:09 2019 +0800
  4. echart how to use
  5. commit 3358a5fd3078d7fb6794d8c2d468054db300a46f
  6. Author: oli <oli@olideMacBook-Pro.local>
  7. Date: Wed May 1 11:26:12 2019 +0800
  8. edit Readme.md
  9. commit c0b7ac77431ceb270b5f0aa0f97b13a79afca4b9
  10. Author: oli <oli@olideMacBook-Pro.local>
  11. Date: Wed May 1 02:25:40 2019 +0800
  12. init
  13. 复制代码

假设我们需要修改第二条纪录中的项目的文件,那么之行命令:

git rebase 3358a5fd3078d7fb6794d8c2d468054db300a46f^ --interactive

将 pick

  1. pick 3358a5f edit Readme.md
  2. pick 084dbd4 echart how to use
  3. 复制代码

改为 edit

  1. edit 3358a5f edit Readme.md
  2. pick 084dbd4 echart how to use
  3. 复制代码

然后保存

  1. Stopped at 3358a5f... edit Readme.md
  2. You can amend the commit now, with
  3. git commit --amend
  4. Once you are satisfied with your changes, run
  5. git rebase --continue
  6. 复制代码

按照提示,修改文件然后使用 git commit --amend 提交,并调用 git rebase --continue 即可:

  1. diff --git a/README.md b/README.md
  2. index 73ae153..98b8201 100644
  3. --- a/README.md
  4. +++ b/README.md
  5. @@ -1,29 +1 @@
  6. -# vuebox
  7. -
  8. -## Project setup
  9. -```
  10. -yarn install
  11. # ...
  12. +Read the guide and start building things in no time!
  13. 复制代码

修改文件后提交:

git add . && git commit --amend --no-edit

  1. > running pre-commit hook: lint-staged
  2. No staged files match any of provided globs.
  3. [detached HEAD 4436ffc] edit Readme.md
  4. Author: oli <oli@olideMacBook-Pro.local>
  5. Date: Wed May 1 11:26:12 2019 +0800
  6. 11 files changed, 177 insertions(+), 131 deletions(-)
  7. # ...
  8. 复制代码

最后调用 git rebase --continue

  1. Successfully rebased and updated refs/heads/master.
  2. 复制代码

搞定~

请关注我的订阅号,不定期推送有关 JS 的技术文章,只谈技术不谈八卦 ?

转载于:https://juejin.im/post/5cd77baef265da03a158490a

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号