版本控制概述
-- 代码版本迭代、需要做到新老版本的自动管理,即版本管理器
-- 主流的版本控制工具主要是有Git、SVN等
版本控制分类
1.本地版本控制:
即个人对每个需要记录版本进行快照,或者是记录补丁文件,适合个人使用,如RCS。
2.集中版本控制:(代表-SVN
把所有版本数据都保存在服务器上,协同开发者从服务器上同步更新或者上传自己的修改
多个人向服务器提交版本、并从服务器中获取的最新版本。
但是获取历史版本数据、切换版本需要进行联网访问服务器,且服务器要定期备份
3.分布式版本控制:(代表-Git
不用联网就能看到所有历史版本。但每个人有全部代码,有安全隐患。
没有中央服务器,去中心化。不会因服务器损坏或者网络问题,造成不能工作的情况。
!下面这个是面试常问到的:Git与SVN的主要区别
Git历史
Git安装
可以使用npm国内镜像下载、会比官网的快一点。
环境变量path可以清理一下之前下载的残留。
在桌面或者其他文件夹内鼠标右键显示更多就能打开命令行工具。
在打开的界面可以使用基本的Linux命令,其打开位置就是命令初始位置
常用Linux命令
关于Git的配置
Git的配置分为系统配置及用户配置
系统配置文件可以在Git安装目录下的Git\etc\gitconfig里面找到
用户配置则是在本机账户下即在C:\User\Mi\.gitconfig文件里可以找到
我们可以在GitBash里面使用命令查看这些配置
查看全部配置 git config -l
查看系统配置 git config --system --list
查看用户配置 git config --global --list
其中最基本的配置需要在用户配置里面添加用户名及邮箱
可以使用命令git config --global user.name "name"设置用户名
然后使用命令git config --global user.email XXXXX@163.com设置邮箱
global -- 全局 的意思
Git工作原理
环境变量只是为了全局使用而已,所以配与不配都可以。
HEAD里面href指向默认为master主分支。
主分支是唯一分支,所以一般不会在这个分支上面操作,一般会有某某人各自的分支。
远程仓库一般是GitHub 、Gitee(码云 这些。
工作流程:
Git项目搭建及克隆
本地仓库搭建
在需要进行搭建仓库的文件目录下执行命令 git init 即可
(会产生一个.git的隐藏文件夹
克隆远程产库
先去Gitee或者说是GitHub那里找想要的项目,然后点击克隆clone或者下载来获取
该项目的url地址,接着在目录下执行命令 git clone [url] 即可下载项目
Git基本操作命令
git add .
表示全部添加到暂存区,注意后面的点表示的即是全部
git commit -m "消息内容"
表示把暂存区的内容全部提交到本地仓库,-m后面跟着的是提示消息
git status [filename]
表示查看文件状态、如未跟踪(未add 、未提交(未commit 等
没有文件名 表示查看目录下所有文件状态
比如说你在idea里面的那个.gitignore文件指定不提交内容可以参考如下设置:
*.class *.log *.lock tmp/ 忽略一些编译文件、日志文件和临时文件
*.jar *.war *.ear target/ 忽略一些打包后的文件
.idea/ *.iml *.ipr *.iws bin/ 忽略idea的一些文件
码云的注册和使用
里面一些项目虽然是开源的,但是如果作者有版权规定的话,商用的违法的。
配置SSH公钥及创建远程仓库
git命令输入 ssh-keygen -t rsa 命令创建,创建后就得到了用户文件夹下的.ssh文件
获得公钥后即可在码云处添加即可。
开源许可证:是否可商用、是否运行转载等。一般用GPL2.0、GPL3.0就够了。
在码云创建完仓库之后, 复制连接克隆到本地即可开始使用。
IDEA集成Git操作
1.idea创建项目。
2.把远程克隆过来的项目里面那些git文件夹直接copy到创建的项目中即可。
3.拷贝完后回到idea会发现右上角多了一些图标!且不同状态文件名是不同颜色。
4.左下会有个Git按钮,打开它就可以看到关于仓库的所有信息了。
5.除了使用图形化界面,也可以使用终端执行命令。
其实使用命令的方式还是比图像界面要快得多的!
多人操作时Git分支处理
不同的开发者可以在不同的分支上进行并行开发,这时它们只修改各自部分。
比如A改A的、B改B的,当A提交时发现B的部分不是最新的时候,
可以直接pull,这时能够对本地内容自动合并、同步,A保留,让B部分变为最新。
当A和B对相同位置修改时,比如A和B同时改了某个全局变量的值
这个时候pull就会出现问题了,分支那里会显示一个合并状态(dev|MERGING
这种时候要A和B进行沟通,取舍其中之一。取舍完后进行add、commit、push即可。
git diff [filename] 查看文件变更内容。
git log --oneline 查看日志。
参考资料及文章中图片来源:
【【狂神说Java】Git最新教程通俗易懂】 https://www.bilibili.com/video/BV1FE411P7B3/?share_source=copy_web&vd_source=3053de44f45b44f8d138c1a0b354d4d7
【push冲突与解决方法,git提交冲突的解决方法,冲突产生的原因,git-pull操作,2023年git最新实用教程】 https://www.bilibili.com/video/BV1BA41117Qb/?share_source=copy_web&vd_source=3053de44f45b44f8d138c1a0b354d4d7