一.关于版本控制
1.文件的版本
缺点:操作麻烦、命名不规范、容易丢失、协作困难。
2.版本控制软件
它是用来记录文件变化,以便将来查阅特定版本修订情况的系统,因此有时也叫做“版本控制系统”。
好处:操作简单,易于对比,易于回溯,不易丢失,协作方便。
分类:
本地版本控制系统
单机运行,使维护文件版本的操作工具化。
集中化的版本控制系统
联网运行,支持多人协作开发;但性能差,用户体验不好。
分布式版本控制系统——Git
联网运行,支持多人协作开发;性能优秀,用户体验好。
二.Git的基础概念
概念:一个开源式的分布式版本控制系统,是目前最先进,最流行的版本控制系统。
特点:项目越大越复杂,协同开发者越多,越能体现出Git的高性能和高可用性。
1.Git的特性
-
直接记录快照,而非差异比较。
-
近乎所有的操作都是本地执行。
2.Git的三个区域
工作区:处理工作的地方。
暂存区:已完成的工作的临时存放区域,等待被提交。
Git仓库:最终被放置的地方。
3.Git的三种状态
已修改:修改了文件,但还未将修改结果放到暂存区。
已暂存:对已修改文件的当前版本做了标记,使之包含在下一次提交列表里面。
已提交:文件已经安全的存放在Git仓库中。
三.Git的基本操作
获取git仓库的两种方式
-
将尚未进行版本控制的本地目录转换为Git仓库。
-
从其他服务器克隆一个已存在的Git仓库。
初始化仓库
打开Git Bash,执行git init命令。
工作区中文件的4种状态
未被Git管理:未跟踪。
已被Git管理:未修改,已修改,已暂存。
检查文件的状态
执行git status命令,也可以使用缩写git status -s/--short。
未被跟踪的文件前有红色的??;
在暂存区的文件前有绿色的A;
文件前有红色M的代表已修改还未放入暂存区;
修改且再次添加后文件前会出现绿色的M。
跟踪文件
执行git add 文件名 的命令。
一次性添加多个文件需执行git add . 的命令。
提交更新
执行git commit -m “提交消息”命令。
若想直接跳过暂存区直接进行提交则执行git commit -a -m “描述消息”。
撤销对文件的修改
执行git checkout --文件名。
注:所有修改都会丢失且无法恢复(危险性高,谨慎操作)。
取消暂存文件
执行git reset HEAD 要移除文件的名称。
移除文件
同时移除Git仓库和工作区中对应的文件:git rm -f 文件名 。
只从Git仓库中移除:git rm --cached 文件名。
查看提交历史
执行git log命令。
如何回退到指定版本
git reset --hard 。
git reflog (注:展示所有历史——旧版本)。
四.Git分支
了解master主分支和功能分支
master主分支:用来保存和记录整个项目已完成的功能代码。
功能分支:指的是专门开发新功能的分支。
查看分支列表
执行git branch命令。
注:分支前*表示当前所处的分支。
创建新分支
git branch 名称。
切换分支
git checkout 名称。
快速创建和切换
git checkout -b 名称。
合并分支
git merge 名称。
删除分支
git branch -d 名称。
注:强制删除将-d换成-D。
将本地分支推送到远程仓库
git push -u 仓库的别名 本地分支名称:远程分支名称。
注:-u是第一次执行时才需要的,之后就不需要了。
查看远程仓库中所有的分支列表
git remote show 远程仓库的名称。
拉取远程分支的最新的代码
执行git pull命令。
删除远程仓库分支
git push 远程仓库名称 --delete 远程分支名称。