- git 是一种版本控制系统,是一个命令,是一种工具。
- github 是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱。
- gitlab 类似 github,一般用于在企业内搭建git私服,要自己搭环境。
- gitee 即码云,是 oschina 免费给企业用的,不用自己搭建环境。
- git-ce 是社区版,gitlab-ee是企业版,收费版。
- 参考链接1:https://blog.csdn.net/m0_46080566/article/details/111194608
- 参考链接2:https://www.zhihu.com/question/478022295
- ----------------------------------------------------------------------------------------------------
- Git中版本库的理解
- 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
- 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录
- 通过git init命令把这个目录变成Git可以管理的仓库
-
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录
-
这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了
-
如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见
- 所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。
- 版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。
- 而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
- Git中分支的理解
-
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。
-
如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
-
分支策略
-
在实际开发中,我们应该按照几个基本原则进行分支管理:
-
首先, master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
-
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
-
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
-
所以,团队合作的分支看起来就像这样:
- 一个本地库能不能既关联GitHub,又关联Gitee呢?
-
答案是肯定的,因为git本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。
- 使用多个远程库时,我们要注意,git给远程库起的默认名称是origin,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。