高级 Git 技巧
别名
重新定基
多个 SSH 密钥
Git 非常棒,只有亲身使用才能真正掌握。尽量学习命令,否则不用就会忘记。图形用户界面工具(例如 Tower 或 SourceTree)也是如此。你可能不需要记住命令,但你会忘记操作流程。
解决方法很简单。学习你需要的东西,用谷歌搜索你不需要的东西。试着记住你是否经常搜索相同的内容。😁
在使用 Git 两年多并教授他人使用 Git 之后,我有一些技巧想要分享。
(我使用命令行而不是图形用户界面。我感觉这样更顺手。)
别名
Git 允许你为命令设置别名,尤其是那些命令过长或经常使用的命令。~/.gitconfig你可以将别名设置到一个文件中。(如果你找不到该文件,可以尝试在 Git 主目录下创建一个。)
这些是我拥有的别名。
[alias]
pl = pull --rebase
cm = commit -m
最常用的,正如你所料git cm。
重新定基
这就引出了我的另一个别名pull —rebase。这在开发开源项目或拥有大量分支的项目时尤其有用。比如,你创建了一个分支,添加了一个新功能或修复了一个 bug,然后提交了一个 pull request。但当你提交 pull request 时,你会发现 `<path>` 分支master已经更新,并且有很多提交记录不在你的分支中。
在这种情况下,`--rebase` 参数允许你将工作重新应用到主分支之上,就像你刚刚创建了一个新分支一样。这样处理合并冲突也更容易。如果出现冲突,你可以修复它们,然后停止git merge —continuerebase 操作—abort。我使用 VS Code 来解决冲突,非常简单。
多个 SSH 密钥
如果你的工作和个人事务分别使用不同的账户,该怎么办?理想情况下,你不应该这样做。工作账户无论如何都应该设为私密。所以,只需维护一个 GitHub 账户即可。但假设你有两个账户呢?
我这样持续了一年。频繁切换账号既费时又麻烦。幸好有 SSH 密钥!✌🏻
您可以生成多个具有不同邮箱地址(例如,` id_rsaexample.com` 和 ` id_rsa_workexample.com`)的 SSH 密钥,并将它们注册到 GitHub 帐户。访问 GitHub 时,您可以为远程仓库提供自定义 URL。例如:
git clone git@github.com-me:aravindballa/preact-ssr.git
git clone git@github.com-work:sencha/extjs-reactor.git
(附注:是的,我曾在 Sencha 短暂工作过,参与了他们在 ExtJS 6.6 中发布的开源工具的开发。我现在已经不在那里工作了。)
请注意github.com-me,github.com-work这些是我们在 ssh 配置中提供的主机名。
~/.ssh/config
Host github.com-me
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work
你必须记住的一件事是作者。
对于工作仓库,您需要手动将user.email设置为工作邮箱。
git config user.email "aravind@awesome-company.com"
否则,你在工作中的提交将通过你的个人帐户进行。
小心!
文章来源:https://dev.to/aravindballa/advanced-git-tips-b98