【常用工具系列】Git 教程——从入门到大师

目录

  • 前言
  • 一、Git 基础
    • 1-1、Git 简介与安装
      • 安装 Git
    • 1-2、 Git 工作流程
    • 1-3、 Git 配置与管理
      • 用户配置
      • 查看配置
    • 1-4、 Git 仓库操作
      • 克隆仓库
      • 推送更改
      • 拉取更新
    • 1-5 Git 分支管理
      • 创建分支
      • 切换分支
      • 删除分支
      • 解决冲突
  • 二、 Git 进阶
    • 2-0、 Git 标签使用
      • 创建标签
      • 查看标签
      • 检出标签
      • 推送标签到远程仓库
    • 2-1、 Git 远程仓库
      • 添加远程仓库
      • 从远程仓库拉取
      • 推送到远程仓库
      • 查看远程仓库信息
    • 2-2、Git 分布式工作流
    • 2-3、Git 冲突解决
    • 2-4、Git 日志与历史
      • 查看提交历史
      • 回退到之前的提交
      • 暂存更改
  • 三、Git 实用技巧
    • 3-1、Git 忽略文件与.gitignore
      • 创建.gitignore
      • 示例
      • 注意事项
    • 3-2、Git 别名与自定义命令
      • 设置别名
      • 自定义命令
    • 3-3、Git 子模块管理
      • 添加子模块
      • 更新子模块
    • 3-4、Git 回退与数据恢复
      • 回退到某个提交
      • 恢复已删除的文件
    • 3-5、Git 工具集成(如:GitHub, GitLab)
      • GitHub
      • GitLab
  • 四、Git 高级话题
    • 4-1、Git 内部原理浅析
      • 提交对象
      • 树对象
      • Blob 对象
      • 工作流
    • 4-2、Git 二进制文件管理
    • 4-3、Git hooks 应用
      • 示例:预提交钩子(pre-commit)
    • 4-4、Git 仓库维护与优化
      • 清理不再使用的分支
      • 压缩仓库大小
    • 4-5、Git 安全策略
      • 使用SSH密钥而非HTTPS
      • 保护分支
      • 定期审计
  • 五、Git 在团队中的应用
    • 5-1、Git 流程规范
    • 5-2、代码审查与合并请求
    • 5-3、分支策略与版本发布
    • 5-4、持续集成与持续部署(CI/CD)
    • 5-5、多人协作最佳实践
  • 总结


前言

Git 是一个分布式版本控制系统,由 Linus Torvalds 在2005年为管理 Linux 内核开发而创建。它设计用于处理从小型到非常大型的项目版本管理,具有高效、可靠的特点,并支持非线性开发。

一、Git 基础

1-1、Git 简介与安装

Git 是一个分布式版本控制系统,由 Linus Torvalds 在2005年为管理 Linux 内核开发而创建。它设计用于处理从小型到非常大型的项目版本管理,具有高效、可靠的特点,并支持非线性开发。

安装 Git

在 Windows 上安装

  1. 访问 Git 官方下载页面。
  2. 下载适合你的操作系统的安装程序。
  3. 按照安装向导指示完成安装过程,推荐勾选“Git Bash Here”选项以便在Windows资源管理器中快速打开Git Bash。

在 macOS 上安装

  1. 使用 Homebrew(如果尚未安装,请先通过 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"" 安装 Homebrew)。
  2. 运行 brew install git 命令安装 Git。

在 Linux 上安装

对于基于 Debian 的系统(如 Ubuntu),使用以下命令:

sudo apt-get update
sudo apt-get install git

对于基于 Red Hat 的系统(如 Fedora),使用:

sudo dnf install git

1-2、 Git 工作流程

Git 的基本工作流程包括以下几个步骤:

  1. 初始化仓库:在项目根目录下运行 git init 以创建新的 Git 仓库。
  2. 添加文件:使用 git add <file> 将文件添加到暂存区,或 git add . 添加所有修改过的文件。
  3. 提交更改:通过 git commit -m "提交信息" 将暂存区的内容提交到本地仓库。
  4. 查看状态:使用 git status 查看当前工作目录和暂存区的状态。
  5. 分支操作:利用 git branch 创建、查看分支,git checkout <branch> 切换分支。
  6. 合并分支:当开发完成后,使用 git merge <branch> 合并分支到主分支。

1-3、 Git 配置与管理

用户配置

首次使用 Git 前,需要配置用户名和邮箱,这些信息将被用于记录提交:

git config --global user.name "你的名字"
git config --global user.email "you@example.com"

查看配置

可以使用以下命令查看配置信息:

git config --list

1-4、 Git 仓库操作

克隆仓库

从远程仓库克隆项目到本地,使用命令:

git clone https://github.com/用户名/仓库名.git

推送更改

将本地仓库的更改推送到远程仓库:

git push origin 主分支名

拉取更新

获取远程仓库的最新更改并合并到本地:

git pull origin 主分支名

1-5 Git 分支管理

创建分支

创建一个新的分支并立即切换到该分支上:

git checkout -b 新分支名

切换分支

切换到已存在的分支:

git checkout 分支名

删除分支

删除本地分支:

git branch -d 分支名

删除远程分支(需先在本地删除):

git push origin --delete 分支名

解决冲突

当合并时发生冲突,Git 会标记出冲突文件。手动编辑这些文件,解决冲突后,再提交。

以上内容覆盖了 Git 的基础操作,通过实践这些命令,你将能熟练地使用 Git 进行版本控制。

二、 Git 进阶

2-0、 Git 标签使用

在 Git 中,标签用于标记某个特定的提交,常用于版本发布。创建轻量标签只需指定标签名,而注解标签则会包含作者信息、日期以及标签信息。

创建标签

  • 轻量标签:直接指向提交对象。
git tag v1.0
  • 注解标签:包含额外信息,使用 -a 参数,并可添加 -m 参数描述标签信息。
git tag -a v1.1 -m "Version 1.1 release"

查看标签

git tag

检出标签

检出到标签对应的提交:

git checkout tags/v1.0

推送标签到远程仓库

默认情况下,git push 不会推送标签。需要显式地推送标签:

git push origin v1.0

或推送所有标签:

git push origin --tags

2-1、 Git 远程仓库

远程仓库是团队协作的基础,允许共享代码和协作开发。

添加远程仓库

git remote add origin https://github.com/yourusername/yourrepo.git

从远程仓库拉取

git fetch origin

推送到远程仓库

git push origin master

查看远程仓库信息

git remote -v

2-2、Git 分布式工作流

分布式工作流强调每个开发者都有一个完整的仓库副本,包括历史记录和分支,可以独立进行开发和提交。

  1. Forking Workflow:适合开源项目,开发者先Fork主仓库到自己账户,然后在其上开发,完成后发起Pull Request。
  2. Feature Branch Workflow:团队内部常用,基于主分支创建特性分支开发新功能,完成后合并回主分支。

2-3、Git 冲突解决

冲突发生在两个或多个提交修改了同一文件的同一部分时。解决步骤如下:

  1. 查看冲突:Git会标记冲突区域。
  2. 手动编辑:手动决定如何解决冲突。
  3. 添加更改:解决后,需要将其添加到暂存区。
  4. 提交更改:完成冲突解决后提交。
git add .
git commit -m "Resolved conflicts in file.txt"

2-4、Git 日志与历史

查看提交历史

  • 简略历史
git log
  • 详细历史
git log --oneline --decorate --graph --all
  • 搜索提交历史

通过关键字搜索提交信息:

git log --grep="feature"

回退到之前的提交

使用 git resetgit revert 可以回到之前的提交状态。

  • 软重置(保留工作目录改动):
git reset --soft HEAD^
  • 硬重置(丢弃工作目录改动):
git reset --hard HEAD^

暂存更改

如果想恢复到某个提交的状态,但不提交,可以使用 git stash

git stash

之后可以通过 git stash applygit stash pop 恢复暂存的更改。

三、Git 实用技巧

3-1、Git 忽略文件与.gitignore

在使用Git进行版本控制时,你可能希望某些文件或目录不被Git跟踪,比如编译生成的文件、日志文件、个人配置文件等。这时,.gitignore文件就显得尤为重要。

