当前位置:   article > 正文

Git 使用_git rev-list --objects --all

git rev-list --objects --all

历史修改

更改提交记录,解决误提交大文件如mp4、密码文件如.env等一系列问题

# 检索项目当中的大文件
git rev-list --objects --all | grep -E `git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}' | sed ':a;N;$!ba;s/\n/|/g'`

# 移除所有分支中tag为cat里面的大文件
# --prune-empty 如果删除了大文件而导致了某些commit的更改记录为空,则不再保留这些commit
git filter-branch --tree-filter 'rm -f path/to/large/files' --prune-empty --tag-name-filter cat --all
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

替换提交中的指定注释,支持正则表达式

git filter-branch --msg-filter "sed s/Merge.*/分支合并/g" -f master
git filter-branch --msg-filter "sed s/Merge.*/分支合并/g" -f from_version..to_version
  • 1
  • 2

修改commit message
git commit --amend 可以对上一次的提交做修改
push -f 如果上一次的提交已经push了,那么需要加f参数覆盖服务端,不过不建议这么搞

tag管理

获取tag列表

git tag
  • 1

删除所有tag

git tag | xargs git tag -d
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/601448
推荐阅读
相关标签
  

闽ICP备14008679号