如何修改GitHub提交的用户名归属?及终端登录GitHub账号方法
嘿,这两个问题我帮你搞定!
修改分支提交的作者归属
根据你提交的数量不同,有两种处理方式:
情况1:仅修改最近的单个提交
如果只是最后一次提交用错了账号,直接用这条命令修改作者信息,同时保留原提交内容:
git commit --amend --author="你的全名 <你的GitHub绑定邮箱>" --no-edit
修改完后,需要强制推送到远程仓库(因为我们修改了提交历史),这里推荐用更安全的--force-with-lease,避免覆盖其他人的提交:
git push --force-with-lease origin 你的分支名称
情况2:批量修改分支上的所有提交
如果分支上有多个提交都归属到你哥哥的账号,用git filter-branch脚本批量修改更高效:
- 先切换到目标分支:
git checkout 你的分支名称
- 运行下面的脚本(把里面的旧信息换成你哥哥的,新信息换成你的):
git filter-branch --env-filter ' OLD_NAME="你哥哥的GitHub用户名" OLD_EMAIL="你哥哥的GitHub绑定邮箱" NEW_NAME="你的GitHub用户名" NEW_EMAIL="你的GitHub绑定邮箱" # 修改提交者信息 if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ] && [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$NEW_NAME" export GIT_COMMITTER_EMAIL="$NEW_EMAIL" fi # 修改作者信息 if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ] && [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$NEW_NAME" export GIT_AUTHOR_EMAIL="$NEW_EMAIL" fi ' --tag-name-filter cat -- --branches --tags
- 脚本执行完成后,强制推送到远程:
git push --force-with-lease origin 你的分支名称
⚠️ 重要提醒:如果这个分支还有其他协作者,一定要提前跟他们沟通!修改提交历史会导致他们的本地分支和远程分支冲突,需要他们重新拉取并处理冲突。
在终端登录你的GitHub账号
现在GitHub已经禁用了密码登录,所以有两种常用的认证方式:
方式1:使用个人访问令牌(PAT)
适合用HTTPS地址克隆的仓库:
- 生成PAT:登录你的GitHub账号 → 进入「Settings」→ 「Developer settings」→ 「Personal access tokens」→ 「Tokens (classic)」→ 点击「Generate new token」。勾选至少
repo权限(如果需要操作仓库),设置过期时间,生成后一定要复制保存好(离开页面就看不到了)。 - 终端使用:当终端提示输入密码时,直接粘贴你生成的PAT即可。
- 自动保存凭据:如果不想每次都输入PAT,可以配置Git凭据助手:
# 临时保存(重启终端后失效) git config --global credential.helper cache # 永久保存(存储在本地) git config --global credential.helper store
方式2:使用SSH密钥(更省心)
适合长期使用,无需每次输入令牌:
- 生成SSH密钥:打开终端运行(替换成你的GitHub绑定邮箱):
ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"
一路回车默认设置即可,不需要设置密码(如果设置了,每次用SSH都要输密码)。
2. 添加公钥到GitHub:打开生成的公钥文件(默认路径~/.ssh/id_ed25519.pub),复制全部内容。登录GitHub → 「Settings」→ 「SSH and GPG keys」→ 「New SSH key」,粘贴公钥内容,起个名字保存。
3. 测试连接:运行下面的命令,看到欢迎提示就说明成功了:
ssh -T git@github.com
之后用SSH地址克隆或操作仓库,就不需要输入任何凭据了。
内容的提问来源于stack exchange,提问作者Luv
相关产品推荐
相关产品推荐

