Skip to main content

Git & Github

· 2 min read ·
Castamere
Code Aesthetic

记录一些常用的 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

  1. 先在本机生成 ssh key
cd ~/.ssh
ssh-keygen -t ed25519 -C "castamerego@gmail.com" # 换成你的邮箱

会生成 id_ed25519id_ed25519.pub 两个文件,复制下来 id_ed25519.pub 的内容

  1. 登录 Github Settings - SSH and GPG keysExternal Link

点击 "New SSH key",把刚才复制的内容粘贴进去,保存

Github SSH

  1. 在本机修改 ~/.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>
Buy me a coffee ☕:
This article is licensed under CC 4.0 BY-SAExternal Link