Git特点
免费的、开源的分布式版本控制系统,占地面积小,具有廉价的本地库
什么叫做版本控制
记录文件修改历史记录,让用户能够查看历史版本,方便版本切换
为什么需要版本控制
个人开发过渡到团队协作
版本控制工具
集中式版本控制 SVN
缺点:中央服务器的单点故障,若服务器宕机1小时,则任何人在这一小时都无法提交更新
分布式版本控制 Git
每一个客户端都有属于自己的本地仓库,这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复,因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份
分布式的版本控制系统出现之后,解决了集中版本控制系统的缺陷
1、服务器断网的情况下页可以进行开发(因为版本控制是在本地进行的)
2、每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
Git工作机制
代码托管中心
基于网络服务器的远程代码仓库,简称远程库
局域网
GitLab
互联网
GitHub(外网)
Gitee码云(国内网站)
Git常用命令
Git首次安装必须设置一下用户签名,否则无法提交代码
签名的作用是区分不同操作者身份
git log 查看详细日志(看版本更替,版本号)
git reflog 查看简略日志(。。。)
版本穿梭
什么是分支
在版本控制过程中,同时推进多个任务,为每个任务创建单独的分支
master\hot-fix其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。所以创建分支的本质就是多创建一个指针。
分支的好处
同时并行推进多个功能开发,提高开发效率
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可
分支的操作
合并产生冲突的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
解决冲突
1)编辑有冲突的文件,删除特殊符号,决定要使用的内容。
特殊符号:<<<<<<HEAD 当前分支的代码 ======== 合并过来的代码 >>>>>>> hot-fix
2)加入暂存区,提交本地库
git add study.txt
git commit -m "merge-version"
3) 合并分支
git merge hot-fix
Git团队内协作机制
团队内协作
跨团队协作
GitHub操作
GitHub网址:https://github.com/
创建远程仓库
远程仓库操作
命令名称 | 作用 |
git remote -v | 查看所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
创建远程地址别名
git remote -v
git remote add 别名 远程地址
推送本地分支到远程仓库
git push 别名 分支名
拉取远程库分支到本地库
git pull 远程库别名 分支名
clone 会做如下操作。1、拉取代码
2、初始化本地仓库
3、创建别名(origin)
团队内协作
邀请一个成员
next
跨团队协作
SSH免密登录
1、在家目录右键,进入git bash,输入以下命令
ssh-keygen -t rsa -C 电子邮件
2、生成了一个.ssh文件,复制公有密钥
3、添加密钥
国内代码托管中心-码云
码云是开源中国推出的基于Git的代码托管中心,网址是https://gitee.com/,使用方式跟GitHub一样
码云复制GitHub项目
方便我们做项目的迁移和下载
目标操作如下:
自建代码托管平台-GitLab
官网地址:https://about.gitlab.com/
安装说明:https://about.gitlab.com/installation/
服务器准备
准备一个系统为CentOS7以上版本的服务器,要求内存4G,磁盘50G
关闭防火墙,并且配置好主机名和IP,保证服务器可以上网
安装包
yum install -y gitlab-ce(需要下载几百M的安装文件,非常耗时)
最好提前把RPM包下载到本地,然后使用离线rpm的方式安装
环境部署
初始化服务与启动服务
登录
参考链接
尚硅谷Git入门到精通全套教程(涵盖GitHub\Gitee码云\GitLab)