面向开发者的高效 Git 使用指南
关于版本控制系统,我最初短暂地使用过 CVS,之后改用 SVN,直到我开始第一份正式工作,公司使用的是 TFS(Team Foundation Server)。TFS 与 SVN 类似,可以“阻止”对文件的访问,从而避免合并冲突。它的同步性很强,如果你是一个人或者团队只有两个人,这种方式还算可行,但它的可扩展性很差(更不用说如果有人休假忘记签到会发生什么了)。
最终,那种“检出 => 锁定 => 检入”的工作流程不再奏效。此外,分支/合并也十分麻烦。就在那时,Git 开始流行起来,我也开始深入研究它(是的,这篇博文真的非常老了😃)。于是,我接到了深入学习 Git 的任务,并最终将我们团队(没错,是多个团队)迁移到 Git 平台。
如你所知,Git 功能强大,但能力越大,责任越大。这一点在 TFS 上体现得尤为明显,因为 TFS 的文件实际上是被锁定的。你需要的是工作流程,比如如何使用 Git,何时创建分支,如何合并分支等等。否则,最终只会一团糟。当时已经有一些不同的工作流程可供选择,例如 Git Flow,后来又出现了 GitHub Flow 和 GitLab Flow。我一直更倾向于基于主干的开发模式。在这种模式下,只有一个主分支(无论是 trunk、master 还是其他什么名称),团队成员可以快速频繁地进行集成。维护长期存在的分支几乎总是会导致大量的工作和混乱的合并。
总之,总结一下。这些年来,我跟很多不同的团队合作过,几乎每次都会看到大家在 Git 合并上遇到各种问题,或者使用一些奇怪的工作流程(比如手动复制文件夹进行备份)。很多人甚至不知道一些极其简单的命令,而这些命令却能极大地提升日常工作流程。所以,经过多年的摸索,我终于决定坐下来录制一系列视频,展示一些我每天都在使用的实际 Git 命令。没什么花哨的东西,只是一些简单的命令,就能帮你轻松完成工作。
Egghead:面向开发者的高效 Git 使用指南
本课程的目标有所不同。你将逐步了解在日常开发工作中最常见的各种场景。我指的是:
- 使用 master 分支的最新更改更新您的特性分支
- 完善你的 Git 历史记录,使其准备好接受同行评审
- 将一组提交移动到另一个分支
- 撤销意外提交
目标不是涵盖所有内容,而是那些能够大大提高你使用 Git 的日常工作效率的任务。
以下是本课程目前的课程内容(之后会不断更新):
- 只将我当前修改的部分文件提交到仓库中。
- 让我的 Git 日志看起来美观易读。
- 将一些我不小心提交到主分支的提交移到一个单独的分支。
- 使用 master 分支的最新更改更新我的特性分支
- 使用以下命令推送变基本地分支
--force-with-lease - 在合并或提交审核之前,请完善我的 Git 特性分支。
- 使用 Git Autosquash 自动清理我的特性分支
- 将所有提交合并成一个,并合并到主分支。
- 更改我上次提交的提交信息
- 添加我上次提交中忘记添加的文件
- 撤销我上次的提交,并将其拆分成两个单独的提交。
- 清除本地分支上的一个提交
- 撤销已推送到远程仓库的提交
- 暂时保存一些正在进行中的工作,因为我需要跳转到另一个分支。
请告诉我你的想法😃
文章来源:https://dev.to/juristr/productive-git-for-developers-3237
