Git 的使用姿势&实践
对于计算机界来说,有一个大名鼎鼎的人物肯定是众所周知的,他就是linus。之所以出名,必定少不了我们日常和生活中在台前幕后支撑着我们的系统 Linux. 然而,还有一个大家及其熟悉,甚至离不开他的工具,那肯定就是我们的 Git 啦!版本控制可以清楚的记录你每一次提交的操作,甚至有时候还能救你于被炒掉的边缘一命哈哈哈。当然,在我们熟知的同性交友平台 GitHub,自然是以此为基底,支撑起了开源世界的多人协同。
为什么要学习Git
- 协同工作: 绝大多数公司都是基于Git的代码管理和版本控制。
- 开源社区:最流行的版本控制工具当然是 Git,从 GitHub 和 GitLab 你大概也能够知晓一二。
What is Git?
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
版本控制又是什么?为什么需要他?
一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。(记录每次的版本变化,方便回溯)
关注变更,了解每个commit和版本直接的改动(diff)是什么,方便对改动的代码进行检查,有效的能防止事故意外。也能随时切换不同的版本或分支,回滚误删的问题代码。
版本控制类型 | 代表性工具 | 解决的问题 |
---|---|---|
本地版本控制 | RCS | 本地代码的版本控制 |
集中式版本控制 | SVN | 提供一个远端服务器来维护代码的版本,本地不保存代码版本,解决多人协作问题 |
分布式版本控制 | Git | 每个仓库都能记录版本历史,解决只有一个服务器保存版本的问题 |
Git 相比 SVN 和本地版本控制的优点在于分布式版本控制。
GitHub 多人协作
当然Git对于现在的我们来说,例如要做大项目。我们就要使用到知名的代码托管平台 GitHub了。
我们先了解下 Git 的常见命令
我们通过这张图,可以了解一个 Git 的工作区和暂存区:
因为我们要多人协作,所以我们创建了一个组织 toomanysource,用来存放我们的项目atreus。为了防止member 误操作,将代码弄的非常混乱,而且也可能导致别人的代码会冲突,所以我们使用了 fork repo,要提交新功能采用 Pull Request 来修改 Main branch。为了代码能有经审核确认再合并,所以需要有两个reviewer Approve了,这个PR 才可以被 merge。
基本按照这套我以前学习到的方案,可以规避掉许多的冲突和文件差异,减少在这方面浪费时间,许多开源项目的贡献也是采用这个流程,算是在多人协作里的最佳实践了吧!也欢迎大家 Star 我们的项目2333