GIT
一、版本控制
版本控制是一种在开发的过程中用于管理我们对文件,目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术
优点:
- 实现跨区域多人协同开发
- 追踪和记载一个或者多个文件的历史记录
- 组织和保护你的源代码和文档
- 统计工作量
- 并行开发,提高开发效率
- 跟踪记录整个软件的开发过程
- 减轻开发人员的负担,节省时间同时降低人为错误
常见的版本控制工具:
- Git
- SVN
版本控制分类:
-
本地版本控制:记录文件每次的更新,可以对每个版本做一个快照或是记录补丁文件,适合个人用
工具:RCS
-
集中版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
工具:SVN
优点:存放在服务器上,不用在本地存放,节省了空间
缺点:如果遇到服务器问题则无法下载使用最新版
-
分布式版本控制:所有的版本信息仓库全部同步到本地的每个用户
工具:git
优点:每个人都有独立的备份,安全性高
缺点:占用额外的存储空间,如果有人带着代码跑路,那么内容也就全部泄漏出去了
git与SVN的区别:
- 类型:SVN是集中式版本控制系统,git是分布式版本控制系统
- 是否有中央服务器:SVN有中央服务器,git没有中央服务器,每个人的电脑都是一个完整的版本库
- 是否需要网络:SVN必须联网,先联网下载最新的版本,完成工作后将完成的内容推送到服务器.git不用联网,因为版本都在自己的电脑上,协同的方式是,如果a,b两人的电脑都修改了文件A,只需要把各自的修改推送给对方,就可以互相看到对方的修改了.
二、git环境配置
-
下载(由于git的服务器在国外,我们直接下载比较慢,所以这里使用淘宝镜像):http://npm.taobao.org/mirrors/git-for-windows/
版本:这里以2.25.1版本为例
-
一直点是进行安装
-
完成后菜单下会有3个程序
- Git Bash:Unix与Linux风格的命令行,使用最多
- Git CMD:windows风格的命令行
- Git GUI:图形界面的Git,不建议初学者使用
-
查看配置
所有的配置文件都是保存在本地的
系统配置文件地址:
\git\etc\gitconfig
用户配置文件地址:
C:\Users\gcl\.gitconfig
(在自己c盘的用户下) -
配置用户名和邮箱
环境变量只是为了全局使用而已.git自动配置了环境变量
三、git基本理论
-
工作区域
git有三个工作区域:
- 工作目录(working Directory)
- 暂存区(Stage/Index)
- 资源库(Repository)
- 远程的git仓库(Remote Directory)
)
几个重要的概念:
- Workspace:工作区,也就是你平时存放项目代码的地方(自己创建的本地项目)
- Index/Stage:暂存区,用于临时存放你的改动,仅仅是一个文件,保存即将提交到文件列表的信息(在项目中的.git目录,是默认隐藏的文件夹)
- Repository:仓库区(或本地仓库),也就是安全存放数据的位置,里面有你提交到所有版本的数据.其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据
注:本地的三个区域确切的说应该是git仓库中HEAD指向的版本
说明:
- Direcoty:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间
- WorkSpace:工作空间.需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间
- .git:git的管理空间.存放Git管理信息的目录,初始化仓库的时候自动创建(隐藏)
- Index/Stage:暂存区,或者叫待提交更新区,在提交进入reop之前,我们可以把所有的更新放在暂存区
- local repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch,因为还有其它版本)
- stash:隐藏,是一个工作状态保存栈,用于保存/恢复workSpace中的临时状态
-
工作流程
- 在工作目录中添加,修改文件
- 将需要进行版本管理的文件放入暂存区(git add)
- 将暂存区的文件提交到仓库(git commit)
分别对应三种状态:已修改(modified),已暂存(staged),已提交(committed)
四、git项目搭建
-
工作目录与常用指令
工作目录:是你希望git帮助你管理的文件夹,可以是空目录
常用指令:
-
本地仓库搭建
(1).创建全新的仓库
-
在需要git管理的项目的根目录执行
-
执行后可以看到项目中多了一个.git目录,里面包含了版本等信息
(2).克隆远程仓库:将远程服务器上的仓库完全镜像一份至本地(实用)
-
五、Git文件操作
-
文件的四种状态:版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件所处的状态,进而才能对其做相应的操作
-
untracked:未跟踪.该文件在文件夹中,但并没有加入到git仓库,不参与版本控制
git add
:状态变为Staged -
unmodify:文件已经入库,未修改
被修改:状态变为Modified
git rm
:文件被移出仓库,变为Untracked文件 -
modified:文件已修改
git add
:进入暂存Staged状态git checkout
:丢弃修改,返回到Unmodify状态(实际上是从库中取出文件,覆盖当前修改) -
staged:暂存状态
git commit
:将修改同步到库中,这时库中的文件和本地文件又编程一致,文件未Unmodify状态git reset HEAD filename
:取消暂存,文件状态变为Modify状态
注:本地仓库就在项目的.git目录下
-
-
查看文件状态
-
忽略文件
在许多git的主项目下有一个.gitignore文件,该文件用于忽略一些不用纳入版本控制的文件,如:数据库文件,临时文件,设计文件等
规则:
-
1|0表示注释
- 可以使用linux通配符:*表示多个字符,?代表一个字符,[abv]代表可选字符范围,{str1,str2…}代表可选的字符串等
- !表示例外规则,将不被忽略
- /在前,表示要忽略的文件在此目录下,而子目录中的文件不被忽略
- /在后,表示要忽略的是此目录下该名称的子目录,而非文件
-
六、使用码云
-
完善码云上的个人信息
-
设置本机绑定SSH公钥,实现免密码登陆
- 本地ssh公钥地址:
C:\Users\gcl\.ssh
- 生成gitee公钥:
ssh-keygen -t ras
(这里的-t表示的是官方推荐的加密算法) - 成功后会在本地.ssh目录生成两个文件id_rsa.pub(公钥)和id_rsa(私钥)
- 将对应生成的公钥添加到码云设置页面的ssh公钥下
- 本地ssh公钥地址:
-
新建一个仓库
许可证:
- 是否允许随意转载
- 是否允许商业使用
注:
- 可以使用gitlab搭建自己的远程仓库
- 注意版权信息
- 通常一个仓库对应一个
七、IDEA中集成git
- 新建项目,绑定git
- 先将远程仓库clone到本地,这时本地会有一些包括.git的文件
- 将.git等文件直接拷贝到项目中即可(相对比较简单的方法)
- 修改文件,使用IDEA操作git
git add
添加到暂存区- commit提交
- push到远程仓库
- 提交测试
注:
- 文字的绿色标识表示文件被添加到了暂存区
- 右上角有提交等操作
- 左下角的Version Control可以查看仓库的全部信息
- 建议用命令行
八、GIT分支
主要在多人开发中使用
常用指令:
使用:
- 当一个仓库有多个开发者(该仓库必须为私有仓库)时,可以直接进行邀请添加
- 对于每个人分属的不同模块单独创建分支
- 当分支产生冲突时,需要协商保留哪个分支
- 当正式对外发布时,将各个分支合并到master(主分支)
九、补充
__EOF__
本文链接:https://www.cnblogs.com/Arno-vc/p/13733962.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix