Notes
管理多账户
- 添加两个key
# 此处用默认文件名(此处生成"id_ed25519")
ssh-keygen -t ed25519 -C "[email protected]"
# 指定一个文件名(注意,全路径)
ssh-keygen -t ed25519 -C "[email protected] -f ~/.ssh/id_personal"
此时,~/.ssh路径下就有了两对公私钥
- 手动切换
ssh-add -D
ssh-add ~/.ssh/id_ed25519 # 切换另一个换个私钥名即可
这种做法非常低效,而且容易忘
- 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中域名的位置用别名替代使用即可
其实就是git clone personal:work-company/company-project.git, 把github.com换成对应的主机头即可. 也就是说想要无痛完美地工作, 从clone时就要做好
如果是已经存在的仓库:
# 查看当前远程地址
git remote -v
# 修改 origin 的 URL(假设当前是个人项目)
git remote set-url origin [email protected]:personal-user/my-project.git
修改最后一次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