创建.gitignore

在你的仓库根目录下创建一个名为.gitignore的文件。在这个文件中,你可以指定要忽略的文件模式。每行一个模式,空行或以#开头的行会被忽略。

示例

# 忽略所有.log文件
*.log# 但.gitlog文件除外
!gitlog.txt# 忽略build目录下的所有文件
build/# 忽略所有以.tmp结尾的文件
*.tmp

注意事项

  • 使用斜杠/表示目录,例如dir/会忽略dir目录下的所有文件,但不会忽略dir本身。
  • 使用星号*作为通配符匹配任意字符,但不包括.
  • 使用双星号**可以递归匹配目录和文件。

3-2、Git 别名与自定义命令

为了提高效率,Git允许用户为常用命令设置别名,或者创建自定义命令。

设置别名

通过git config命令可以设置别名:

# 在全局配置中设置别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit

这样,你可以使用git co代替git checkoutgit br代替git branch等。

自定义命令

更进一步,你可以通过编写脚本并在Git中设置别名来实现自定义命令。例如,创建一个显示最近几次提交摘要的命令:

# 在~/.gitconfig中添加如下内容
[alias]recent = "!f() { git log --oneline -n $1; }; f"# 然后,你可以使用git recent 5来查看最近5次提交

3-3、Git 子模块管理

当你的项目依赖于其他项目时,Git子模块提供了一种有效的方式来管理这些依赖。每个子模块都是一个独立的Git仓库。

添加子模块

git submodule add https://github.com/example/repo.git path/to/submodule

这会在当前仓库中添加一个名为repo的子模块,并将其置于path/to/submodule目录下。

更新子模块

进入子模块目录并执行Git命令:

cd path/to/submodule
git pull
cd ..
git add path/to/submodule
git commit -m "Update submodule"

或者直接使用:

git submodule update --remote

3-4、Git 回退与数据恢复

回退到某个提交

git reset --hard <commit_hash>

这会将HEAD指向指定的提交,并重置工作目录和索引,丢失的提交将无法找回。

恢复已删除的文件

git checkout <commit_hash> -- path/to/file

这会从指定的提交中恢复文件到工作目录。

3-5、Git 工具集成(如:GitHub, GitLab)

GitHub

  1. Fork:在GitHub上找到你想要贡献的项目,点击"Fork"按钮将其复制到你的账户下。
  2. Clone:在本地克隆你的Fork。
    git clone https://github.com/your_username/repo.git
    
  3. 创建新分支:基于mainmaster分支创建新分支。
    git checkout -b new-feature
    
  4. 提交更改
  5. 推送至远程仓库
    git push origin new-feature
    
  6. 发起Pull Request

GitLab

流程与GitHub类似,主要区别在于URL和一些特定功能(如Merge Requests)。

以上是Git实用技巧的一些关键点,掌握它们能显著提升日常开发的效率和协作体验。

四、Git 高级话题

4-1、Git 内部原理浅析

Git 是一个分布式版本控制系统,其内部原理基于快照和内容寻址存储机制。每个 Git 仓库都包含一个对象数据库,用于存储四种类型的对象:提交(commit)、树(tree)、blob(文件内容)和标签(tag)。这些对象通过 SHA-1 哈希值唯一标识,确保了数据的完整性和一致性。

提交对象

提交对象记录了一次保存快照的操作,包括指向根树对象的指针、父提交的指针(首次提交除外)、作者信息、提交者信息及提交信息。

树对象

树对象代表了一个目录结构,记录了该目录下的所有文件(作为 blob 对象)和子目录(作为其他树对象)的信息。

Blob 对象

Blob 对象用来存储文件的具体内容。当文件被添加到 Git 仓库时,其内容会被转换为 blob 对象并存储在数据库中。

工作流

工作目录、暂存区(索引)和HEAD指针是理解Git工作流程的关键。HEAD是一个特殊的指针,通常指向当前分支的最新提交。通过git add命令将更改从工作目录移动到暂存区,然后使用git commit将暂存区的内容创建一个新的提交。

