git
git
何为git?
git是一个分布式版本控制系统 (这话听起来很高大上,不懂没事)
什么是版本控制系统呢?
它是一种用于管理软件代码或其他文件变更的工具
简单来说,就是用于管理代码的仓库,它可以记录文件的修改历史,回溯到之前的版本,这样我们就不需要将代码复制一份保存好,在下一次修改后发现一堆错误然后想用上一次的旧版本,去找自己原来保存的(如果项目很大,这将会非常麻烦)。
版本控制系统有两中:
1.集中式CVCS Centeralized Version Control System
所有的版本数据保存在一个中央服务器上,使用简单,但是有一个最大的弊端:单点故障问题,如果中央服务器或网络出现问题,那么所有人就无法工作了
2.分布式DVCS Distributed Version Control System
每个开发者都有完整的代码库副本,而且拥有完整的代码库历史,操作相比复杂,但即使没有网络连接,开发者也可以继续工作
git的原理(可以不看,会用就行)
git 的数据存储
git的核心是数据存储模型,叫做快照流
什么是快照?
快照是包含当前版本所有文件和目录 的一个完整副本
每次提交时,git会创建当前版本的快照并存储一个指向该快照的指针,如果有的文件没有发生变化,git不会存储文件的新副本,而是链接到之前的快照
与传统的基于差异(diff)的版本控制系统不同,git每次保存的是快照,而其他版本控制系统仅仅是存储文件的差异(diff)
对象
git通过对象来存储数据,有四种对象类型:
**1.blob(文件内容)**:存储文件内容的二进制数据
**2.tree(目录结构和文件名)**:存储目录结构(文件和子目录)的信息
**3.commit(提交信息和父提交)**:存储提交信息,作者,时间戳,指向父提交的指针
**4.tag(标签)**:存储标签信息,通常用于标记重要的提交
git 的工作流程
分成四个区域:工作区,暂存区,本地仓库,远程仓库
工作区:
该项目的所有文件(存放于本地文件系统里面的)
暂存区:
作为一个缓冲的区域,存储了准备在下次提交的文件变更,通过git add
将文件从工作区添加到暂存区
本地仓库:
存储所有版本历史记录的地方,通过git commit
提交
远程仓库:
通常在服务器上面(github,gitLab)可以通过git pull
远程仓库里面的文件变更内容拉取到本地仓库,用git push
将本地仓库的变更内容推送到远程仓库
文件的状态
Untracked(未追踪)
新添加的文件,还没有被git管理
Unmodified(未修改)
文件被git管理,且自从上次提交以来没有修改
Modified(已修改)
文件已经被修改,但尚未添加到暂存区
Staged(已暂存)
文件已经被修改并且添加到暂存区,准备在下一次提交中提交
git该怎么使用
使用方式:
1.命令行
2.图形化界面(GUI)(在解决合并冲突时很好用)
3.IDE插件或扩展
省略git的安装
git的配置
1 | git config --global user.name "你的名字" |
1.创建一个仓库
创建新仓库
1 | git init |
克隆现有仓库
1 | git clone <respsitory_url> |
添加和提交
1 | git add <file> # 添加单个文件 |
查看版本历史
1 | git log |
分支管理
暂且不说
创建仓库,上传代码
初始化本地仓库
1
git init
将所有文件添加到本地仓库
1
git add .
将本地仓库与远程仓库关联
1
git remote add origin 仓库网址
将项目提交到本地仓库
1
git commit -m "first commit"
将项目推送到远程仓库
1
git push -u origin master