Tip:个人理解,有错误请指出
Directory
What is Git?
intro
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。其实其类似于电脑上的cmd命令行,可以输入命令来完成功能。 在此就会提到中央式和分布式版本控制系统的区别。 先简要提提版本控制系统吧!
版本控制系统有三个核心要素:版本控制、主动提交、中央仓库
- 版本控制就是在文件中保留修改历史,类似于电脑的撤销Ctrl+z功能,就是你可以在版本控制系统中找到你以前的代码版本,系统会有保存。
- 主动提交即在版本控制系统中用commit命令把改动信息提交,这次改动就会被记录到版本历史中。
- 中央仓库用于存储代码,供他人上传和下载
再简要提一下中央式版本控制系统
中央式版本控制系统有一个中央仓库,其他成员可以将自己写的代码提交到这个中央仓库,也可以从这个中央仓库中获取代码,这样就可以几个人一起开发一个软件,但实际开发工作并没有这么简单,会涉及到代码冲突等等。
那分布式版本系统和中央式有什么区别呢?
分布式比中央式多了一个本地仓库,就是每个用户都有自己的本地仓库。可以将中央仓库的代码clone到本地仓库上,这样就无需联网,也可以提交代码、查看历史
The role of the Git
其实Git的作用在前文中有提到,这里再重述一遍
- 建立本地仓库
用git init来初始化一个Git仓库
- 克隆中央仓库
用git clone命令来将中央仓库的内容下载到自己的本地仓库中
- 提交本地仓库代码
使用git push来提交本地仓库的代码
- 同步中央仓库代码
用git pull来同步中央仓库代码到本地仓库
The necessity of Git
相比于中央式版本控制系统,Git拥有本地仓库,无需联网,极大减小了开发者网络条件和物理位置的限制。
What is GitHub?
The relationship between Git and GitHub
最重要的还是Git和GitHub之间的关系,前面说到,GitHub是一个中央仓库,而Git是一个分布式版本控制系统,那么他们怎么联系呢?
- 先在Git选定一个目录作为项目目录,具体操作为“cd +目录地址”
- 输入git clone +复制的中央仓库地址,即可以将GitHub的内容clone到本地
- 使用git status来查看工作目录当前状态
- 其中有Untracked files状态,即未跟踪文件,使用git add +文件名来跟踪文件
- 这个add后面的文件,就会进入暂存区staging area,这时就可以用git commit命令来提交,其中填写提交信息的详细步骤这里不再介绍
- 这样就完成了向本地仓库的1次提交,可以使用git log来查看提交历史
- 再来,就用git push把本地仓库的内容提交到GitHub上,这就有了Git和GitHub的关联
- 用git pull来把中央仓库的内容同步到本地仓库
注意: push是用本地仓库的内容覆盖中央仓库的内容,而假如中央仓库拥有本地仓库没有的内容的话,这时候就会push失败,所以,你这时要先用pull来同步中央仓库内容(这时的pull可以将中央仓库内容和本地仓库内容合并),再用push,就可以成功了。