Loading

Git的学习理解

什么版本控制系统(VCS)

//自我理解:一个让你可以让你有效管理平行宇宙中的仓库的一个工具
版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

有哪些版本控制工具,都有啥区别

//自我理解:直观上就是是不是要联网才能工作,原理上就是版本库的集中与分布
1.集中式版本控制系统
代表:SVN CVS ClearCase
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
2.分布式版本控制系统
代表:Git BitKeeper
分布式版本控制系统根本没有 “中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件 A,你的同事也在他的电脑上改了文件 A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。而为了减少点对点的传递修改的麻烦,,分布式版本控制系统通常也有一台充当 “中央服务器” 的电脑,但这个服务器的作用仅仅是用来方便 “交换” 大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

为什么是Git

Git的实际操作学习

必先利其器

Git

Git手册

有关远程仓库

  1. GitHub
  2. 自己的Git服务器

开始实操

创建版本库

1.repository
版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
2.创建

  • 为仓库建立文件夹,之后该文件夹的名称就是Repo的名称
  • cd 到该目录下
  • git init,如果发现目录下多了一个.git的目录,那仓库就建好了
  • 注:并非一定要空文件夹,不管空不空之后Git都会把该文件夹示为一个Repo来管理
  • 注:所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

理解修改

所有我们在工作区完成的每一步工作,使工作区的版本与版本库中的版本形成了差异,这就是一个修改。如果我们需要保存这些修改,更新版本,那就需要提交这些修改,也就是我们完成的工作。而Git最有趣的地方也就是这里,它并不关心现有的文件,只关心文件发生的变化,也就是Git管理的是修改,而不是文件。要理解这个得先实际操作一下。

理解git add 和 git commit

1.工作区与暂存区
e7acb5853251241dc66a10376ba2affa.png
这里还没提到分支,关键是理解工作区的修改是如何完成最终版本库中的修改

  • 工作区
    我们实际直接操作的目录下
  • 版本库
    工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
    2.add 和 commit
    第一步是用git add把做出的修改添加进去,实际上就是把修改添加到暂存区;
    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
    注:需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。也就是可以多次add,一次commit

管理修改

1.撤销修改

  • 撤销工作区中的修改
  • 撤销暂存区中的修改
  • 撤销版本库中的修改-->版本回退
    2.删除文件

分支管理

标签管理

Git的原理

posted @ 2022-05-01 22:38  hiaGeng  阅读(48)  评论(0)    收藏  举报