Git的下载安装和使用以及和IDEA的关联
1.什么是git
Git 是一个分布式版本控制系统,主要用于跟踪文件变化和协调多人协作开发。它通过保存文件快照而非差异来记录完整的变更历史,每个开发者都拥有完整的代码仓库副本,不依赖中央服务器。Git 的核心功能包括代码追踪、分支管理、合并操作和远程协作,支持从工作区到暂存区再到本地仓库和远程仓库的完整工作流程。它具有数据完整性保障、高效分支操作、离线工作能力以及强大的合并工具等优势,现已成为软件开发的标准工具,被广泛应用于各种规模的项目中。
此图为git的图解,简短的解释一下,git的工作原理可以理解成为一棵树,根节点为主分支一般默认为master,其他的子节点分别对应创建的不同的版本,每创建一个版本Head指针会移动到当前的版本。此外git为分布式版本管理性,每一个开发者可以下载当前的所有文件。
SVN(集中式版本控制系统)
SVN(Subversion)是一个集中式版本控制系统,采用客户端-服务器架构来管理文件和目录的变更历史。与 Git 的分布式模式不同,SVN 使用单一的中央仓库作为代码管理的核心,所有用户的操作都需要连接到这个中央服务器。在 SVN 中,开发者通过检出(checkout)获取代码副本,在本地进行修改后提交(commit)回中央仓库。所有的版本历史都存储在中央服务器上,用户需要网络连接才能查看历史记录或进行大部分操作。SVN 的分支和标签实际上是目录的复制,通过创建新的路径来实现分支管理。
SVN管理的架构主要是,一个中央集群,使用者将所有的版本数据都保存在服务器上,协同开发者从服务器上同步或更新上传自己修改的部分。但是这种方式如果服务器宕机,会严重影响开发者使用。
本地版本控制系统
记录文件每次更新,可以对每一个版本做一个快照,或者是补丁记录。
修改一版存一版,没啥好说的
2.git的安装
git安装网站
Git - 下载 - Git 版本控制系统
官网首页
由于我的电脑是Windows版本的,在这里讲一下Windows的,其他的也是相同的步骤
第一步,点击windows的那个图标,进入到下载页面,然后点击下载即可(下载的速度可能会有点慢,可以去使用国内镜像)
然后一直下一步即可安装成功。当出现下面的界面,即为安装成功。
Git CMD:为Windows的命令风格
Git Bash:为Linux的命令风格,这个最为常用。但是这个需要掌握Linux的一些基本指令。
Git GUI:为Git的图形化界面
补充一些Linux的常用指令:
ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件
pwd: 显示当前路径
cd XXX: 进入XXX目录下, cd .. 返回上层目录
cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,
mkdir XXX: 创建目录XXX
rm XXX: 删除普通文件; rm XXX -r: 删除文件夹
mv XXX YYY: 将XXX文件移动到YYY
touch XXX: 创建一个文件
cat XXX: 展示文件XXX中的内容
Git配置:设置用户名和密码这个是必要的!!!
配置命令:
git config --global user.name "jack" #用户名,随便取一个即可
git config --global user.email "xxxxxx.@qq.com" #邮箱不要乱写,建议和远程仓库的github的一致
3.git的使用
Git本地有四个工作区:工作目录(Working Directory),暂存区(Stage/index),资源库(Git Directory)和远程仓库(Remote Directory)。
工作目录:就是平时存放项目的代码的地方。
暂存区:用于临时存放你的改动,事实上他只是一个文件,保存即将提交文件列表的信息。
资源库区:安全存放数据的位置,这里面有提交过后的所有版本。其中HEAD指针指向放入仓库的最新版本。
远程仓库:托管代码的服务器,可以简单的认为是项目组中一台电脑用于远程的数据交换。
这几个工作区的关联如下:
Git工作流程
- 首先在工作区创建一个项目
- 将需要进行版本控制的文件放到暂存区
- 将暂存区的文件提交到git创库
- 再将本地仓库的文件,上传到代码托管的服务器上。
本地仓库搭建的两种方式:
创建全新的仓库:git init #在当前文件夹下,初始化一个.git的仓库。
克隆远程仓库代码: git clone URL
Git管理文件的三种状态
在这里就不讲里面的规则,直接将用法案例。
忽略文件:有时候我们不想把某些文件放入到版本控制,比如一写临时文件。可以在主目录下创建.gitignore。使用规则在这里用案例进行讲解。
- 已修改(modified)
- 已暂存(stage)
- 已提交(commited)
#为注释
*.bat #忽略所有以.bat结尾的文件,这样上传的话,这类文件就不会被上传。
!lib.bat #但除lib.txt以外的其他的都上传。
/temp #忽略项目根路径下的TODO文件,不包括其他目录temp
user/ #忽略user文件夹下的所有文件
docx/*.bat #忽略docx/xxx.bat,但是不包括docx/server/Xxx.bat
4.git的常用命令
git config --global user.name xxx:设置全局用户名
git config --global user.email xxx@xxx.com
git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中
git add XX:将XX文件添加到暂存区
git add .:将所有待加入暂存区的文件加入暂存区
git rm --cached XX:将文件从仓库索引目录中删掉
git commit -m "给自己看的备注信息":将暂存区的内容提交到当前分支
git status:查看仓库状态
git diff XX:查看XX文件相对于暂存区修改了哪些内容
git log:查看当前分支的所有版本
git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库
git push origin branch_name:将本地的某个分支推送到远程仓库
git clone git@git.acwing.com:xxx/XXX.git:将远程仓库XXX下载到当前目录下
git checkout -b branch_name:创建并切换到branch_name这个分支
git branch:查看所有分支和当前所处分支
git checkout branch_name:切换到branch_name这个分支
git merge branch_name:将分支branch_name合并到当前分支上
git branch -d branch_name:删除本地仓库的branch_name分支
git branch branch_name:创建新分支
git checkout -t origin/branch_name 将远程的branch_name分支拉取到本地
5.使用Gitee托管代码配置
1.注册码云,完善个人信息。
Gitee - 基于 Git 的代码托管和研发协作平台
2.设置本地SSH公钥,可实现免密登录
#进入C:\User\Administrator\.ssh 目录
打开终端cmd,生成公钥命令 ssh-keygen
将生成的公钥信息cat.id_rsa.pub中的内容复制到账户中即可。
6.IDEA中如何关联git
在这里只说用命令行进行操作的,感觉用IDEA中自带的git,由于IDEA的版本不同,使用起来会有点麻烦。
1.在项目的主目录的文件夹下打开终端,输入指令git init
2.看见生成.git 的文件即为成功,然后输入 git add . 代表全部打包到暂存区
3. 将打包到暂存区的文件提交至本地仓库,并且进行一定的说明
4.将在本地仓库的推送至Gitee上,不报错即为上传成功。