当前位置: 首页 > web >正文

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工作流程

  1. 首先在工作区创建一个项目
  2. 将需要进行版本控制的文件放到暂存区
  3. 将暂存区的文件提交到git创库
  4. 再将本地仓库的文件,上传到代码托管的服务器上。

本地仓库搭建的两种方式:

创建全新的仓库: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上,不报错即为上传成功。

      http://www.xdnf.cn/news/18658.html

      相关文章:

    • 微服务概述1
    • 【K8s】微服务
    • Claude Code快捷键介绍(Claude Code命令、Claude Code指令、Claude Code /命令、Claude命令、Claude指令)
    • P9246 [蓝桥杯 2023 省 B] 砍树
    • 学习嵌入式第三十六天
    • JAVA国际版东郊到家同城按摩服务美容美发私教到店服务系统源码支持Android+IOS+H5
    • PCB电路设计学习3 电路原理图设计 元件PCB封装设计与添加
    • Day12 数据统计-Excel报表
    • 数据结构——树状数组(Binary Indexed Tree)
    • UE5多人MOBA+GAS 53、测试专属服务器打包和连接,以及配置EOS
    • WiFi有网络但是电脑连不上网是怎么回事?该怎么解决?
    • 云原生高级——K8S总概
    • OpenHands:开源AI软件开发代理平台的革命性突破
    • 2025最新版mgg格式转MP3,mflac转mp3,mgg格式如何转mp3?
    • setup 语法糖核心要点
    • Windows应急响应一般思路(一)
    • MySQL 高级主题:索引优化、ORM 与数据库迁移
    • More Effective C++ 条款02:最好使用C++转型操作符
    • 【0基础PS】蒙版与剪贴蒙版详解
    • NoCode-bench:自然语言驱动功能添加的评估新基准
    • 3.4 缩略词抽取
    • 表格识别技术:通过图像处理与深度学习,将非结构化表格转化为可编辑结构化数据,推动智能化发展
    • Vue Teleport 原理解析与React Portal、 Fragment 组件
    • GEO优化专家孟庆涛发布:《GEO内容优化的四大黄金标准》
    • 普中烧录软件 PZISP,打不开,提示“应用程序无法启动,因为应用程序并行配置不正确.....”
    • 学习嵌入式第三十五天
    • Linux应用软件编程---网络编程1(目的、网络协议、网络配置、UDP编程流程)
    • APP Usage『安卓』:比系统自带强10倍!手机应用使用时长精确到秒
    • MySQL - 视图,事务和索引
    • java8 findAny()、findFirst()空指针NullPointerException问题