你对 Git 了解得越多,使用 Git 就会越容易。一起来回顾下年度最佳 Git 文章。
Git 是开源开发者工具箱中最基本的工具。这个强大的版本控制系统有很多复杂的功能。使用 Git 不需要了解它所有的功能,但是对 Git 了解得越多,使用 Git 就会越容易。
下面每篇文章都提供了一些奇技淫巧来提升和增强你的 Git 技能。
怎么解决 git 合并时的冲突 {#%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3-git-%E5%90%88%E5%B9%B6%E6%97%B6%E7%9A%84%E5%86%B2%E7%AA%81}
Brian Breniser 的这篇教程从 git merge
的定义以及解释什么是冲突开始。然后他详细解释了在合并时如果有冲突如何解决冲突。Breniser 还提了一些能学习更多关于解决冲突和其他 Git 功能的建议。
4 个不可或缺的 Git 脚本 {#4-%E4%B8%AA%E4%B8%8D%E5%8F%AF%E6%88%96%E7%BC%BA%E7%9A%84-git-%E8%84%9A%E6%9C%AC}
Vince Power 分享了他最重要的 Git 脚本。这些脚本可以从 Git Extras 包中获得,该包提供了 60 多个 Git 增强脚本。Power 最爱的脚本有:在无需打开文本编辑器的情况下编辑 .git-ignore
的 git-ignore
;用于提供 Git 仓库的摘要的 git-info
;用来处理 GitLab 的合并请求(MR)和 GitHub 的拉取请求(PR)的 git-pr
;把 Git 的提交(commit
)、标签(tag
)和推送(push
)合为一体的 git-release
。
完美生活:git rebase -i {#%E5%AE%8C%E7%BE%8E%E7%94%9F%E6%B4%BBgit-rebase-i}
在 Dave Neary 的这篇文章中可以学习使用 git rebase -i 来修改你的 Git 提交历史。Neary 从解释 Git 是如何把提交历史记录到仓库中的以及 git commit
和 git rebase
的区别。之后,他又解释了如何使用 git rebase -i
让 Git 仓库的提交历史变得简洁。这个命令能让你把"修复书写错误"的提交合进其它提交里,把几个相似的小提交合并成一个大的提交。
Git Cola 让使用 Git 变得简单 {#git-cola-%E8%AE%A9%E4%BD%BF%E7%94%A8-git-%E5%8F%98%E5%BE%97%E7%AE%80%E5%8D%95}
Seth Kenlon 演示了如何使用 Git Cola。Git 是个命令行工具,这对于有些人来说是有学习门槛的。Git Cola 提供了一个图形界面,因此不习惯用命令行的用户也可以使用 Git。在此文中,Kenlon 展示了如何安装 Git Cola,并使用 Git Cola 的图形用户界面完成了很多 Git 提交任务。
6 个在团队中使用 Git 的最佳实践 {#6-%E4%B8%AA%E5%9C%A8%E5%9B%A2%E9%98%9F%E4%B8%AD%E4%BD%BF%E7%94%A8-git-%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5}
从设计上讲,Git 是个协同工具,但是关于如何协同的很多细节是由团队自行决定的。Ravi Chandran 提了一些建议,团队应该采用这些建议更高效地使用 Git。Chandran 在文中列出的 6 个最佳实践是:"使约定正式化","正确地合并修改","经常变基你的功能分支","在合并之前把压扁你的提交","使用标签","让软件的可执行程序打印标签"。
改变我使用 Git 工作方式的七个技巧 {#%E6%94%B9%E5%8F%98%E6%88%91%E4%BD%BF%E7%94%A8-git-%E5%B7%A5%E4%BD%9C%E6%96%B9%E5%BC%8F%E7%9A%84%E4%B8%83%E4%B8%AA%E6%8A%80%E5%B7%A7}
Rajeev Bera 分享了 7 个 Git 技巧,这些技巧能提升 Git 的用户体验。文章探讨了 Git 的自动更正、提交计数、仓库优化、备份未追踪的文件、了解 .git
目录、在另一个分支查看文件以及在 Git 下搜索。
使用 tmux 和 Git 定制化我的 Linux 终端 {#%E4%BD%BF%E7%94%A8-tmux-%E5%92%8C-git-%E5%AE%9A%E5%88%B6%E5%8C%96%E6%88%91%E7%9A%84-linux-%E7%BB%88%E7%AB%AF}
Moshe Zadka 展示了他是如何使用 tmux 和 Git定制化他的 Linux 终端的。Zadka 的文章是个人工作流的优秀探索。他使用 GNOME 终端,用 tmux 和一些能让他快速查看 Git 仓库状态的功能来增强终端。他只需要用一个字母就可以提交文件或把提交推送到远程仓库。
使用 Lazygit 让复杂的 Git 任务简单化 {#%E4%BD%BF%E7%94%A8-lazygit-%E8%AE%A9%E5%A4%8D%E6%9D%82%E7%9A%84-git-%E4%BB%BB%E5%8A%A1%E7%AE%80%E5%8D%95%E5%8C%96}
Jesse Duffield 解释了如何使用Lazygit,一个能让使用 Git 变得简单的终端界面。Lazygit 的开发者 Duffield 详细阐述了如何使用这个界面来暂存文件、以交互方式变基、进行筛选、搜索提交以及创建一个 PR。
使用子模块和子树来管理 Git 项目 {#%E4%BD%BF%E7%94%A8%E5%AD%90%E6%A8%A1%E5%9D%97%E5%92%8C%E5%AD%90%E6%A0%91%E6%9D%A5%E7%AE%A1%E7%90%86-git-%E9%A1%B9%E7%9B%AE}
子模块和子树是两种在 Git 仓库中引入嵌套的子项目的方式。在使用子模块和子树来管理 Git 项目中,Manaswini Das 解释了两个选项的工作原理和区别。
不喜欢 diff?那么试试 Meld {#%E4%B8%8D%E5%96%9C%E6%AC%A2-diff%E9%82%A3%E4%B9%88%E8%AF%95%E8%AF%95-meld}
Ben Nuttall 展示了如何使用 Meld 代替 diff来进行对比和合并修改。Meld 是图形化的 diff
,输出更容易理解。Nuttall 演示了使用 diff
和 Meld 进行对比的区别。他还解释了 Meld 是如何识别 Git 项目的,这意味着在 Git 中一个文件被提交之后,可以用 Meld 来搜索修改。
你想学习关于 Git 的什么内容?请在评论去分享你的想法。
via: https://opensource.com/article/20/12/git
作者:Joshua Allen Holm 选题:lujun9972 译者:lxbwolf 校对:wxy