Git原理之开篇

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一块儿天天进步一点点git

Git系列

Git是咱们平常开发的必备工具,是团队协做的利器。Git使用普遍,而之因此如此流行,主要和它的一些突出的优势分不开。服务器

真正的分布式

咱们在使用Git时,不管是从远程仓库clone代码,仍是把本地的代码推到远程的新仓库,都是完成的克隆一份代码。至关因而复制了一份代码到别的地方,也就是备份。微信

并且Git是去中心化的,这个去中心化简单理解就是每一份代码都是能够独立编辑使用的,不会由于某一个机器上的代码丢失了,而致使全部人都丢失代码或没法工做。分布式

在 Git 中的绝大多数操做都只须要访问本地文件和资源。工具

举个极端的例子,假设公司的开发团队的代码都托管在GitLab上,若是有一天,GitLab忽然挂了不能用了,会出现什么状况?实际上对咱们开发影响不大,由于咱们每一个人的电脑上都有一份代码,代码并无丢失,你们仍是能够继续开发。post

有影响的是团队协做,你们无法同步代码了,也就是把你们开发的代码合并在一块儿看效果。而这个也很容易处理,由于咱们能够本身搭一个Git服务器,这个也是比较简单就能实现的。学习

Git是台时光机

Git存储了跟踪文件的每次提交的快照,咱们每次提交一次(commit),Git就保存了一次。之后咱们能够随时回到某一次提交(Commit)。使用git log命令能够查看当前分支的全部提交记录。spa

这里也引出了一个Git使用习惯,就是即时提交(Commit)。只有即时提交了,后续若是发现代码有bug,才能回滚到最理想的位置。固然也不是随便写几行就提交一下,那也是蛮累的。主要是一些必要的节点,好比完成一个小模块小功能等。插件

Git的使用

Git使用起来也比较简单,既能够用命令行也能够用第三方的工具,好比Android Studio自带的Git插件,Mac下的Sourcetree等。可是尽管像Sourcetree已经作得很人性化很简化了,在实际使用过程当中咱们仍是不免碰到一些奇怪的问题,有时候是软件使用不熟悉,特别是使用一些相对高级一点的功能,好比回滚,合并冲突等。命令行

我以前也是很依赖Sourcetree,一来是由于若是用命令行,须要记住不少的命令;二来是由于Sourcetree这样的软件相对来讲比较直观,内心更踏实一些。

直到有一次,用Android Studio的Git插件推送的时候,推错分支了!而后为了回滚,在Sourcetree上忙了好一阵仍是没有抹掉“犯罪证据”!后来仍是同事帮忙弄的,非常尴尬!

此次教训让我慢慢开始切换到用Git命令行为主,Sourcetree为辅的路子上来。如今基本没有Git的问题困扰了。

用命令行的好处:
  1. 命令行其实熟悉了之后最简单,由于不用去熟悉新的软件工具,并且平时实际上也只须要其中几个经常使用命令,没有想象中的那么难
  2. 不再会出现一些特殊的莫名其妙的意外,好比上面我碰到的,新建完分支直接被推到远程的老分支,由于远程找不到新分支。而若是用命令行推的话,Git就会报错,并提示你解决方法了
  3. 学会命令行实际上是一件一劳永逸的事,不分平台和系统,通通都同样使用。
  4. 减小电脑负担,Mac上Android Studio多开几个工程就卡了,内存设置多大都没用,若是为了拉取推个代码还得再开个软件,那岂不是雪上加霜!万一卡住了,多点了几下误操做怎么办?(固然,我实际上还没遇到过)
  5. 高大上!哈哈...
几个建议:
  • 尽可能过分到命令行,遇到问题,查一下对应的命令是啥,并记录下来便于后期查询,慢慢记录积累,坚持个把月妥妥就熟悉了
  • 养成随时提交(commit)的习惯,开发中完成一些小功能点就提交一下,避免几天都不提交的坏习惯
  • 用熟悉Git命令之后,能够尝试学习一下Git的原理,好比Git是如何记录每一个文件的版本变化的?Git回滚是怎么回事?Git的本地仓库和远程仓库是怎么关联起来的?等等这些问题搞明白之后,后续使用过程当中碰到一些问题就比较容易找到缘由和解决办法。

正是基于以上的几点,我准备把本身最近学习到的一些Git知识总结记录下来,会分为几篇文章,但愿本身之后碰到Git问题能快速的找到缘由并解决,也但愿对你们有所帮助。


欢迎关注个人公众号查看更多精彩文章!
复制代码

AntDream
相关文章
相关标签/搜索