美文网首页
要怎样才能弄清楚Git?

要怎样才能弄清楚Git?

作者: Seer已被使用 | 来源:发表于2017-07-29 01:42 被阅读10次

首先

作为一名游走在软件开发初级阶段的小菜,一直以来弄不清git、github,即使以前也尝试用过基本功能,但由于时(tuo)间(yan)紧(zheng),今天才下定决心乘着周末,好好把Git的概念和基本用法弄懂,无奈记忆力差,只得借助这篇笔记帮助自己记忆了。

人类的大脑在信息检索上,效率是极高的。然而前提是我们得先记住它们 —— ^_^

誊抄别人的文章我一向是拒绝的,正因为觉得文章需要原创,所以我的简书上就还没啥文章。也正赤裸裸的说明,本菜还是太菜。能和大家分享的东西太少。但我愿同各位能看完这篇笔记的小菜们一同努力。

It's never too late to mend.

在此

感谢《ProGit》一书
感谢伯乐在线提供的中文翻译,想要快速了解概要的朋友继续往下,想要彻底弄清的朋友请查看原文

概要

集中化的版本控制系统

VCS(Version Control System)猜的,版本控制系统最早是本地版本控制——RCS。后来为了协同工作,CVCS(Centralized Version Control Systems)应运而生,代表有CVS,Subversion(SVN) 以及 Perforce 等。

核心是文件的版本控制集中在一台中央服务器进行处理,多对一的关系进行协同工作。统一的权限管理。如图:

CVCS.png

缺点是中央服务器的单点故障。如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就还是会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,而被客户端 提取出来的某些快照数据除外,但这样的话依然是个问题,你不能保证所有的数据都已经有人事先完整提取出来过。本地版本控制系统也存在类似问题,只要整个项 目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。

分布式的版本控制系统(包含Git)

DVCS( Distributed Version Control System ), 有Git、Mercurial、Bazaar 以及 Darcs 等。

注意:Git是 "版本控制",Github是"代码托管",两者概念不同

在这类系统中,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。如图:


GVCS.png

优点是,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。整个系统是一个多对多的关系,灵活性高,成员和成员之间通过各自的代码仓库进行远程交互。

关于"分布式"和"集中式"VCS的工作原理是有差异的,详情见:Git详解之一:Git起步


主角 —— Git

安装

根据机型自行百度,mac XCode自带git,不建议重新下载,一般都是自己给自己挖坑,熟悉包管理shell相关技术的同学自便。

使用

1、首先cd到需要版本控制的目录

$ git init
  此时文件夹下会创建.git文件,所有 Git 需要的数据和资源都存放在这个目录中。

2、在git初始化的工作空间(文件夹)中,一开始所有文件都没有被管理跟踪未跟踪
在Git中,所受管理的文件只有三种状态:

  • 已提交(committed)(提交并保存到仓库)
  • 已修改(modified)(修改后还没有保存到暂存区域)
  • 已暂存(staged)(保存到暂存区域)

      $ git add README
      注意:这里说的"被管理"即:通过add添加文件让git知道要跟踪这个文件的变化
      tip:通过配置".gitignore"文件可以指定忽略哪些文件或指定几个文件
    

3、查看状态

$ git status

一定要理清楚 add 和 status 的作用 ,参见Git详解之二:Git基础

4、.gitignore文件(自己创建配置,和.git放在同一层文件夹)

 # 此为注释 – 将被 Git 忽略
*.a       # 忽略所有 .a 结尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

Git的用法远远不止这些,我在此也无法说完。只能做一个大概的基础认知总结,更多好玩有趣的功能还请各位移步Git详解之二:Git基础,一定要去好好看看,别像我一样_


总结

至此,说说我自己的感受,之前一直囫囵吞枣的以为Git嘛,用到了再去查,先了解大概能用就行,就像学程序一样,用到什么组件再去查用法。但是我现在知道错了。正是因为这样的想法,导致对Git产生了恐惧觉得复杂高深,直到今天静下心来认真学习才发现,摸清楚了原理以后。也没那么难!也觉得自己应该反思一下以前对待Git的态度 了。
再次感谢《ProGit》一书,
伯乐在线提供的中文翻译。如果想吃透Git,一定得去好好看看。

相关文章

  • 要怎样才能弄清楚Git?

    首先 作为一名游走在软件开发初级阶段的小菜,一直以来弄不清git、github,即使以前也尝试用过基本功能,但由于...

  • 沟通三要素

    高效的沟通在于对方要达到口服心服的目的。 怎样才能实现高效的沟通?首先我们要弄清楚沟通的三大要素。 一、有明确的沟...

  • Git基于Git Flow流程协同开发

    git flow 在多版本协同开发中的作用不言而喻,这里有关于git flow工作流程的梳理其实弄清楚git fl...

  • Git-恢复已删除的分支

    当我们使用git branch -D 删除一个本地分支后,怎样才能恢复呢? 操作 : git log -g ...

  • Git 简介

    在学习Git之前,我们需要先弄清楚一个问题:“Git是什么?”,对于没使用过Git的同学来说,可能会一头雾水。 那...

  • 最简单的修养之道

    有人问:我要怎样才能变美? 有人问:我要怎样才能明辨是非? 有人问:我要怎样才能不走弯路? 有人问:我要怎样才能健...

  • 详细了解git fetch与git pull的区别

    git fetch和git pull都可以将远端仓库更新至本地那么他们之间有何区别?想要弄清楚这个问题有有几个概念...

  • Git之引言

    1、 为什么使用Git 孔子曾经曰过的,名正则言顺,言顺则事成。 我们在学习一项新技术之前,弄清楚为什么要学它至关...

  • 什么是RESTful API?

    要弄清楚什么是RESTful API,首先要弄清楚什么是REST。REST -- REpresentational...

  • 无题

    突如其来的悲伤,防不胜防的困难,不可改变的现实!要怎样才能解决一切,要怎样才能恢复平静,要怎样才能…… 心痛的无法...

网友评论

      本文标题:要怎样才能弄清楚Git?

      本文链接:https://www.haomeiwen.com/subject/whqqlxtx.html