本文共 3092 字,大约阅读时间需要 10 分钟。
目录
第一章 Git概述
Git是一个免费的、开源的分布式版本控制系统。可以快速地处理从小型到大型的各种项目。Git易于学习,占用内存小,性能极快,并且具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。
git官网:
1.1 版本控制
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
为什么需要版本控制?
为了从个人开发过渡到团队协作。
1.2 版本控制工具
1.2.1 集中式版本控制工具
CVS、SVN(Subversion)、VSS等。
集中化的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新。
好处就是每个人都可以一定程度上看到项目中的其他人正在做什么,管理员可以轻松掌控每个开发者的权限,并且管理简单。坏处就是中央服务器的单点故障,如果这个服务器宕机了,那在宕机的这段时间内,无法进行协同工作。
1.2.2 分布式版本控制工具
Git、Mercurial、Bazaar等。
分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他的客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是对整个文件仓库的完整备份。
解决了集中式的以下缺陷:
1.服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
2.每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
1.3 Git工作机制
工作区指的是本地硬盘上存放源代码的目录位置。此时可以删除代码。
将工作区写好的代码添加到暂存区,是为了让git能够找到。此时依然可以删除代码。
将暂存区的代码提交到本地库之后,就会生成对应的历史版本,此时代码就无法删除了。因此在提交本地库之前要慎重检查自己写的代码。
1.4 代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
局域网:
GitLab
互联网:
GitHub(外网)
Gitee码云(国内网站)
第二章 Git安装
在官网根据系统下载对应的版本。
注意安装路径非中文,并且最好没有中文。
Git选项配置,推荐默认选项:
Git安装目录的名字:
Git的默认编辑器,建议使用默认的Vim编辑器:
默认分支名设置,选择让Git决定,分支名默认为master:
修改Git的环境变量,选第一个,不修改环境变量,只在Git Bash里使用Git:
选择后台客户端连接协议,选默认值OpenSSL:
配置Git文件的行末换行符,Windows使用CRLF,Linux使用LF,选择第一个自动转换:
选择Git的终端类型,选择默认的Git Bash终端,然后继续下一步:
选择Git pull合并的模式,选择默认:
选择Git的凭据管理器,选择默认的跨平台的凭据管理器:
其他配置选择默认配置:
实验室功能,技术还不成熟,建议不勾选:
安装完成后,任意位置右键,在菜单里选择Git Bash Here即可打开Git Bash命令行终端。
在Git Bash终端里输入git --version查看git版本:
第三章 Git常用命令
3.1 设置用户签名
基本语法:
git config --global user.name 用户名
git config --global user.email 邮箱
签名的作用时区分不同操作者身份,用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
Git首次安装必须设置一下用户签名,否则无法提交代码。同时也要注意这里设置的用户前面和后面登录GitHub的账号没有任何关系。
3.2 初始化本地库
先手动创建一个工作区git-demo。
基本语法:
git init
3.3 查看本地库状态
基本语法:
git status
第一次查看:
增加一个文件:vim hello.txt
再次查看:
红色表示这个文件只存在于工作区,但是git还没有追踪过这个文件。
使用git add命令来实现追踪。
3.4 添加暂存区
基本语法:
git add 文件名
此时再查看状态:
绿色表示git已经追踪到了这个文件,但是文件目前还是存在于暂存区中。此时可以删除这个
文件,但是注意删除的只是暂存区的这个文件,在工作区这个文件还是存在的。
3.5 提交本地库
基本语法:
git commit -m "日志信息" 文件名
查看本地库状态:
3.6 修改文件
进入hello.txt文件并进行修改,再查看状态:
红色表明当前的修改还没有被添加到暂存区。
git add后,查看状态:
git commit提交本地库:
3.7 历史版本
3.7.1 查看历史版本
基本语法:
git reflog:查看版本信息
git log:查看版本详细信息
3.7.2 版本穿梭
基本语法:
git reset --hard 版本号
Git切换版本,底层其实是移动的HEAD指针:
第四章 Git分支操作
4.1 分支概述
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的允许。分支底层其实也是指针的引用。
使用分支的好处:
1.同时并行推进多个功能开发,提高开发效率;
2.各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分
支删除重新开始即可。
4.2 分支的操作
创建分支的底层也是指针。比如下面的master、hot-fix其实都是指向具体版本记录的指针,当前所在的分支,其实是由HEAD决定的,所以创建分支的本质就是多创建一个指针。
HEAD如果指向master,那么我们现在就在master分支上。
HEAD如果指向hot-fix,那么我们现在就在hot-fix分支上。
所以切换分支的本质就是移动HEAD指针。
4.2.1 查看分支
基本语法:
git branch -v
4.2.2 创建分支
基本语法:
git branch 分支名
4.2.3 修改分支
在hot-fix分支上修改hello.txt文件。
4.2.4 切换分支
基本语法:
git checkout 分支名
4.2.5 合并分支
基本语法:
git merge 分支名
把指定分支合并到当前分支上。
4.2.6 冲突合并
合并时产生冲突的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法替我们决定使用哪一个,必须人为决定新代码内容。
演示冲突:
在master和hot-fix两个分支内都修改hello.txt文件,然后在master分支上合并hot-fix分支。
解决冲突:手动合并代码。
打开文件发现:
编辑有冲突的文件,删除特殊符号,决定要使用的内容。
特殊符号:
<<<<<<< HEAD
=======
>>>>>>> hot-fix
文件修改为:
再添加至缓存区,提交至本地库。(注意:此时commit不要加文件名)
因为此时是合并到master分支中,只有master分支中的文件会修改,hot-fix分支中的文
件没有被合并修改。
PS:根据尚硅谷视频课程整理,如有侵权,联系删除。
转载地址:https://blog.csdn.net/xxyneymar/article/details/122298851 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!