一、 git概述
● 什么是版本控制
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。
● 什么是 Git
Git 是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。
Git 易于学习, 占地面积小,具有闪电般的快速性能。它具有诸如 Subversion,CVS 之类的版本控制工具,具有廉价的本地分支,便捷的暂存区域和多个工作流等功能。
● 版本控制
• 集中式版本控制
集中化的版本控制系统诸如 CVS,SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
• 分布式版本控制
像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库),这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
1,服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
2,每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
二、 Git安装
● 下载
百度云:链接: https://pan.baidu.com/s/1BkhswE7wUfL7nE4LM4PvrQ?pwd=6zep 提取码: 6zep
● 安装
三、 Git 工作流程
● 本地工作流程及基本概念
工作区:就是你在电脑里能看到的目录,在本地磁盘创建项目(一般在开发工具中完成).
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,添加工作区代码到暂存区,暂存区代码是临时存储,可以撤销
版本库:工作区有一个隐藏目录 .git,是 Git 的版本库,提交暂存区代码到本地仓库,生成历史版本记录,历史版本记录不可删除(指无删除命令、但不防直接删除文件夹),可以查看不同时期提交的历史记录,和其他版本做比较
● 完整的运行流程(本地库与远程仓库)
1. 工作区代码添加到暂存区
2. 暂存区代码提交到本地版本库
3. 本地版本库 代码推送到远程仓库
4. 从远程仓库 拉取代码到本地
● 远程仓库
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
局域网
GitLabe
互联网
GitHub(外网)
Gitee 码云(国内网站)
● Git 基本操作
安装成功后,右键桌面,选择Git Bash Here
设置邮箱和姓名(注:Ctrl/Shift + Ins 复制粘贴)
git config --global user.email "自己的邮箱"git config --global user.name "Your Name"
查看配置信息
git config --list
命令行窗口进入D盘:cd D:
初始化: git init 项目名
提交到暂存区:
git add 文件名 (提交指定文件)
git add . (提交所有所有文件)
查看暂存区:git ls-files
恢复暂存区的指定文件到工作区:
git reset 文件名 撤销指定文件
git reset . 撤销所有文件
提交到本地仓库:
git commit -m 注释
四、 IDEA 集成 Git 并添加项目到 git 仓库
● idea 集成 git
● 新建一个测试项目
选择需要添加到git仓库中的项目
● 添加到暂存区
添加文件到暂存区前,可以设置忽略文件功能,将不需要提交的文件排除掉
安装 ignore 插件
新建 .gitignore file (Git) 文件
提交文件到Git
比较多次提交的区别
给A类添加一个main方法,然后再提交
五、 远程仓库Gitee
● https://gitee.com/
注册登录
● 在个人中心生成SSH公钥管理
可以按照帮助文档进行操作: SSH公钥设置
打开Git Bash,通过命令 ssh-keygen
生成 SSH Key:(将 Gitee SSH Key 改为自己的邮箱)
ssh-keygen -t ed25519 -C "Gitee SSH Key"
中间通过三次回车键确定,生成如:
查看生成的SSH 公钥和私钥:
ls ~/.ssh/
读取公钥文件:
cat ~/.ssh/id_ed25519.pub
复制(Ctrl + Ins),粘贴到个人中心
确定添加
● 在IDEA配置Gitee
安装插件
然后再设置中添加Gitee账户
六、 本地仓库与远程仓库交互
● 推送本地仓库代码到远程仓库
• 首次推送
成功
• 后面修改内容后再次向远程仓库推送
先commit
再push
● 从远程仓库下载到本地
• 首次拉取
把本地的 gittest 项目先删除,然后从远程仓库下载
然后打开IDEA
• 后续拉取
● 冲突解决
当你本地仓库向远端仓库提交代码时,你的文件可能与别人修改的文件冲突,一般多出现在公共配置文件中,冲突在多人开发中不可避免,但是可以通过良好的规范及沟通尽量避免发生
提交时,如果与远程仓库代码冲突,会弹框提示,点击 merge(合并,修理冲突)