配置

修改已提交commit的用户名和邮箱<br />

① 增加如下文件到项目根目录,并执行

  1. #!/bin/sh
  2. git filter-branch --env-filter '
  3. OLD_EMAIL="被修改的提交者邮箱"
  4. CORRECT_NAME="新的名字"
  5. CORRECT_EMAIL="新的提交者邮箱"
  6. if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
  7. then
  8. export GIT_COMMITTER_NAME="$CORRECT_NAME"
  9. export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
  10. fi
  11. if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
  12. then
  13. export GIT_AUTHOR_NAME="$CORRECT_NAME"
  14. export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
  15. fi
  16. ' --tag-name-filter cat -- --branches --tags

② 执行如下命令推向远程

  1. git push --force --tags origin 'refs/heads/*'

官方推荐做法可参考如下:
https://help.github.com/en/github/using-git/changing-author-info

git status改动的文件中文乱码

\347\231\276\345\272\246
这样的是八进制字符
解决办法:
git config --``global`` core.quotepath ``false

每次提交都要输入账号密码?

1、可能你设置的远程仓库是https的,这样的情况下编辑config文件增加如下

[credential] helper = store

2、其实设置远程仓库的地址为git协议的,就能用SSH key 访问账号了,这样如果之前你设置了key保存在你github账号里,就不用每次输入密码了。

分支管理

  • 本地新建分支 git checkout -b newBranch
  • 分支重命名 git branch -m oldName newName
  • 删除远程分支 git branch --delete origin branchName
  • 删除本地分支 git branch -d branchName
  • 本地分支推到远程 git push origin dev:dev
  • 将本地dev分支与远程dev分支关联 git branch --set-upstream-to=origin/dev dev

    Tag管理

  • git tag //查看tag

  • git push origin test_tag //!!!本地tag推送到线上
  • git tag -d test_tag //本地删除tag
  • git push origin :refs/tags/test_tag //本地tag删除了,再执行该句,删除线上tag

github如何增加一种开源协议

找到仓库首页,create file > 输入 LICENSE,右边就会出现原则协议的按钮,然后根据提示操作即可

分支管理流程

git - 图1

踩坑记录

fatal: The remote end hung up unexpectedly

推送文件过大,可以修改设置

git config --global http.postBuffer 524288000
or
git config --global http.postBuffer 1048576000

清除 .git 目录下大的 object .pack 文件

参考

Git查看、删除、重命名远程分支和tag
Git工作流指南:Gitflow工作流
git分支最佳实践