4-2、Git 二进制文件管理

对于图片、视频等二进制文件,Git 通过同样的方式管理,但默认不会进行差异比较,而是每次修改视为全新的文件。为了优化存储空间和传输效率,可以考虑使用git-lfs(Large File Storage),它允许将大文件存储在外部服务上,并在Git仓库中只保留文本指针。

# 安装git-lfs
git lfs install# 将特定类型文件跟踪为LFS
git lfs track "*.mp4"# 提交包括LFS文件的更改
git add . && git commit -m "Add large files with git-lfs"

4-3、Git hooks 应用

Git Hooks 是在特定事件发生前或发生后执行的脚本,位于.git/hooks目录下。它们让开发者能够在提交前自动检查代码风格、自动打包或发送通知等。

示例:预提交钩子(pre-commit)

此钩子在提交前运行,可用于代码格式检查。

#!/bin/sh
# pre-commit 文件内容
echo "Running code checks..."
flake8 .  # 假设使用Flake8进行Python代码检查
if [ $? -ne 0 ]; thenecho "Code style check failed. Please fix the issues before committing."exit 1
fi
echo "Code checks passed."

4-4、Git 仓库维护与优化

清理不再使用的分支

定期清理不再需要的远程分支可以保持仓库整洁。

git remote prune origin

压缩仓库大小

通过git gc手动进行垃圾回收,优化存储空间。

git gc --aggressive --prune

4-5、Git 安全策略

使用SSH密钥而非HTTPS

SSH连接提供了更强的安全性,避免在每次操作时输入密码。

保护分支

通过设置git config中的branch.*.protection属性,可以防止关键分支被误删或强制推送。

定期审计

定期审查提交历史和访问权限,确保没有异常活动。

以上内容深入探讨了Git的一些高级特性及其应用,帮助用户更高效、安全地管理版本控制。

五、Git 在团队中的应用

5-1、Git 流程规范

在团队开发中,遵循一套明确的Git流程规范至关重要,以确保代码质量和团队协作效率。规范通常包括以下步骤:

  1. 初始化仓库:项目开始时,首先在GitHub、GitLab等平台上创建远程仓库,并通过git clone命令将仓库克隆到本地。

    git clone https://github.com/your-username/your-repo.git
    
  2. 分支管理:为每个新功能、修复或特性创建独立的分支,避免直接在mainmaster分支上工作。

    git checkout -b feature/new-feature
    
  3. 提交规范:每次提交应仅包含逻辑相关的改动,并附带清晰的提交信息,采用 Imperative mood,如“Add feature X”。

    git add .
    git commit -m "Add feature X"
    
  4. 拉取最新代码:在推送前,先从远程仓库拉取最新代码并解决可能的冲突。

    git pull origin main
    
  5. 代码审查:通过合并请求(Merge Request)或Pull Request进行代码审查,确保代码质量。

5-2、代码审查与合并请求

代码审查是提高代码质量和团队成员技能的关键环节。在Git中,这一过程通过创建合并请求实现:

  1. 创建合并请求:在完成开发后,向主分支发起合并请求,详细描述变更内容和目的。

  2. 添加审查员:指定其他团队成员作为审查员,他们将审查代码并提出建议或要求修改。

  3. 讨论与迭代:根据审查反馈,在自己的分支上进行必要的修改,然后推送到远程分支。

    git push origin feature/new-feature
    
  4. 合并:审查通过后,可以安全地将分支合并到主分支。

5-3、分支策略与版本发布

