Notes

管理多账户

  1. 添加两个key
# 此处用默认文件名(此处生成"id_ed25519")
ssh-keygen -t ed25519 -C "[email protected]"
# 指定一个文件名(注意,全路径)
ssh-keygen -t ed25519 -C "[email protected] -f ~/.ssh/id_personal"

此时,~/.ssh路径下就有了两对公私钥

  1. 手动切换
ssh-add -D
ssh-add ~/.ssh/id_ed25519 # 切换另一个换个私钥名即可

这种做法非常低效,而且容易忘

  1. host映射

~/.ssh/config是配置文件(没有可以新建一个),默认配置为

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

使用ssh-agent添加到keychain中,不使用keychain的话忽略

据说密钥没设密码的话,keychain不会保存(未测)

ssh-add --apple-use-keychain ~/.ssh/id_ed25519
ssh-add --apple-use-keychain ~/.ssh/id_personal

修改配置文件

Host github.com
  HostName github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519
Host personal
  HostName github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_personal

Host就是别名,类似主机头,这样你把git的remote中域名的位置用别名替代使用即可

修改最后一次commit的message

git commit --amend -m"your new message"

假如这个commit已经push到远程仓库,还需要git push --force一下(即-f

修改最后一次commit的author

git commit --amend --author="your name <your email>"
``

## 撤销最后一次push

```bash

git reset --hard HEAD^
#或退到/进到 指定commit_id:
git reset --hard commit_id

git push origin HEAD --force

Backlinks