GIt快速入门(一文学会使用Git)

GIt快速入门

文章目录

  • GIt快速入门
    • 一、为什么要学习Git
    • 二、Git的安装
        • 1.安装Git
        • 2.下载GUI
    • 三、Git的概念
      • 1、版本控制
      • 2、集中式控制
      • 3、分布式控制
      • 4、多人协作开发
        • 1.并行开发
        • 2.分支管理
        • 3.冲突解决
        • 4.代码审查
        • 5.分布式特性
    • 四、Git客户端操作
      • 1.界面介绍
      • 2.提交操作
      • 3.创建分支
      • 4.合并分支
      • 5.合并冲突的解决
      • 6.标签的创建
      • 7.远程仓库的创建
        • 7.1 githup远程仓库创建
          • 7.1.1远程仓库的拉取
          • 7.1.2 本地仓库的上传与推送
        • 7.2 Gitee远程仓库创建
    • 五、Git集成
      • 1、IDE集成GitHub
      • 2、IDE集成Gitee
      • 3.推送
    • 六、Git版本号
      • 1、介绍
      • 2、文件操作
      • 3、分支操作
        • 1. 分支的概念
    • 七、Git命令
      • 1、初始化 Git 仓库
      • 2、查看当前状态
      • 3、常用命令
      • 4、提交更改
      • 5、查看提交历史
      • 6、恢复文件
      • 7、删除文件
      • 8、忽略文件
      • 9、移动和重命名文件
      • 10、撤销更改
      • 11、HTTPS方式操作
      • 12、ssh方式操作
        • 1. 生成SSH密钥对
        • 2. 查看公钥
        • 3. 在Git服务器上添加公钥
        • 4. 验证SSH连接
        • 5.注意事项
    • 八、总结

一、为什么要学习Git

Git软件在项目开发中扮演着至关重要的角色,它不仅仅是一个版本控制系统,更是团队协作、质量保证和持续集成的核心工具。

Git提供了强大的版本控制功能,确保项目历史的完整性和可追溯性。通过Git,开发者可以轻松地查看项目文件的每一次变更,包括修改的内容、时间、作者等信息。这使得团队成员能够清晰地了解项目的演进过程,及时发现和解决问题。

Git支持多人协作开发,通过分支功能实现并行工作。团队成员可以在各自的分支上进行独立的开发工作,而不会相互干扰。当开发完成后,可以通过合并请求(如GitHub的Pull Request)将更改合并到主分支,经过代码审查后再进行集成。这种工作模式大大提高了团队的协作效率,同时保证了代码质量。

Git还提供了代码审查的功能。团队成员在合并代码之前,可以对代码进行详细的审查,提出修改意见和建议。这有助于确保代码质量,减少潜在的问题和错误。同时,代码审查也是团队成员之间相互学习和交流的好机会。

在项目开发过程中,Git还可以帮助开发者进行错误追踪与回滚。如果项目中出现了问题,开发者可以通过查看提交历史来定位问题的来源。一旦找到问题,可以使用Git的回滚功能将项目恢复到之前的状态,从而迅速解决问题。

除了以上功能外,Git还具有跨平台兼容性,可以在不同的操作系统上运行。这使得团队成员可以在不同的平台上无缝协作,无需担心因平台差异导致的兼容性问题。

最后,Git可以与其他工具集成,实现持续集成与部署。通过与自动化测试、构建和部署工具的结合,Git可以实现项目的自动化构建、测试和部署,从而加速软件开发生命周期,提高项目的交付效率。Git在项目开发中发挥着不可替代的作用。它不仅是版本控制的利器,更是团队协作、质量保证和持续集成的核心工具。通过Git,我们可以更好地管理项目、提高开发效率、保证代码质量,并实现快速交付。

二、Git的安装

1.安装Git

浏览器搜索git官网,这里以Windows系统为例
在这里插入图片描述

选择系统点击安装

在这里插入图片描述

安装过程可一路next。

2.下载GUI

在这里插入图片描述

打开后可以直接选择第一个下载。

在这里插入图片描述

选择GitHub Desktop下载可执行程序。

三、Git的概念

1、版本控制

