Git操作 - 删除untracked files

  1. 删除 untracked files

    1git clean -f
    
  2. 连 untracked 的目录也一起删掉

    1git clean -fd
    
  3. 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)

    1git clean -xfd
    
  4. 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删

    1git clean -nxfd
    2git clean -nf
    3git clean -nfd**
    
  5. 针对公司或者GitHub设置不同的提交账号

    进入项目目录

    1git config user.name "wmsjhappy@gmail.com"
    2git config user.email clibing
    

    会在当前目录.git/config会生成提交的账号和邮箱地址

  6. 跳过证书的验证

    1git config --global http.sslVerify false
    
  7. 修改上一次已经提交的记录

    1git commit --amend
    
  8. 覆盖本地master与服务器一致

    1git fetch --all &&  git reset --hard origin/master && git pull
    
  9. 彻底删除某个敏感信息,包括历史提交记录 参考

    git-filter-repo source

    1brew install git-filter-repo
    2
    3git filter-repo --invert-paths --path 需要删除的文件(是相对项目的路径,不要以/开头)
    4
    5git rebase -i HEAD~5 需要修改当前分支的提交点~-5个提交, pick->edit修改提交记录, 修改pick->squash会合并多个提交记录
    
  10. 当commit msg不符合规范的是否需要修复commit

参考官方文档

1git rebase -i HEAD~3 # 代表修改当前分支最近3个commit的message
2提交后按照提示执行
3  单条修改,需要将'pick' -> 'edit'
4  多条合并修改,需要将'pick' -> 'squash'
5保存退出
6
7git commit --amend 修改内容
8
9git rebase --continue
  1. 查看tag的列表,展示时间
1git log --tags --simplify-by-decoration --pretty="format:%ai %d"
  1. Git push send-pack: unexpected disconnect while reading sideband packet 107 致命错误:远端意外挂断了
1git push

会提示如下问题

 1枚举对象中: 39, 完成.
 2对象计数中: 100% (30/30), 完成.
 3使用 4 个线程进行压缩
 4压缩对象中: 100% (15/15), 完成.
 5写入对象中: 100% (17/17), 171.37 KiB | 17.14 MiB/s, 完成.
 6总共 17(差异 11),复用 0(差异 0),包复用 0
 7错误:RPC 失败。curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
 8send-pack: unexpected disconnect while reading sideband packet
 9致命错误:远端意外挂断了
10Everything up-to-date

需要设置为HTTP1.1即可

1git config http.version HTTP/1.1
  1. 清理当前仓库未跟踪、忽略的文件

13.1 可选参数

  • -n 不要删除任何内容,只显示将要删除的内容
  • -f 强行删除文件
  • -d 考虑未跟踪的目录以及未跟踪的文件
  • -x 还要考虑被忽略的未跟踪文件.gitignore

13.2 查看将要删除文件列表

  • git clean -n :仅列出未跟踪的文件,忽略.gitignore中的文件.
  • git clean -n -d :列出未跟踪的文件和文件夹,忽略中的.gitignore文件
  • git clean -n -x :列出所有未跟踪的文件,包括被忽略的文件.gitignore。
  • git clean -n -d -x :列出所有未跟踪的文件和文件夹,包括被忽略的文件和文件夹.gitignore

13.3 从存储库中删除文件

  • git clean -f: 只删除未被.gitignore
  • git clean -f -d: 删除未跟踪的文件和文件夹,不删除.gitignore的文件
  • git clean -f -x: 删除所有未跟踪的文件,包括那些被忽略的文件.gitignore。
  • git clean -f -d -x: 删除所有未跟踪的文件和文件夹,包括那些被忽略的文件和文件夹.gitignore。

参考