美文网首页
如何更新并git的历史提交并自动修改git的用户信息

如何更新并git的历史提交并自动修改git的用户信息

作者: 湛然 | 来源:发表于2017-01-10 22:37 被阅读0次

现在互联网上有众多git源代码托管服务提供商,比较著名的github, aliyun, coding, oschina等; 以及公司对代码的安全策略,禁止代码存放在公司服务器上; 或者参与开源项目, 贡献自己的一份力量。每个人难免会维护多个git账号以区分不同的源代码托管服务商、个人项目、公司项目、开源项目等。

为了方便不同的git账号之间的切换,利用~/.ssh/config对不同的域进行配置 (更多阅读请参考 https://my.oschina.net/csensix/blog/184434 ), 为每个域设置独立的或共享的ssh key, 但用户还需要针对每个git仓库手动设置git config user.namegit config user.email, 其中滋味只有参与的人才能感同身爱。

为避免每次git clone时配置git账号信息, 更为了区分公司邮箱及个人邮件, 编写了两个Shell脚本, 辅助git的操作。

git-msg

当git的提交历史记录中用户名及邮箱配置有误时,可利用此脚本进行更新。

git 最后一次的提交可以直接使用命令 git commit --amend 修正。

  • Get git-msg from github

wget https://github.com/tianxiaxi/git-msg/raw/master/git-msg -O /usr/bin/git-msg

chmod +x /usr/bin/git-msg
  • Usage

git-msg - Update user name and email from git history message

Usage: git-msg <old email> <user name> <new email>

Required:
    <old email>   - Old email which will be replaced
    <user name>   - User name for git commiter and author
    <new email>   - New email for git commiter and author

Author: wayne@zanran.me
URL:    www.dailyshare.cn
Github: git@github.com:tianxiaxi/git-msg.git

git-user

git clone之后,git-user~/.ssh/config中读取相应的配置信息, 并自动设置user.nameuser.email

具体步骤如下:

  1. <git repo>/.git/config中获取git仓库的主机, 如github.com
  2. ~/.ssh/config中找到对应的UserIdentityFile
  3. IdentityFile对应的公钥中解析出对应的email
  4. 根据获取的useremail配置git的账户信息
  • Get git-user from github

wget https://github.com/tianxiaxi/git-msg/raw/master/git-user -O /usr/bin/git-user

chmod +x /usr/bin/git-user
  • Usage

git-user - Auto update git user name and email form ~/.ssh/config

Usage: git-user [-h | --help | ?]

Optional:
    -h | --help | ?   - Show usage information for git-user

Author: wayne@zanran.me
URL:    www.dailyshare.cn
Github: git@github.com:tianxiaxi/git-msg.git

相关文章

  • 如何更新并git的历史提交并自动修改git的用户信息

    现在互联网上有众多git源代码托管服务提供商,比较著名的github, aliyun, coding, oschi...

  • 批量修改GIT历史用户信息

    批量解决已提交的GIT历史用户信息错误问题。 第一步:拉取代码 第二步:创建脚本 脚本内容如下: 第三步:修改脚本...

  • git常用命令整理

    1、git config --global user.name "sagewang";修改本地Git的用户信息 2...

  • git操作合集

    1. Git强制更新并覆盖本地修改 git fetch --all 从远程拉取最新的代码 不merge git...

  • Git使用教程之版本回退

    通过上一篇文章Git的添加、提交与移除我们已经学会了如何创建git仓库,并使用Git管理文件,我们每次更新文件,提...

  • Git使用

    Git首次使用配置 配置用户信息 配置ssh Key 配置远程git仓库登录到远程git管理工具中,修改个人信息,...

  • git 相关

    目录 git SSH配置 git 分支名修改 git 放弃本地修改 强制拉取更新 git 撤销commit git...

  • git全局创建或者修改用户名和邮箱

    git的文件中查看局部信息 git的文件中查看全局的信息 git的文件中修改局部的信息 git的文件中修改全局的信息

  • linux下搭建git服务器

    1、 添加git用户 useradd -m git 2、 修改git用户密码(密码为git) passwd gi...

  • git使用中的总结

    一张图掌握Git Git Bash常用命令 修改git commit 最后一次提交的注释信息 以及如何退出git ...

网友评论

      本文标题:如何更新并git的历史提交并自动修改git的用户信息

      本文链接:https://www.haomeiwen.com/subject/mfylbttx.html