我们都知道版本通常分为软件版本和文件版本,软件版本以数字版本号为例,我们知道数字越大代表我们的版本越新,而文件版本呢?例如我们有一份重要的文件,我们需要修改,而原文件的内容又比较重要,这时我们就需要复制一份进行我们的修改,假如命名为XXX_v1,而这个名字就可以理解为版本号。而文件版本最主要的作用就是保存重要的历史记录以及恢复重要的历史记录。但当我们文件非常多时,我们还能通过复制一份来进行更改吗,显然是不能了。这时,我们的版本控制工具就派上了用场。

2、集中式控制

集中式版本控制系统(如SVN)的特点主要包括:

中央服务器:所有的版本数据都存储在中央服务器上,开发者在本地工作,并通过网络从中央服务器获取最新的代码,或提交自己的更改。
单点故障:由于所有版本数据都存储在中央服务器上,如果服务器出现问题(如宕机),那么所有开发者都无法进行版本控制操作,直到服务器恢复。
权限管理:管理员可以轻松地掌控每个开发者的权限,确保项目的安全性和可控性。

3、分布式控制

Git的分布式特性使其与集中式版本控制系统有着显著的区别:

本地仓库:每个开发者都有一个完整的本地仓库,包含了整个项目的所有历史版本数据。这意味着即使在没有网络连接的情况下,开发者也可以进行版本控制操作。
远程仓库:远程仓库(如GitHub、GitLab等)用于多人协作和代码共享。开发者可以将自己的本地仓库推送到远程仓库,或从远程仓库拉取最新的代码。
分支管理:Git的分支功能非常强大,可以轻松创建、合并和删除分支。这使得开发者可以在不同的分支上进行并行开发,而不会相互干扰。
自动合并:当多个开发者对同一部分代码进行了修改时,Git会尝试自动合并这些更改。如果合并过程中出现冲突,Git会提示开发者手动解决冲突。

4、多人协作开发

Git多人协作是一种高效、灵活的软件开发模式,它充分利用了Git的分布式版本控制特性,使得团队成员能够并行工作、共享代码,并轻松管理代码的版本和变更。

1.并行开发

Git允许多个开发者同时在同一项目上工作,每个开发者都可以在本地创建自己的分支进行开发。每个分支都是独立的,开发者可以在自己的分支上进行修改和提交,而不会影响其他人的工作。
这种并行开发模式可以大大加快开发的进度,提高团队的效率。

2.分支管理

Git支持创建多个分支,开发者可以在不同的功能或修复任务上并行工作。每个分支都可以看作是一个独立的工作流,使得多个任务可以同时进行,互不干扰。
分支的创建、合并和删除都非常灵活和简单,通过Git命令可以轻松管理。

3.冲突解决

当多个开发者同时修改同一部分代码时,Git会提示冲突。通过Git的冲突解决机制,团队成员可以清晰地看到哪里存在冲突,并快速地进行合并,确保代码的正确性。
Git的冲突解决过程通常是可视化的,可以使用文本编辑器或专门的合并工具进行编辑和比较。

4.代码审查

Git可以与各种代码审查工具集成,帮助团队成员相互审查代码,提高代码质量。代码审查可以发现潜在的问题、错误和不良实践,并及时进行修复和改进。

5.分布式特性

Git的分布式特性使得每个开发者都拥有完整的项目副本,不依赖于服务器的稳定性和网络连接。即使服务器宕机或者网络中断,开发者仍然可以进行提交、分支合并等操作。每个开发者都可以在本地进行版本控制和文件管理,大大减少了对中央服务器的依赖。

在实际项目中,团队可以使用Git进行多人协作开发。首先,需要初始化一个Git仓库,并将所有开发者添加到仓库的访问列表中。
开发者可以在本地创建分支,进行开发和测试。当完成开发后,可以将本地分支推送到远程仓库,并与其他开发者共享代码。
其他开发者可以从远程仓库拉取最新的代码,并在自己的分支上进行修改和提交。通过Git的合并功能,可以将多个分支的代码合并到主分支中,完成项目的集成和发布。

Git多人协作是一种高效、灵活的软件开发模式,它通过分布式版本控制特性实现了多人同时工作、并行开发和代码共享。Git的分支管理、冲突解决、代码审查和分布式特性等优势使得团队能够更高效地进行软件开发和协作。

四、Git客户端操作

1.界面介绍

在这里插入图片描述

