Git详解和命令大全
目录
- 一、Git 的基本概念
- 二、Git 的安装和使用
- 三、Git 的版本分支管理
- 四、Git 的命令大全
- 1. 常用命令
- 2. 命令大全
- 五、版本分支管理的最佳实践
- 六、Git 实践
- 七、高级特性
- 八、Git 的未来发展
Git 是一款开源的分布式版本控制系统,可以有效地处理从小到非常大的项目版本管理。Git 最初由 Linus Torvalds 创建,并在 2005 年正式发布。Git 的主要优点包括易于学习、速度快、占用空间小、分支管理灵活、合并冲突解决简单等。本教程将为您详细讲解 Git 的基本概念、命令和使用方法,以及版本分支管理的最佳实践。
一、Git 的基本概念
- 仓库(Repository):Git 仓库是 Git 管理的代码存储库,可以包含一个或多个项目。每个仓库都有一个唯一的名称和地址,可以用来区分不同的仓库。
- 提交(Commit):Git 提交是将代码更改打包成逻辑单位的操作。每次提交都会生成一个唯一的提交号,并将其添加到版本库中。
- 分支(Branch):Git 分支是代码库中的一个副本,可以独立地进行修改和合并。分支可以用来创建新功能、修复 bug 或者进行实验性修改等。
- 合并(Merge):Git 合并是将两个或多个分支的修改合并到一个分支中的操作。合并可以用来将功能分支合并到主分支,或将主分支合并到其他分支中。
- 冲突(Conflict):Git 冲突是在合并分支时发生的一种情况,表示两个分支修改了相同的代码文件,且修改内容不同。冲突需要手动解决,然后才能继续合并。
- 撤销(Undo):Git 撤销是取消已经提交的代码更改的操作。撤销可以用来纠正提交时的错误或者恢复先前的代码状态。
二、Git 的安装和使用
- 安装 Git:Git 可以在多种操作系统上运行,包括 Windows、macOS 和 Linux。您可以从 Git 官方网站(https://git-scm.com/downloads)下载适合您操作系统的 Git 安装包,然后按照安装向导进行安装。
- 配置 Git:在安装 Git 后,您需要配置 Git 的一些基本参数。这些参数包括用户名、邮箱、编辑器等。您可以通过创建一个名为
.gitconfig
的文件来配置 Git 参数,该文件位于您的用户目录下。 - 初始化 Git 仓库:在安装和配置 Git 后,您需要初始化一个 Git 仓库。您可以使用
git init
命令来创建一个新的 Git 仓库。该命令将在当前目录下创建一个名为.git
的隐藏目录,用于存储 Git 的元数据。 - 添加代码到 Git 仓库:您可以使用
git add
命令将代码添加到 Git 仓库的暂存区中。然后,使用git commit
命令将暂存区的代码提交到 Git 仓库中。 - 推送代码到远程仓库:当您完成代码的提交后,您可以使用
git push
命令将代码推送到远程仓库中。这将把本地 Git 仓库中的代码更新到远程仓库中。
三、Git 的版本分支管理
- 创建分支:您可以使用
git branch
命令创建一个新的分支。例如,您可以创建一个名为feature/xxx
的分支,用于存储一个新的功能。 - 切换分支:您可以使用
git checkout
命令切换到指定的分支。例如,您可以使用git checkout feature/xxx
命令切换到名为feature/xxx
的分支。 - 合并分支:当您完成一个新功能的开发后,您可以使用
git merge
命令将该功能的分支合并到主分支(Master)中。例如,您可以使用git merge feature/xxx
命令将名为feature/xxx
的分支合并到主分支中。 - 删除分支:当您不再需要一个分支时,您可以使用
git branch
命令删除该分支。例如,您可以使用git branch -d feature/xxx
命令删除名为feature/xxx
的分支。
四、Git 的命令大全
1. 常用命令
- 初始化仓库(Initialize Repository):
git init
该命令用于创建一个新的 Git 仓库。执行该命令后,系统会生成一个 .git
目录,该目录包含了仓库的元数据和版本库。
2. 添加文件到暂存区(Add File to Index):
git add <file>
该命令用于将指定的文件添加到暂存区。暂存区是 Git 仓库中的一种中间状态,用于存储将要提交的代码更改。
3. 提交更改到暂存区(Commit Changes to Index):
git commit -m "commit message"
该命令用于将暂存区中的代码更改提交到版本库。-m
参数指定提交信息,用于描述本次提交的内容。
4. 创建新分支(Create New Branch):
git branch <branch-name>
该命令用于创建一个新的分支。<branch-name>
参数指定新分支的名称。
5. 切换到指定分支(Checkout Specific Branch):
git checkout <branch-name>
该命令用于将当前分支切换到指定的分支。<branch-name>
参数指定要切换到的分支名称。
6. 合并指定分支(Merge Specific Branch):
git merge <branch-name>
该命令用于将指定的分支合并到当前分支。<branch-name>
参数指定要合并的分支名称。
7. 解决冲突(Resolve Conflicts):
git resolve <conflict-file>
该命令用于解决冲突。<conflict-file>
参数指定发生冲突的文件名。冲突解决后,可以使用 git merge --continue
命令继续合并操作。
8. 撤销提交(Undo Commit):
git reset --no-hard <commit-id>
该命令用于撤销指定提交的代码更改。<commit-id>
参数指定要撤销的提交号。使用该命令会保留提交的提交信息,但代码状态会被恢复到提交前的状态。
9. 删除分支(Delete Branch):
git branch -d <branch-name>
该命令用于删除指定的分支。<branch-name>
参数指定要删除的分支名称。
10. 查看仓库状态(View Repository Status):
git status
该命令用于查看仓库当前的状态,包括暂存区中的文件、未合并的分支、提交历史等信息。
11. 查看指定文件的历史版本(View History of Specific File):
git log -- <file>
该命令用于查看指定文件的历史版本。<file>
参数指定要查看的历史版本的文件名。
12. 查看分支历史(View Branch History):
git log --oneline --graph --decorate --all <branch-name>
该命令用于查看指定分支的历史。<branch-name>
参数指定要查看的分支名称。该命令会显示分支的合并历史、提交信息以及每个提交的父提交号。
2. 命令大全
- 创建一个新的 Git 仓库:
git init
- 配置 Git 参数:
git config
- 初始化 Git 仓库:
git init
- 添加代码到 Git 仓库:
git add
- 提交代码到 Git 仓库:
git commit
- 推送代码到远程仓库:
git push
- 创建一个新的分支:
git branch
- 切换到指定的分支:
git checkout
- 合并指定的分支:
git merge
- 删除指定的分支:
git branch -d
- 查看 Git 仓库的状态:
git status
- 查看指定文件的历史版本:
git log -- <file>
- 撤销最后的提交:
git reset --hard HEAD~1
- 显示 Git 仓库的版本信息:
git version
- 显示当前分支的信息:
git branch
- 显示远程仓库的信息:
git remote
- 显示指定分支的合并基础:
git merge-base
- 显示指定分支的祖先:
git ancestry
- 切换到上一个分支:
git checkout --switch-to
- 切换到下一个分支:
git checkout --next-branch
- 显示当前分支的未合并提交:
git log --oneline
- 显示当前分支的合并提交:
git log --graph
- 显示当前分支的代码差异:
git diff
- 显示当前分支与远程仓库的差异:
git fetch
- 将本地分支与远程分支合并:
git pull
- 将本地分支推送到远程仓库:
git push
- 创建一个新的标签:
git tag
- 删除一个标签:
git tag -d
- 查看标签信息:
git tag -l
- 检查代码的语法:
git lint
- 编译代码:
git compile
- 提交编译后的代码:
git commit
- 部署代码:
git deploy
- 查看部署日志:
git log --deploy
- 创建一个新的 wiki 页面:
git wiki
- 查看 wiki 页面:
git wiki -l
- 编辑 wiki 页面:
git wiki edit <page>
- 保存 wiki 页面:
git wiki save <page>
- 删除 wiki 页面:
git wiki delete <page>
- 查看 Git 仓库的许可证信息:
git license
- 修改 Git 仓库的许可证信息:
git license update
- 检查 Git 仓库的完整性:
git verify
- 修复 Git 仓库的错误:
git repair
- 优化 Git 仓库的性能:
git gc
- 查看 Git 仓库的垃圾回收状态:
git prune
- 清理 Git 仓库的垃圾:
git clean
- 查看 Git 仓库的 network 状态:
git network
- 配置 Git 代理:
git proxy
- 查看 Git 仓库的用户信息:
git user
- 修改 Git 仓库的用户信息:
git user update
以上就是 Git 的一些常用命令和功能介绍。通过学习和实践,您可以逐渐掌握 Git 的使用方法,并享受到 Git 带来的便捷和好处。
五、版本分支管理的最佳实践
- 主分支(Master Branch):主分支是代码库的主要分支,通常命名为
master
或main
。该分支应该保持稳定的代码状态,并且只包含经过测试和验证的代码更改。 - 开发分支(Development Branch):开发分支是开发人员进行代码修改和测试的分支。该分支应该经常更新,以便开发人员可以共享代码并进行协作。
- 功能分支(Feature Branch):功能分支是用于开发新功能或修复 bug 的分支。该分支应该从主分支分出,并在完成后合并回主分支。
- 修复分支(Hotfix Branch):修复分支是用于紧急修复已发布版本的分支。该分支应该从主分支分出,并在修复问题后合并回主分支和开发分支。
- 发布分支(Release Branch):发布分支是用于准备新版本发布的分支。该分支应该从主分支分出,并在发布后被合并回主分支和开发分支。
- 分支命名规范:分支命名应该遵循清晰的命名规范,以便其他人能够轻松理解分支的目的和内容。通常,分支名称应该包含功能名称、版本号等信息。
- 分支合并策略:在合并分支时,应该采用正确的合并策略,以确保代码库的稳定性和可维护性。通常,合并策略包括以下几种:
- 合并功能分支:在功能分支完成后,应该将其合并回主分支和开发分支。合并时,应该使用
git merge
命令,并解决可能出现的冲突。 - 合并修复分支:在修复分支完成后,应该将其合并回主分支和开发分支。合并时,应该使用
git merge
命令,并解决可能出现的冲突。 - 合并发布分支:在发布分支完成后,应该将其合并回主分支和开发分支。合并时,应该使用
git merge
命令,并解决可能出现的冲突。
- 分支管理工具:使用分支管理工具可以帮助开发团队更好地管理分支。例如,使用 GitLab、GitHub 等 Git 托管服务可以方便地创建、合并和管理分支。
六、Git 实践
以下是一个简单的 Git 实践,可以帮助您更好地理解 Git 的基本概念和操作方法:
- 初始化仓库:创建一个新的 Git 仓库,并添加一个名为
README.md
的文件。
git init
touch README.md
- 添加文件到暂存区:将
README.md
文件添加到暂存区。
git add README.md
- 提交更改:提交暂存区中的更改。
git commit -m "Add README.md file"
- 创建新分支:创建一个名为
feature/add-new-functionality
的新分支。
git checkout -b feature/add-new-functionality
- 添加新文件:在新分支中添加一个名为
new-functionality.md
的文件。
touch new-functionality.md
- 提交更改:提交新分支中的更改。
git commit -m "Add new functionality to the project"
- 合并分支:将新分支合并回主分支。
git checkout master
git merge feature/add-new-functionality
- 解决冲突:如果合并过程中出现冲突,使用
git resolve
命令解决冲突。
git resolve new-functionality.md
- 提交合并后的代码:提交合并后的代码。
git commit -m "Merge feature branch"
- 发布代码:将合并后的代码发布到远程仓库。
git push origin master
以上是一个简单的 Git 实践,可以帮助您更好地理解 Git 的基本概念和操作方法。在实际开发过程中,您可能需要根据具体情况调整分支策略、合并策略等,以满足项目需求。
七、高级特性
- 配置 Git 仓库
在 Git 中,可以通过配置 Git 仓库,对仓库进行高级设置。配置 Git 仓库时,需要指定仓库的基本信息和访问权限。基本信息包括仓库名、描述、网址等,访问权限包括读写权限、分支保护等。通过配置 Git 仓库,可以有效地保护仓库中的代码安全和完整性。 - 管理 Git 用户
在 Git 中,可以通过管理 Git 用户,对仓库中的用户进行高级设置。管理 Git 用户时,需要指定用户的基本信息和访问权限。基本信息包括用户名、邮箱、密码等,访问权限包括读写权限、分支保护等。通过管理 Git 用户,可以有效地控制仓库中代码的访问权限和安全性。 - 创建 Git hooks
在 Git 中,可以通过创建 Git hooks,对仓库进行高级操作。Git hooks 是一种在 Git 仓库中执行特定任务的脚本,可以应用于多个场景,如提交代码、更新索引、删除分支等。通过创建 Git hooks,可以自定义 Git 仓库的操作流程,提高代码管理的灵活性和可控性。 - 管理 Git 标签
在 Git 中,可以通过管理 Git 标签,对仓库中的代码进行高级操作。Git 标签 是一种在 Git 仓库中标记特定版本的方法,可以用于记录版本的更新、功能的发布等。通过管理 Git 标签,可以方便地跟踪代码版本的变更和更新,提高代码管理的效率和可靠性。 - 使用 Git 仓库管理工具
在 Git 中,可以通过使用 Git 仓库管理工具,对仓库进行高级操作。Git 仓库管理工具 是一种在 Git 仓库中执行特定任务的工具,可以应用于多个场景,如代码合并、分支管理、代码审查等。通过使用 Git 仓库管理工具,可以提高代码管理的效率和可靠性,减少手动操作的错误和风险。
八、Git 的未来发展
随着软件开发和版本控制的需求不断增长,Git 作为一种开源的分布式版本控制系统,在未来有着广阔的发展空间。以下是 Git 未来发展的一些趋势和方向:
- 功能拓展:Git 将继续拓展其功能,以满足开发者日益增长的需求。例如,Git 可以增加对更多编程语言和开发环境的支持,提供更多的插件和扩展,以实现更广泛的代码管理功能。
- 性能优化:Git 将继续优化其性能,提高代码管理的效率和速度。例如,Git 可以通过提高索引和查找效率、优化网络通信协议等方式,提高代码管理的性能。
- 安全增强:Git 将继续加强其安全性,保护开发者的代码和隐私。例如,Git 可以增加对代码加密和身份认证的支持,提供更安全的代码管理环境。
4.易用性提升:Git 在未来将更加关注用户体验,提高其易用性。这可能包括提供更友好的界面、简化操作流程、提供更好的文档和教程等,以降低学习成本和使用难度,让更多开发者愿意采用 Git。 - 云原生支持:随着云原生技术的发展,Git 将进一步拓展对云原生环境的支持,例如容器化、微服务等。这可能包括对 Kubernetes、Docker 等技术的集成,以便在云原生环境中实现更便捷的代码管理和部署。
- 跨平台兼容:Git 将继续提高跨平台兼容性,以便开发者可以在各种操作系统和设备上使用 Git,实现代码管理的便捷性和一致性。
- 机器学习应用:随着机器学习技术的发展,Git 可能会引入机器学习算法,以实现更智能的代码管理和推荐。例如,根据开发者的代码习惯和历史操作,Git 可以自动推荐合适的代码模板、插件或扩展。
- 开放生态系统:Git 将继续推动开放生态系统的建设,鼓励更多开发者参与 Git 的开发和推广。这可能包括举办开发者社区活动、提供开源项目资助等,以促进 Git 生态系统的繁荣和发展。
总之,Git 在未来将继续发展,并引入更多新功能和工具,以满足开发人员的需求。同时,Git 将更加关注用户体验和安全性,以便更好地服务于开发者。
相关文章:
Git详解和命令大全
目录 一、Git 的基本概念二、Git 的安装和使用三、Git 的版本分支管理四、Git 的命令大全1. 常用命令2. 命令大全 五、版本分支管理的最佳实践六、Git 实践七、高级特性八、Git 的未来发展 Git 是一款开源的分布式版本控制系统,可以有效地处理从小到非常大的项目版本…...

北漂Java程序员入职五个月的收获总结
👨💻博主主页:小尘要自信 👨💻本文专栏:Java程序员的成长 👨💻上一篇文章:告别过去,拥抱未来:一个Java开发者的成长之路 👨&a…...

Android系统的进程管理(创建->优先级->回收)
一、进程的创建 1、概述 Android系统以Linux内核为基础,所以对于进程的管理自然离不开Linux本身提供的机制。例如: 通过fork来创建进行通过信号量来管理进程通过proc文件系统来查询和调整进程状态 等 对于Android来说,进程管理的主要内容…...

C#界面美化小技巧
1.窗体设置为无边框 FormBorderStyle的属性设置为none 2.窗体无边框,可以拖拽 private Point mPoint new Point(); private void Download_MouseDown(object sender, MouseEventArgs e) { mPoint.X e.X; mPoint.Y e.Y; …...

‘vite‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
1.切换到工程目录下 2.执行npm install(最关键的一步了!!) 3. 最后直接运行:npm run dev 4.浏览器直接打开就行了!...

Linux下查阅帮助文档必学命令 man
Linux操作系统的使用中,我们经常会遇到很多问题,这个时候查询文档的能力至关重要,黄老师来推荐大家使用man,这时我们必须掌握的查阅能力: 最常用的命令: man 名称 man 数字(1~9) 名称 这里的数字分别代表:...

uniapp scroll-view显示滚动条
在style中添加样式: ::v-deep ::-webkit-scrollbar {/* 滚动条整体样式 */display: block;width: 10rpx !important;height: 10rpx !important;-webkit-appearance: auto !important;background: transparent;overflow: auto !important;}::v-deep ::-webkit-scroll…...

15、PHP神奇的数组索引替代
1、有数字索引指定的数组元素时,以数字索引的为准。 <?php $aarray(a,b,1>c,5>"d","e"); print_r($a); ?> 输出结果:b的位置直接被c替代了,e 的值为最大的整数索引1。 PHP不这么搞,怎么可能成…...

同为科技(TOWE)带热插拔功能机柜PDU插座的应用
所谓热插拔(hot-plugging或Hot Swap),即带电插拔,指的是在不关闭系统电源的情况下,将模块、板卡插入或拔出系统而不影响系统的正常工作,从而提高了系统的可靠性、快速维修性、冗余性和对灾难的及时恢复能力…...
GR5526 128BIT UUID改16BIT UUID
以下两个宏定义是我添加的。其中USING_128BIT_UUID的条件编译部分是SDK原生部分,USING_16BIT_UUID条件编译部分则是由我修改,通过这样的修改,128BIT UUID就变更为16BIT UUID了。如果你的广播、扫描响应有涉及UUID,不要忘记更改它。…...
【Android】使用 CameraX 实现基础拍照功能
目录 目录 1. 基础开发环境 2. 添加相关依赖 3. APP 布局 4. 主流程逻辑 5. 调试或安装 APK 1. 基础开发环境 JDK:JDK17 Android Studio:Android Studio Giraffe | 2022.3.1 Android SDK:Android API 34 Gradle: gradle-7.2-bin.zip Ca…...

刷题笔记 day2
力扣 1089 复写零 思路:双指针 第一步:利用指针 cur 去记录最后一位要复写的数 , 利用指针 dest 指向最后一位数所要复写的位置; 实现过程:最开始 cur 指向0,dest 指向 -1 , 当arr[cur] ! …...

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测
回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SO-CNN-LS…...

使用UltraISO制作麒麟v10系统盘
大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步! 我的主页:早九晚十二 文章目录 1 背景2 准备工作2.1 镜像准备2.2 制作工具2.3 启动U盘 3 制作步骤3.1 找到ISO文件,右…...

【RabbitMQ】之消息的可靠性方案
目录 一、数据丢失场景二、数据可靠性方案 1、生产者丢失消息解决方案2、MQ 队列丢失消息解决方案3、消费者丢失消息解决方案 一、数据丢失场景 MQ 消息数据完整的链路为:从 Producer 发送消息到 RabbitMQ 服务器中,再由 Broker 服务的 Exchange 根据…...

性能测试/负载测试/压力测试之间的区别
做测试一年多来,虽然平时的工作都能很好的完成,但最近突然发现自己在关于测试的整体知识体系上面的了解很是欠缺,所以,在工作之余也做了一些测试方面的知识的补充。不足之处,还请大家多多交流,互相学习。 …...

Mybatis ,Mybatis-plus列表多字段排序,包含sql以及warpper
根据 mybatis 根据多字段排序已经wrapper 根据多字段排序 首先根据咱们返回前端的数据列来规划好排序字段 如下: 这里的字段为返回VO的字段,要转换成数据库字段然后加入到排序中 示例,穿了 surname,cerRank 多字段,然后是倒序 false 首先创建好映射&am…...
sonarqube PHP编码规范检查
一、PSR规范整理 PHP 已有的编码规范如下 https://blog.csdn.net/qq_40876291/article/details/103848172 1.1 基本编码规范:PSR1 官网规范链接 https://www.php-fig.org/psr/psr-1/ 文件只能使用<?php和<?标记。文件必须仅使用UTF-8,而不使…...
Kylin 麒麟 Qt软件 QtCreator 中文输入法问题
Kylin 麒麟 Qt软件 QtCreator 中文输入法问题 背景: QtCreator 和程序在麒麟系统下没法进行输入,或没法进行输入法的切换。 包括麒麟自带默认搜狗输入法的切换也不行。 使用下面的命令进行安装后,可以正常在QtCreator和程序中使用输入法。 …...

租赁固定资产管理
智能租赁资产管理系统可以为企业单位提供RFID资产管理系统。移动APP资产管理,准确总结易损耗品和固定资金,从入库到仓库库存实时跟踪,控制出库和入库的全过程。同时,备件和耗材与所属资产设备有关,便于备件的申请和管理…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...

【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...

GAN模式奔溃的探讨论文综述(一)
简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...