linux git 用户名设置,Git修改commit的用户名和邮箱

在 Git 上工作的时候,你也许会由于某种原因想要修订你的提交历史。Git 的一个卓越之处就是它允许你在最后可能的时刻再作决定。你可以在你即将提交暂存区时决定什么文件归入哪一次提交,你可以使用 stash 命令来决定你暂时搁置的工作,你可以重写已经发生的提交以使它们看起来是另外一种样子。这个包括改变提交的次序、改变说明或者修改提交中包含的文件,将提交归并、拆分或者完全删除——这一切在你尚未开始将你的工作和别人共享前都是可以的。

filter-branch

如果你想用脚本的方式修改大量的提交,还有一个重写历史的选项可以用——例如,全局性地修改电子邮件地址或者将一个文件从所有提交中删除。这个命令是filter-branch,这个会大面积地修改你的历史,所以你很有可能不该去用它,除非你的项目尚未公开,没有其他人在你准备修改的提交的基础上工作。尽管如此,这个可以非常有用。

我们创建了一个脚本,它将更改以前在author或committer字段中拥有旧电子邮件地址的所有提交,以使用正确的名称和电子邮件地址。

注意:运行此脚本将重写所有Git库协作者的历史记录。完成这些步骤后,任何使用fork或clone的人都必须获取重写的历史记录,并将任何本地更改重新建立到重写的历史记录中。

1.打开终端

2.创建一个你的repo的全新裸clone(repo.git替换为你的项目)

git clone --bare https://github.com/user/repo.git

cd repo.git

3.复制粘贴脚本,并根据你的信息修改以下变量:

OLD_EMAIL

CORRECT_NAME

CORRECT_EMAIL

#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="your-old-email@example.com"

CORRECT_NAME="Your Correct Name"

CORRECT_EMAIL="your-correct-email@example.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]

then

export GIT_COMMITTER_NAME="$CORRECT_NAME"

export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"

fi

if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]

then

export GIT_AUTHOR_NAME="$CORRECT_NAME"

export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"

fi

' --tag-name-filter cat -- --branches --tags

4.执行脚本

5.查看新 Git 历史有没有错误

6.把正确历史 push 到 Github

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

7.清楚临时clone

cd ..

rm -rf repo.git

修改git的配置文件

全局修改

对所有的 git 项目配置

git config --global user.name "John Doe"

git config --global user.email johndoe@example.com

或者直接在全局配置文件中修改

目录: ~/.gitconfig

[user]

name = John Doe

email = johndoe@example.com

只对当前项目修改

git config user.name "John Doe"

git config user.email johndoe@example.com

查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

$ git config --list

user.name=Scott Chacon

user.email=schacon@gmail.com

...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值