Git
Git
版本控制
版本控制(Version Control)
是一种在开发过程中我们对文件、目录或工程等内容的修改历史,方便查看和更改历史记录,备份以便回复以前版本的软将工程技术
常见的版本控制工具
- Git
- SVN( Subversion )
- CVS(Concurrent Versions System)
- VSS(Microsoft VISUAL sourceSafe)
- TFS(Team Foundation Server)
- Visual Studio Online
版本控制分类
1. 本地版本控制
记录文件每次的更新,可以对每个版本做一个快照,或者记录补丁文件。适用于个人。
2. 集中版本控制
所有的版本数据都保存在服务器中,协同开发者从服务器上同步更新或上传自己的修改。
所有的版本数据凑存在服务器上,用户的本地只有自己以前所同步的版本。
- 缺:不联网用户就看不到历史版本,也无法切换版本验证问题;有很大风险服务器出问题
例:SVN、CVS、VSS
3. 分布式版本控制 Git
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有的版本历史,可以离线在本地提交,只需要在联网的时候push到相应的服务器或其他用户即可。
优:由于每个用户保存的都是所有的历史版本,只要有一个用户的设备没有问题就可以恢复所有数据。
缺:增加本地存储空间的占用
Git与SVN最主要区别
SVN是集中式版本控制系统。版本库是集中放在中央服务器,而工作用的是自己的电脑。
- 首先从中央服务器得到最新的版本
- 进行工作
- 工作完成后推送到中央服务器
- 必须联网!!!
Git是分布式版本控制系统。没有中央服务器,每个人电脑就是一个完整的版本库。
- 不需要联网
- 协同:A、B只需将各自修改推送给对方即可看到对方的修改
- Git可以直接看到更新了哪些代码和文件
Git环境配置
常用的Linux命令
- cd :改变目录
- cd.. :回退到上级目录
- pwd : 显示当前所在目录路径
- ls(ll) :列出当前目录中的所有文件;ll更详细
- touch :新建一个文件
- rm : 删除一个文件
- mdkir : 新建一个文件夹(目录)
- rm -r :删除一个文件夹,
- mv 移动文件 mv A dir A
- reset :重新初始化终端/清屏
- clear :清屏
- history :查看命令历史
- help :帮助
- exit :推出
:注释
Git配置
查看配置 git config -l
查看系统配置git config --system --list
查看全局配置git config --global --list
Git相关配置文件:
1)、Git\etc\ .gitconfig
2)、C:\Users\Administrator\ .gitconfig
设置用户名与邮箱(用户标识)
git config --global user.name "Rickduck" #名称 git config --global user.email "xxx" #邮箱
Git基本理论
Git的本地三个区域
工作目录(Working Directory)
- 工作区,平时存放项目代码的地方放
暂存区(Stage/Index)
- 暂存区,用于临时存放改动信息。本质上是一个文件,保存即将提交到的文件列表信息
资源库(Repository/Git Directory)
- 仓库区,安全存放数据的位置。里面有提交到所有版本的数据
- HEAD 只想最新放入仓库的版本
远程Git仓库
- Remote Directory
- 远程仓库,托管代码的服务器
转换关系:
Git工作流程
工作流程
- 在工作目录添加修改文件
- 将需要进行版本管理的文件放入暂存区域 (git add .)
- 将暂存区域的文件提交到git仓库 (git committ)
Git项目搭建
方法一 : 创建本地仓库
创建一个新的仓库,需要用Git管理项目的根目录,执行:
# 在当前目录新建一个Git代码库 git init
方法二 :克隆远程仓库
# 克隆一个项目和它的整个代码历史(版本信息) git clone [url]
Git文件操作
文件的4种状态
Untracked
- 未跟踪,存在文件夹中但没有加入到git库中,不参与版本控制
- 通过
git add
状态变为staged
Unmodify
- 文件已入库,未修改。即版本库中的文件快照内容与文件夹中完全一致
- 如果被修改,变为
Modified
- 如果使用
git rm
移除版本库,则成为Untracked
文件
Modified
- 文件已修改
- 可通过
git add
进入staged
状态 - 使用
git checkout
(即从库中取出文件)则丢弃修改过,返回到unmodify
状态
Staged
- 暂存状态
- 执行
git commit
则将修改同步到库中,文件变为Unmodify
- 执行
git reset HEAD filename
取消暂存,文件状态为Modified
查看文件状态
# 查看指定文件状态 git status [filename] #查看所有文件状态 git status # git add . 添加所有文件到暂存区 # git commit -m "message" 提交暂存区中的内容到本地仓库 -m 提交信息
忽略文件
某些如数据库文件、临时文件等不需要纳入版本控制中,可设置忽略文件,在提交的时候不会一起提交。
.gitignore文件
使用码云
- 注册登录码云,完善个人信息
- 设置本机绑定SSH公钥,实现免密码登录
# 进入目录 # 生成公钥 ssh-keygen
- 将公钥信息public key 添加到码云账号中
IDEA集成Git
- 新建项目,绑定git
- 将远程gitww唔见目录拷贝到项目即可
- 修改文件,使用IDEA操作git
- 提交测试
记录生活