第一个选项表示克隆一个仓库到本地,表示将互联网的仓库拉取到本地。

第二个选项表示在本地创建一个新的仓库。

第三个表示添加已有仓库到软件的列表。

2.提交操作

在这里插入图片描述

软件页面左侧会显示本地更改的文件,填写摘要Summary(required),点击下方的Commit to maser完成文件提交。

3.创建分支

在这里插入图片描述

点击分支选项卡下拉菜单,点击new brance添加新的分支。

4.合并分支

选择上图中最下面的选项卡,选择要合并的分支。

5.合并冲突的解决

例如这是两个冲突文件的内容

在这里插入图片描述
这表示第一个文件的内容是user第二个文件的内容是order,可自行选择要保留的文件,将内容以外的其他东西删除,表示将两个文件的内容进行合并。

6.标签的创建

在这里插入图片描述

点击此选项卡创建标签,以此来标记每次操作的目的。

7.远程仓库的创建

7.1 githup远程仓库创建

打开官网选择登录后点击主页new选项卡开始创建仓库。

在这里插入图片描述

在这里插入图片描述
填写仓库名称和描述,选择最下方Creat按钮完成创建。

在这里插入图片描述

仓库创建完成。

7.1.1远程仓库的拉取

点击文件file选项卡,点击Options登录与Githup相同的账户。

在这里插入图片描述
再次点击文件选项卡,点击克隆(下载)仓库到本地

在这里插入图片描述

选择要下载的远程仓库,以及位置。

在这里插入图片描述

7.1.2 本地仓库的上传与推送

上传指将文件上传至本地仓库,推送指将代码推送至远程仓库。

点击commit to main上传至main分支

在这里插入图片描述
点击Publish brance将文件推送至远程仓库。

在这里插入图片描述

刷新远程仓库即可发现推送文件。

在这里插入图片描述

7.2 Gitee远程仓库创建

创建过程与7.1基本相同,只是在下载远程仓库到本地时选择URL选项,添加Gitee仓库的URL。后续操作与7.1相同。

在这里插入图片描述
在这里插入图片描述

五、Git集成

1、IDE集成GitHub

这里IDE以CLion为例,进入软件后,点击githup,选择在上面共享项目。

在这里插入图片描述

登录账号,即可关联至远程仓库。

在这里插入图片描述

2、IDE集成Gitee

Gitee需要在插件市场下载插件Gitee,后续操作与1相同。

在这里插入图片描述

3.推送

点击分支,点击提交并推送,即可推送至远程仓库。

在这里插入图片描述
或右键需要推送的文件。
在这里插入图片描述

六、Git版本号

1、介绍

git共有40位版本号,前两位用于定位文件夹位置,其余38位用来定位文件内容。

2、文件操作

Git对文件操作,可以使用命令git cat-file -p + 文件版本号,命令需要运行在Git bush here 中,右键单击即可看到。

3、分支操作

Git的分支操作是指在Git版本控制系统中创建、切换、合并和删除分支的一系列命令和过程。分支是Git中一个非常重要的概念,它允许开发者在不影响主线(通常是mastermain分支)的情况下进行并行开发。以下是关于Git分支操作的详细解释:

1. 分支的概念

分支在Git中代表一条独立的开发线。每个分支都有自己的提交历史,允许开发者在不同的分支上并行工作。

使用分支的好处包括:

可以同时并行推进多个功能开发,提高开发效率。

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。

失败的分支可以删除并重新开始。

七、Git命令

Git 是一个版本控制系统,用于跟踪和管理代码更改。在使用 Git 时,你会经常与文件和目录进行交互。以下是一些基本的 Git 文件操作命令:

1、初始化 Git 仓库

如果你还没有 Git 仓库,你可以使用 git init 命令来初始化一个。

git init

2、查看当前状态

使用 git status 命令来查看当前仓库的状态,包括哪些文件被修改、哪些文件被添加到暂存区等。

git status

3、常用命令

使用 git add 命令将文件添加到暂存区。你可以添加单个文件,也可以使用通配符来添加多个文件。

# 添加单个文件
git add filename.txt

# 添加多个文件
git add file1.txt file2.txt

# 添加所有文件
git add .

# 创建新分支 xxx 注意:提交后才可以创建
git branch xxx

# 删除新分支
git branch -b xxx