采用合理的分支策略能有效管理版本发布:

  • 主分支(main/master):代表当前稳定版本,只接受经过测试和审查的代码合并。
  • 开发分支(develop):日常开发分支,所有新功能和修复均在此分支上开发。
  • 特性分支(feature/*):针对特定功能或修复的分支,开发完成后合并回develop。
  • 发布分支(release/*):从develop分支分出,用于准备新版本发布,最终合并至main并打标签。

版本发布时,使用以下命令打标签:

git tag -a v1.0.0 -m "Version 1.0.0 release"
git push origin v1.0.0

5-4、持续集成与持续部署(CI/CD)

CI/CD流程自动化了代码构建、测试和部署过程,保证快速且可靠的交付。

  1. 配置CI服务器:使用Jenkins、GitLab CI/CD、Travis CI等工具配置自动构建和测试。

  2. 编写yaml文件:定义自动化流程,包括构建触发条件、测试命令、部署步骤等。

    # 示例:GitLab CI YAML 配置
    stages:- build- test- deploybuild:stage: buildscript:- npm install- npm run buildtest:stage: testscript:- npm testdeploy:stage: deployscript:- ssh user@server "cd /var/www/my_app && git pull origin main"
    
  3. 监控与优化:持续监控CI/CD流程,根据需要调整优化,确保高效稳定运行。

5-5、多人协作最佳实践

  1. 保持通讯透明:定期同步进度,使用Issue、PR注释或团队沟通工具讨论问题。
  2. 频繁提交并推送:小而频繁的提交有助于追踪更改历史和问题定位。
  3. 尊重代码所有权:在修改他人代码前,通过评论或聊天工具进行沟通。
  4. 定期同步远程分支:确保本地工作基于最新的远程分支,减少合并冲突。
  5. 学习和分享:团队内部定期分享Git高级技巧,提升整体协作效率。

总结

talk is cheap, show me the code !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「动态规划」如何求最小路径和?

64. 最小路径和https://leetcode.cn/problems/minimum-path-sum/description/ 给定一个包含非负整数的m x n网格grid&#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。说明&#xff1a;每次只能向下或者向右移动一步。 输入&#xff1a;…

《嵌入式系统导论》

计算题 已知位带别名基地址为0x220000000,计算位于位带区的0x200FFFFF地址的数据位7,计算它对应的位带别名区地址。 别名地址=位带别名基地址+字节偏移量x32+位号x4 别名地址=0x22000000+(0x200FFFFF -0x20000000)*32+7*4=0x220000807 分析如下基本定时器配置语句。 { ………

ctfshow-web入门-命令执行(web37-web40)

目录 1、web37 2、web38 3、web39 4、web40 命令执行&#xff0c;需要严格的过滤 1、web37 使用 php 伪协议&#xff1a; ?cphp://input post 写入我们希望执行的 php 代码&#xff1a; <?php system(tac f*);?> 拿到 flag&#xff1a;ctfshow{5c555d9a-6f55…

Mongodb数组元素更新之使用$定位数组第一个元素

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第63篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。 阅读了不少Mongodb的文章&#xff0c;也和同事交流过。Mongodb数组更新是比较难理解的地方&#x…

EXCEL多sheet添加目录跳转

EXCEL多sheet添加目录跳转 背景 excel中有几十个sheet&#xff0c;点下方左右切换sheet太耗时&#xff0c;希望可以有根据sheet名超链接跳转相应sheet&#xff0c;处理完后再跳回原sheet。 方案一 新建目录sheet&#xff0c;在A1写sheet名&#xff0c;右键选择最下方超链接…

问题:材料题请点击右侧查看材料问题 查看材料 #学习方法#经验分享#学习方法

问题&#xff1a;材料题请点击右侧查看材料问题 查看材料 A.Colleges may reduce their enrollment. B.Top universities become increasingly competitive. C.Universities become selective in student admission. D.Colleges invest less in academy and infrastructure…

Go 文件压缩解压

在Go语言中&#xff0c;archive/zip包提供了创建、读取和解压缩ZIP格式文件的功能。 一、创建ZIP文件并添加内容----压缩 package mainimport ("archive/zip""bytes""fmt""io""log""os" )func main() {// 创建一…

el-input中change事件造成的坑

el-input中change事件造成的坑 一、change事件定义二、如果仅回车时候触发 一、change事件定义 仅在输入框失去焦点或用户按下回车时触发 二、如果仅回车时候触发 <el-inputv-model.trim"questionInput"placeholder"请输入你的问题&#xff0c;按回车发送&…

智慧视觉怎么识别视频?智慧机器视觉是通过什么步骤识别视频的?

智慧视觉功能怎么识别视频&#xff1f;智慧视觉是搭载在智能设备比如手机、AI盒子、机器视觉系统上的一个应用程序或特性&#xff0c;采用计算机视觉和人工智能的技术来识别图像或视频中的内容。如果想了解视频识别&#xff0c;就要明白智慧视觉功能会涉及的以下几个关键步骤和…

pxe自动装机

概念 pxe是c/s模式。允许客户端通过网络从远程服务器&#xff08;服务端&#xff09;下载引导镜像&#xff0c;加载安装文件&#xff0c;实现自动化安装操作系统。 无人值守&#xff1a;安装选项不需要人为干预&#xff0c;可以自动化实现。 pxe的优点&#xff1a;1.规模化&…

机器人阻抗控制中的机械阻抗模型

机器人阻抗控制中的机械阻抗模型主要涉及到通过修改机器人与环境接触作业的动力学模型&#xff0c;使其等效为一个期望的阻抗&#xff08;弹簧-质量-阻尼&#xff09;模型。以下是对机械阻抗模型在机器人阻抗控制中的详细解释&#xff1a; 阻抗控制原理&#xff1a; 机器人阻抗…

Python——泰坦尼克号数据分析

目录 🧾1.数据集(部分数据) ✏️ 2、导入数据集与必要模块 ⌨️ 3.数据预处理 1️⃣ isnull函数查看有无缺失值 2️⃣fillna函数填充缺失值 📍 Age字段使用平均值填充缺失值 📍 Embarked字段填充缺失值 3️⃣ 删除缺失值较多的字段 📊 4.数据可视化 1️⃣ di…

流媒体服务器SMS-语音对讲(二)

1.简介 上篇文件介绍了流媒体与设备之间可能的交互场景&#xff0c;本文将介绍客户端或者web端与摄像头对讲的总体流程。 老规矩&#xff0c;介绍一下本人的开源流媒体&#xff0c;点个star&#xff0c;有兴趣一起开发的朋友也可以联系本人&#xff1a;https://gitee.com/inyem…

PostgreSQL的发布和订阅功能

发布和订阅功能在 PostgreSQL 9.0 版本中首次引入,并进一步改进和增强了后续版本中。所以,从 PostgreSQL 9.0 版本开始,就可以使用发布和订阅功能来实现数据复制和同步 发布和订阅功能在 PostgreSQL 中提供了一种灵活、可靠的数据复制和同步机制,具有许多优点和一些缺点:…

[数据集][目标检测]医疗防护服检测数据集VOC+YOLO格式649张7类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;649 标注数量(xml文件个数)&#xff1a;649 标注数量(txt文件个数)&#xff1a;649 标注类别…

echarts学习: 在图表中添加多条y轴会怎么样?

前言 在撰写如何绘制双y轴图表文章时&#xff0c;我突然萌生出了一个想法&#xff0c;如果给图表添加两个以上的y轴会怎么样呢? 带着这个问题我开始了自己的探索之旅。 我找到了一篇优秀的文章作为参考&#xff0c;虽然它需要付费&#xff0c;但是不要紧&#xff0c;文中免费…

Vulnhub-DC-4

靶机IP:192.168.20.138 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫下端口及版本 dirsearch扫下目录 没发现什么敏感信息&#xff0c;看下前端界面 想到会不会存在SQL注入&#xff0c;弱密码等漏洞。 经过测试SQL注入…

k8s网络问题以及容器跨宿主机通信原理

【0】资源配置文件 [rootmcwk8s03 mcwtest]# ls mcwdeploy.yaml [rootmcwk8s03 mcwtest]# cat mcwdeploy.yaml apiVersion: apps/v1 kind: Deployment metadata:labels:app: mcwpythonname: mcwtest-deploy spec:replicas: 1selector:matchLabels:app: mcwpythontemplate:met…

Linux进程间通信之管道

进程间通信介绍&#xff1a; 进程间通信的概念&#xff1a; 进程间通信简称IPC&#xff08;Interprocess communication&#xff09;&#xff0c;进程间通信就是在不同进程之间传播或交换信息。 进程间通信的目的&#xff1a; 数据传输&#xff1a; 一个进程需要将它的数据…