Git & Github
· 阅读需 2 分钟 ·
记录一些常用的 Git 和 Github 操作
Tag
使用 Git 的 tag 和 Github Actions 可以形成很好的自动化
git tag Vx.x.x
git push origin Vx.x.x
如果部署出现问题可以用下面的命令来撤回
git tag -d Vx.x.x
git push origin :refs/tags/V0.2
Github 回滚
如果 Github 上出现某些误操作,导致历史记录变乱,可以通过以下方式来"回滚"
首先把代码拉到本地,然后使用 git reset --hard <commit_hash> 在本地回滚
再使用 git push origin <branch_name> --force 推送
SSH 连接 Github
- 先在本机生成 ssh key
cd ~/.ssh
ssh-keygen -t ed25519 -C "castamerego@gmail.com" # 换成你的邮箱
会生成 id_ed25519 和 id_ed25519.pub 两个文件,复制下来 id_ed25519.pub 的内容
点击 "New SSH key",把刚才复制的内容粘贴进去,保存

- 在本机修改
~/.ssh/config文件
Host github.com
User git
IdentityFile ~/.ssh/id_ed25519
测试连接
ssh -T git@github.com
FAQ
连接超时
若超时可能是 dns 问题,可以直接把 ip 加到 /etc/hosts 里
Host github.com
HostName 20.205.243.166
User git
IdentityFile ~/.ssh/id_ed25519
切换现有库的 remote URL
git remote set-url origin git@github.com:Casta-mere/repo-name.git
Cherry-pick
Cherry-pick 是 Git 中一个非常有用的命令,可以将特定的提交从一个分支应用到另一个分支,而不需要合并整个分支。这对于修复错误、引入特定功能或在不同分支之间共享代码非常有帮助
遇到的一个场景是:在某个分支上创建了一个新的分支,在新分支上做了一些修改后,发现原有分支已经有了新的提交,并且已经合并了。在代码不冲突的情况下,我们可以这样做:
git checkout original-branch
git branch new-branch
git checkout new-branch
git cherry-pick <commit-hash>