# 切换新分支 xxx
git checkout xxx

# 创建并切换到xxx分支
git checkout -b xxx

# 增加标签
git tag xxx 文件版本号

# 删除标签
git tag -b xxx

4、提交更改

使用 git commit 命令将暂存区的更改提交到仓库。在提交时,通常需要提供一个描述更改的提交信息。

git commit -m "Describe your changes here"

5、查看提交历史

使用 git log 命令来查看提交历史。

git log

6、恢复文件

如果你不小心修改了文件并希望恢复到之前的版本,你可以使用 git restore 命令。

# 恢复文件 用于在本地仓库误删除文件
git restore xx.文件型号

7、删除文件

如果你希望从 Git 仓库中删除一个文件,你需要先删除文件本身(使用文件系统命令如 rm),然后使用 git addgit commit 来提交这个删除操作。

# 删除文件
rm filename.txt

# 添加删除操作到暂存区
git add filename.txt

# 提交删除操作
git commit -m "Remove filename.txt"

8、忽略文件

如果你希望 Git 忽略某些文件或目录(例如,编译生成的文件、配置文件等),你可以在仓库的根目录下创建一个名为 .gitignore 的文件,并在其中列出要忽略的文件或目录的模式。

9、移动和重命名文件

你可以使用文件系统命令(如 mv)来移动或重命名文件,然后使用 git addgit commit 来提交这个更改。Git 会识别文件的移动或重命名。

10、撤销更改

撤销暂存区的更改(但保留工作目录中的更改):git reset HEAD filename.txt

撤销最近的提交(创建一个新的提交来撤销更改):git revert HEAD

这些只是 Git 文件操作的基本命令。Git 还有许多其他功能和命令,可以帮助你更有效地管理代码和项目。

11、HTTPS方式操作

通过HTTPS推送需要设置用户名,操作命令如下:

# 初始化本地仓库 即在本地创建仓库
git  init 

# 链接远程仓库
git remote add origin https//.....

# 克隆远程仓库 git clone https://.....
git clone '仓库https链接'

# 配置单个仓库推送用户名
git config user.name xxxx

# 配置单个仓库推送邮箱地址
git config user.email xxxxx.xxx.com

# 配置全局推送用户名
git config --global user.name xxxx

# 配置全局推送邮箱地址
git config --global user.email xxxxx.xxx.com

# 添加单个文件
git add filename.txt

# 添加多个文件
git add file1.txt file2.txt

# 添加所有文件
git add .

# 增加同类型文件
git add *.文件类型

# 提交操作
git commit -m "Describe your changes here"

# 推送至远程仓库
git push master
 
# 拉取远程仓库到本地
git pull origin

12、ssh方式操作

Git的SSH方式操作流程主要包括以下几个步骤:

1. 生成SSH密钥对

首先,你需要在本地机器上生成SSH密钥对,这通常包括一个私钥(id_rsa)和一个公钥(id_rsa.pub)。私钥用于本地身份验证,公钥则上传到Git服务器用于验证你的身份。

在Windows系统上

  1. 打开Git Bash(或其他命令行工具)。

  2. 输入以下命令(替换your_email@example.com(ssh地址)为你的邮箱地址):

    ssh-keygen -t rsa -C "your_email@example.com"
    

    连续按三次回车,在命令行提示的路径下找到id_rsh.pub。复制公钥。

步骤与Windows系统类似,但通常可以直接在终端中执行上述命令。

2. 查看公钥

密钥对生成后,公钥通常保存在~/.ssh/id_rsa.pub(Linux/Mac)或C:\Users\你的用户名\.ssh\id_rsa.pub(Windows)中。你可以使用文本编辑器或cat命令(Linux/Mac)来查看公钥的内容。

3. 在Git服务器上添加公钥

接下来,你需要将公钥添加到Git服务器上,以便Git服务器能够验证你的身份。这个过程因Git服务器而异,但通常涉及以下步骤:

  1. 登录到你的Git服务器账户(如GitHub、Gitee等)。
  2. 导航到SSH密钥设置页面(通常位于用户设置或账户设置的“SSH and GPG keys”部分)。
  3. 点击“添加SSH密钥”或类似的按钮。
  4. 在弹出的表单中,输入一个标题(例如你的机器名或邮箱地址)和公钥内容。
  5. 点击“添加密钥”或类似的按钮保存设置。
4. 验证SSH连接

最后,你可以通过SSH命令来验证你的连接是否配置正确。在命令行中输入以下命令(替换git@your_git_server.com为你的Git服务器地址):

ssh -T git@your_git_server.com

如果连接成功,你应该会看到一个欢迎消息或类似的输出。如果出现错误消息,请检查你的SSH密钥是否已正确添加到Git服务器,以及你的SSH客户端配置是否正确。

通过命令连接远程仓库:

git remote add origin git@.....

# 初始化本地仓库 即在本地创建仓库
git  init 

# 添加单个文件
git add filename.txt

# 添加多个文件
git add file1.txt file2.txt

# 添加所有文件
git add .

# 增加同类型文件
git add *.文件类型

# 提交操作
git commit -m "Describe your changes here"

# 推送至远程仓库
git push master
 
# 拉取远程仓库到本地
git pull origin
5.注意事项
  • 请确保你的私钥文件(id_rsa)保存在安全的地方,不要将其共享给任何人。
  • 如果你在多个机器上使用Git,并且希望使用相同的SSH密钥进行身份验证,你可以将公钥添加到多个Git服务器上。但是,每个机器都应该有自己的私钥文件。
  • 如果你更改了私钥的密码短语或丢失了私钥文件,你将需要重新生成密钥对并将新的公钥添加到Git服务器上。这将导致现有的SSH连接失效,因此请确保在这样做之前通知你的团队成员或更新相关的文档。

八、总结

通过上述操作,我们使用了不同的方式完成了远程仓库和本地仓库的交互,我们可以更好地管理项目、提高开发效率、保证代码质量,并实现快速交付。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络I/O模型

网络I/O模型 同步I/O阻塞I/O非阻塞I/OI/O多路复用select函数接口示例 poll函数接口示例 poll 和 select 的区别epoll原理:示例 异步I/O 同步I/O 阻塞I/O 一个基本的C/S模型如下图所图:其中 listen()、connect()、write()、read() 都是阻塞I/O&#xff0…

Java面试题:Redis2_解决Redis缓存击穿问题

缓存击穿 当一个key过期时,需要对这个key进行数据重建 在重建的时间内如果有大量的并发请求进入,就会绕过缓存进入数据库,会瞬间击垮DB 重建时间可能因为数据是多个表的混合结果需要分头统计而延长,从而更容易出现缓存击穿问题 缓存击穿的解决方案 添加互斥锁 先查询缓存…

电商商城管理系统

前言👀~ 将近一个月没更新了,最近忙着学校的大作业,一个是微信小程序的、一个是互联网编程的,也是忙完了这个大作业,这个大作业前端使用了vue、后端使用了java,接下来展示一些效果图,如果有需要…

2024 第三届 AIGC 中国开发者大会:多模态大模型的发展与趋势

引言 在2024年第三届AIGC中国开发者大会上,零一万物联合创始人潘欣分享了多模态大模型的发展与趋势。潘欣对多模态大模型的历史、现状和未来进行了详细回顾和深刻思考,为我们揭示了该领域的发展路径和技术前景。本文将详细解读潘欣的分享内容&#xff0…

如何搜索[仅有1个文件]或[指定个数范围、名称、类型文件等复杂情况]的文件夹

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 打开工具,切换到批量复制板块,用Ctrl5可以快速切换 然后鼠标移动到工具的贴边的右侧,不是移出工具外面,还在…

RT_thread nano移植Finsh

参考连接: https://blog.csdn.net/baseball214/article/details/131341722 移植的前提是,你已经有一个可以使用的nano功能. 1.将rtthread-nano-master\rt-thread\components文件复制到工程. 2.添加Finsh中的.c以及相关.h头文件路径 3.注释掉finsh_config.h文件中以下两个宏…

颠仆流离学二叉树2 (Java篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

使用autodl服务器进行模型训练

1.注册并且选择一个服务器租用 2.点击jupyter lab进入服务器内部 3.把yolov5-master这个的压缩文件上传到jupyter的文件列表中 4.打开终端 (1)查看目录 ls (2)解压yolov5-master(1) unzip "yolov5-master (1).zip" 可以看到解压成功! (3)进入yolov5-m…

网桥、路由器和网关有什么区别

在计算机网络领域,网桥、路由器和网关都是常见的网络设备,它们在网络通信中扮演着不同的角色。虽然它们都有连接不同网络的功能,但在实际应用中却具有各自独特的作用和特点。 1.网桥(Bridge) 定义:网桥是…

【云原生】Kubernetes----配置资源管理Secrets与ConfigMaps

目录 一、Secrets (一)Secrets概述 (二)Secrets类型 (三)Secrets使用方式 (四)创建Secrets 1.陈述式命令创建 1.1 定义用户与密码文件 1.2 使用陈述式命令创建 2.使用base6…

每日一题《leetcode--LCR 022.环形链表||》

https://leetcode.cn/problems/c32eOV/ 我们使用两个指针,fast 与 slow。它们起始都位于链表的头部。随后slow 指针每次向后移动一个位置,而fast 指针向后移动两个位置。如果链表中存在环,则fast 指针最终将再次与slow 指针在环中相遇。 stru…

飞腾D2000+FPGA云终端,实现从硬件、操作系统到应用的完全国产、自主、可控

飞腾云终端基于国产化飞腾高性能8核D2000处理器平台的国产自主可控解决方案,搭载昆仑国产化固件,支持UOS、银河麒麟等国产操作系统,满足国产化信息安全运算的需求,实现从硬件、操作系统到应用的完全国产、自主、可控,是国产信息安…

排序进阶----快速排序

当我们写了插入和希尔排序后,我们就应该搞更难的了吧。大家看名字就知道我们这篇博客的内容了吧。而且从名字上来看。快速排序就很快吧。那么为什么这个排序怎么能叫快速排序啊。我们希尔排序不是很快嘛。那么我们的快速排序肯定是有特殊之处嘞。不然这就太自负了。…

【简单讲解下Fine-tuning BERT,什么是Fine-tuning BERT?】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

paddleocr快速入门:基于python脚本及命令行两种方式实现图片OCR识别

本篇将再讲讲paddleocr在图像OCR识别方面的应用。 一、paddlecor参数说明 字段说明默认值use_gpu是否使用GPUTRUEgpu_mem初始化占用的GPU内存大小8000Mimage_dir通过命令行调用时执行预测的图片或文件夹路径page_num当输入类型为pdf文件时有效,指定预测前面page_nu…

R语言ggplot2包绘制世界地图

数据和代码获取&#xff1a;请查看主页个人信息&#xff01;&#xff01;&#xff01; 1. 数据读取与处理 首先&#xff0c;从CSV文件中读取数据&#xff0c;并计算各国每日收入的平均签证成本。 library(tidyverse) ​ df <- read_csv("df.csv") %>% group_…

MAC帧

基本问题 数据链路层的协议有很多&#xff0c;但是都有三个基本问题&#xff1a;封装成帧&#xff0c;透明传输和差错检测。 封装成帧 封装成帧&#xff08;Framing&#xff09;就是在一段数据的前后分别添加首部和尾部&#xff0c;这样就构成了一个帧。帧是数据链路层的传送…

css 中clip 属性和替代方案 clip-path属性使用

clip clip 属性概述 作用&#xff1a;clip 属性用于定义一个裁剪区域&#xff0c;该区域外的元素内容将不可见。适用元素&#xff1a;clip 属性只对绝对定位&#xff08;position: absolute&#xff09;或固定定位&#xff08;position: fixed&#xff09;的元素有效&#xf…

掘金AI 商战宝典-高阶班:如何用AI制作视频(11节视频课)

课程目录&#xff1a; 1-第一讲用AI自动做视频&#xff08;上&#xff09;_1.mp4 2-第二讲用AI自动做视频&#xff08;中&#xff09;_1.mp4 3-第四讲A1做视频实战&#xff1a;店铺宣传_1.mp4 4-第五讲Al做视频实战&#xff1a;商品带贷1.mp4 5-第六讲Al做视频实战&#x…

码随想录算法训练营第二十四天| 77. 组合

77. 组合 - 力扣&#xff08;LeetCode&#xff09; class Solution {ArrayList<Integer> path new ArrayList<>();ArrayList<List<Integer>> result new ArrayList<>();public List<List<Integer>> combine(int n, int k) {if(n &…