Git本地库操作

news2025/1/17 23:00:40

对本地库的操作很少,我们学习1~6节即可,其他了解下。我们可以在idea中完成对本地库还有远程库的操作,可视化界面用起来更加舒适而且也不会混淆。

1. Git概述

  • Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。

  • Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

  • 本地库已经实现了版本管理,可以切换分支到任意版本下,如果我们是个人开发者,并且不需要与其他人合作开发,那么在本地库进行版本管理可能已经足够了。但要注意本地库无法备份代码,也不能与其他开发者分享代码。如果你需要和其他人协同工作或者希望备份你的代码,那么最好将代码提交到远程仓库中进行版本管理。这样可以确保对代码进行备份并方便代码共享和合作开发。

2. 何为版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。

版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。我们就像甲方一样,如果改了七版后还想要回第一版,我们就可以使用Git快速方便地切换回第一版。
虽然我们也可以直接通过备份的方式保存各个版本,但是这种方式不仅占用我们的存储空间,当文件较大时还会占用我们的时间。而且各个版本备份只是Git的一个作用,在远程仓库中还可以通过高亮比较各个版本代码的不同。跟他人分享我们的代码、代码备份、与他人协助开发。

3. Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。

➢ 局域网

​ GitLab

互联网

​ GitHub(外网)

​ Gitee 码云(国内网站)

4. Git安装

我安装在D:\ProgramSofts,安装好后右键任意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端。

在这里插入图片描述

在 Git Bash 终端里输入 git --version 查看 git 版本,如图所示,说明 Git 安装成功。

5. Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

6. 设置用户签名

任意位置右键git Bash然后用以下命令设置用户前面:

git config --global user.name zane (回车)
git config --global user.email 2116514824@qq.com

在家目录下我们可以看到新创建了一个文件.gitconfig
在这里插入图片描述

双击打开查看文件内容或通过git Bash方式获取文件内容
在这里插入图片描述

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

注意: 这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

7. 初始化本地库

D:\Git-Space创建一个文件夹git-demo1,然后在文件夹下右键git Bash,输入以下命令:

基本语法

git init

案例实操

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1
$ git init
Initialized empty Git repository in D:/Git-Space/git-demo1/.git/

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ ll -a
total 4
drwxr-xr-x 1 ASUS 197121 0 Jul  5 20:22 ./
drwxr-xr-x 1 ASUS 197121 0 Jul  5 20:22 ../
drwxr-xr-x 1 ASUS 197121 0 Jul  5 20:22 .git/ (.git 初始化的效果,生成 git)

结果查看

初始化后在本地库(我们刚刚所新建的文件夹)下有一个.git文件夹
在这里插入图片描述

8. 查看本地库状态

基本语法

git status

案例实操

首次查看(工作区没有任何文件)

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

新增文件(hello.txt)

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ vim hello.txt  //编辑文件,若没有则新建一个,输入后进入编辑区,点击i进入插入状态,输入以下内容:hello git!hello lzk! 按esc退出插入模式后,按下yy表示对光标所在行进行复制,p表示粘贴,编辑完毕,按下:wq表示保存文件
--------------------
hello git!hello lzk!
hello git!hello lzk!

再次查看(检测到未追踪的文件)

  • 未追踪文件表示该文件尚未被添加到暂存区
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git status 
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        hello.txt

nothing added to commit but untracked files present (use "git add" to track)

9. 添加暂存区

将工作区的文件添加到暂存区

基本语法

git add 文件名

案例实操

  • 执行命令后并未提示该文件是否加入到暂存区中,所以我们需要查看一下状态,可以忽略警告。
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git add hello.txt  
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory

-------------------
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   hello.txt  (检测到暂存区有新文件)

10. 提交本地库

将暂存区的文件提交到本地库

基本语法

git commit -m "日志信息" 文件名

案例实操

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git commit -m "my first commit" hello.txt
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory
[master (root-commit) 661f746] my first commit
 1 file changed, 16 insertions(+)
 create mode 100644 hello.txt

再次查看状态(没有文件需要提交)
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git status
On branch master
nothing to commit, working tree clean

11. 修改文件

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ vim hello.txt (修改文件,因为我们在本地库下执行编辑文件命令,一个本地库为一个文件夹,文件夹下没有同名同后缀的文件,所以修改hello.txt就是修改指定的那个)

-----修改为以下内容--------
hello git! hello lzk!
22222222222222222222

查看状态

检测到工作区有文件被修改

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hello.txt

no changes added to commit (use "git add" and/or "git commit -a") //此处命令提示我们可以使用git add方式将工作区中的文件添加到暂存区或者使用git commit -a方式提交
--------------------
不add直接commit
两种情况:
- 新建的文件尚未纳入版本控制体系:必须先add纳入版本控制体系后才可以commit
- 已纳入版本控制体系的文件被修改:可以不add直接commit,Git自动执行了add

将修改的文件再次添加暂存区

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git add hello.txt
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory

暂存区文件提交本地库

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git commit -m "my second commit" hello.txt
.....

12. 查看历史版本

基本语法

git reflog 	查看版本信息
git log     查看版本详细信息

案例实操

  • 新增一次,提交到本地库,为版本1,修改后提交到本地库,为版本2。此时指针HEAD总是指向最后一次修改。本地库只有一份文件,但是git能存在两个版本信息,很神奇。
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git reflog
5c02310 (HEAD -> master) HEAD@{0}: commit: my second commit
661f746 HEAD@{1}: commit (initial): my first commit

13. 版本穿梭

基本语法

git reset --hard 版本号

案例实操

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
--首先查看当前的历史记录,可以看到当前是在 5c02310 这个版本
$ git reflog
5c02310 (HEAD -> master) HEAD@{0}: commit: my second commit
661f746 HEAD@{1}: commit (initial): my first commit

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
--切换到 661f746 版本,也就是我们第一次提交的版本
$ git reset --hard 661f746
HEAD is now at 661f746 my first commit

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
--切换完毕之后再查看历史记录,当前成功切换到了 661f746 版本
$ git reflog
661f746 (HEAD -> master) HEAD@{0}: reset: moving to 661f746
5c02310 HEAD@{1}: commit: my second commit
661f746 (HEAD -> master) HEAD@{2}: commit (initial): my first commit

14. Git分支操作

什么是分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)

master为开发主线,其余为分支,分支为主线分支进行功能开发,开发好后将功能合并到master上。

分支的好处

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

  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

分支的操作命令

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

查看分支

基本语法
git branch -v
案例实操
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git branch -v
* master 661f746 my first commit   (*代表当前所在的分区)

创建分支

基本语法
git branch 分支名
案例实操
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git branch hot-fix  (创建分支hot-fix)

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git branch -v
  hot-fix 661f746 my first commit (刚创建的新的分支,并将主分支 master
的内容复制了一份给它)
* master  661f746 my first commit  (当前分支仍为master)

修改分支

--在 maste 分支上做修改
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ vim hello.txt
--添加暂存区
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git add hello.txt
--提交本地库
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git commit -m "my third commit" hello.txt
[master 1eec0ee] my third commit
 1 file changed, 1 insertion(+), 5 deletions(-)

--查看分支
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git branch -v
  hot-fix 661f746 my first commit (hot-fix 分支并未做任何改变)
* master  1eec0ee my third commit (当前 master 分支已更新为最新一次提交
的版本)
所以修改一个分支上的内容并不会对另一个分支内容产生影响。
--查看分支内容
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ cat hello.txt
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
lzk first commit master!

切换分支
基本语法
git checkout 分支名
案例实操
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'
--发现当先分支已由 master 改为 hot-fix
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (hot-fix)
--修改hot-fix分支为以下的内容
$ vim hello.txt
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
lzk second commit hot-fix!
hello git!hello lzk!

--添加暂存区
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (hot-fix)
$ git add hello.txt

--提交本地库
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (hot-fix)
$ git commit -m "hot-fix commit" hello.txt
[hot-fix 5219180] hot-fix commit
 1 file changed, 1 insertion(+), 5 deletions(-)

合并分支

基本语法
git merge 分支名
案例实操

在master分支上合并hot-fix分支

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (hot-fix)
$ git checkout master
Switched to branch 'master'

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)
$ git merge hot-fix
Auto-merging hello.txt
CONFLICT (content): Merge conflict in hello.txt (产生冲突)
Automatic merge failed; fix conflicts and then commit the result.
--冲突产生的表现:后面状态为 MERGING
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master|MERGING)

冲突产生的原因:

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

由于master分支上的hello.txt文件(总12行)后两行与要合并的分支hot-fix的hello.txt文件(总12行)后两行的内容不同,所以Git不知道谁覆盖谁,所以合并失败!

查看状态

检测到文件有两处修改

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master|MERGING)
$ git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   hello.txt

no changes added to commit (use "git add" and/or "git commit -a")
解决冲突

编辑有冲突的文件,删除特殊符号,决定要使用的内容

提示:特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master|MERGING)
$ cat hello.txt
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
<<<<<<< HEAD
hello git!hello lzk!
lzk first commit master!
=======
lzk second commit hot-fix!
hello git!hello lzk!
>>>>>>> hot-fix

ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master|MERGING)
$ vim hello.txt
按上面的提示进行修改操作

--修改完再次查看
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master|MERGING)
$ cat hello.txt
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
hello git!hello lzk!
lzk first commit master!
lzk second commit hot-fix!

--添加到暂存区
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master|MERGING)
$ git add hello.txt

--执行提交
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master|MERGING)
$ git commit -m "merge hot-fix"
[master 651389c] merge hot-fix

--发现后面 MERGING 消失,变为正常
ASUS@LAPTOP-L64DOQDG MINGW64 /d/Git-Space/git-demo1 (master)

实际应用:将项目A同时安排给B,C去完成,每人负责不同的模块,项目A此时就是主线分支master,而B,C需要在其他分支上进行工作,完成各自模块后自身分支合并到主线分支上去。

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

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

相关文章

ASM字节码操作类库(打开java语言世界通往字节码世界的大门) | 京东云技术团队

前言&#xff1a;授人以鱼不如授人以渔&#xff0c;应用asm的文章有很多&#xff0c;简单demo的也很多&#xff0c;那么ASM都具备哪些能力呢&#xff1f;如何去学习编写ASM代码呢&#xff1f;什么样的情景需要用到ASM呢&#xff1f;让我们带着这些问题阅读这篇文章吧。 这里由…

笔记本只使用Linux是什么体验?

笔记本只使用Linux是什么体验&#xff1f; 之后安了Windows双系统之后也不怎么想再进Windows了。 开发环境就不用说了&#xff0c;Linux下配各种开发环境都方便的多&#xff0c;当然你要用 vs 那还是乖乖回 Windows 吧。 最近很多小伙伴找我&#xff0c;说想要一些Linux的资…

Sleuth

Sleuth 一 引言 随着服务的越来越多&#xff0c;对调⽤链的分析会越来越复杂。它们之间的调⽤关系也许如下图&#xff1a; 问题&#xff1a; 1&#xff1a;微服务之间的调⽤错综复杂&#xff0c;⽤户发送的请求经历那些服务&#xff0c;调⽤链不清楚&#xff0c;没有⼀ 个⾃…

CSDN最新最全pytest系列——pytest-base-url插件之配置可选的项目系统UR

前言 ①当我们的自动化代码完成之后&#xff0c;通常期望可以在不同的环境进行测试&#xff0c;此时可以将项目系统的URL单独拿出来&#xff0c;并且可以通过pytest.ini配置文件和支持pytest命令行方式执行。 ② pytest-base-url 是一个简单的pytest插件&#xff0c;它通过命…

哈夫曼树你需要了解一下

哈夫曼树介绍哈夫曼数特点哈夫曼应用场景哈夫曼构建过程哈夫曼树示例拓展 哈夫曼树介绍 哈夫曼树&#xff08;Huffman Tree&#xff09;是一种特殊的二叉树&#xff0c;也被称为最优二叉树。在计算机科学中&#xff0c;它是由权值作为叶子节点构造出来的一种二叉树。哈夫曼树的…

计算机组成原理(万字爆肝整理)

第一章 计算机系统概述 “较简单&#xff0c;不做过多赘述&#xff0c;后面会详细学到” 第一节 计算机系统层次结构 1.计算机系统的基本组成&#xff1a;硬件软件 2.计算机硬件的基本组成&#xff1a;运算器存储器控制器输入设备输出设备 3.系统软件和应用软件 系统软件…

企业数字化转型所需的数据在哪里找?企业数据运营有什么用?

现阶段&#xff0c;越来越多企业考虑数字化转型。特别是中小型企业&#xff0c;他们察觉到&#xff1a;数字化转型的关键在于数据的运营。只有通过数据的有效管理和不断挖掘&#xff0c;企业才可以更好地了解市场需求&#xff0c;优化业务流程&#xff0c;提高决策效率&#xf…

浅谈Python装饰器原理与用法分析

前言 本文实例讲述了Python装饰器原理与用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 1、装饰器的本质是函数&#xff0c;主要用来装饰其他函数&#xff0c;也就是为其他函数添加附加功能 2、装饰器的原则: (1) 装饰器不能修改被装饰的函数的源代码 (2) 装…

磐舟CI使用说明及案例

整体介绍 磐舟作为一个devops产品&#xff0c;它具备基础的CI流水线功能。同时磐舟的流水线是完全基于云原生架构设计的&#xff0c;在使用时会有一些注意事项。这里首先我们要了解磐舟整体的流水线打包逻辑。 文档结构说明 一般来说&#xff0c;磐舟推荐单个业务的标准git库…

面试官:什么是三色标记

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

sqlserver==索引解析,执行计划,索引大小

1创建测试表 -- 创建大型表 CREATE TABLE LargeTableWithIndex (ID int IDENTITY(1,1) PRIMARY KEY,IndexedColumn int,NonIndexedColumn nvarchar(255),OtherData nvarchar(255) );2插入测试数据 -- 使用 T-SQL 插入大量数据 DECLARE @i int = 1; WHILE @i <= 100000 -- …

优先经验回放(prioritized experience replay)

prioritized experience replay 思路 优先经验回放出自ICLR 2016的论文《prioritized experience replay》。 prioritized experience replay的作者们认为&#xff0c;按照一定的优先级来对经验回放池中的样本采样&#xff0c;相比于随机均匀的从经验回放池中采样的效率更高&…

第一百七十六回 如何创建渐变色边角

文章目录 1. 概念介绍2. 实现方法3. 代码与细节3.1 示例代码3.2 代码细节 4. 内容总结 我们在上一章回中介绍了"如何创建放射形状渐变背景"相关的内容&#xff0c;本章回中将介绍"如何创建渐变色边角".闲话休提&#xff0c;让我们一起Talk Flutter吧。 1.…

2023年【广东省安全员B证第四批(项目负责人)】报名考试及广东省安全员B证第四批(项目负责人)复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 广东省安全员B证第四批&#xff08;项目负责人&#xff09;报名考试是安全生产模拟考试一点通总题库中生成的一套广东省安全员B证第四批&#xff08;项目负责人&#xff09;复审考试&#xff0c;安全生产模拟考试一点…

智能安全帽作业记录仪赋能智慧工地人脸识别劳务实名制

需求背景 建筑工地是一个安全事故多发的场所。目前&#xff0c;工程建设规模不断扩大&#xff0c;工艺流程纷繁复杂&#xff0c;如何完善现场施工现场管理&#xff0c;控制事故发生频率&#xff0c;保障文明施工一直是施工企业、政府管理部门关注的焦点。尤其随着社会的不断进…

18.天气小案例

1►新增带Layout组件的页面 直接在views文件夹下面新增weather.vue。然后随便写一个123&#xff0c;现在先让我们页面能跳过去先。 让页面能跳过去&#xff0c;有好几种方法&#xff1a; 1、在菜单管理自己添加一个菜单&#xff0c;然后把菜单分配给某个角色&#xff0c;再把…

【Python进阶】近200页md文档14大体系第4篇:Python进程使用详解(图文演示)

本文从14大模块展示了python高级用的应用。分别有Linux命令&#xff0c;多任务编程、网络编程、Http协议和静态Web编程、htmlcss、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。 Python全套笔记直接地址…

【iOS】实现评论区展开效果

文章目录 前言实现行高自适应实现评论展开效果解决cell中的buttom的复用问题 前言 在知乎日报的评论区中&#xff0c;用到了Masonry行高自适应来实现评论的展开&#xff0c;这里设计许多控件的约束问题&#xff0c;当时困扰了笔者许久&#xff0c;特此撰写博客记录 实现行高自…

GB28181学习(十七)——基于jrtplib实现tcp被动和主动发流

前言 GB/T28181-2022实时流的传输方式介绍&#xff1a;https://blog.csdn.net/www_dong/article/details/134255185 基于jrtplib实现tcp被动和主动收流介绍&#xff1a;https://blog.csdn.net/www_dong/article/details/134451387 本文主要介绍下级平台或设备发流功能&#…

微信小游戏上线流程

微信小游戏上线是一个需要经过一系列步骤的过程。以下是一个一般性的微信小游戏上线流程&#xff0c;请注意&#xff0c;上述步骤可能会有微信平台的政策和规定的变化&#xff0c;因此建议在开发过程中及时查阅微信小游戏的官方文档和最新政策。北京木奇移动技术有限公司&#…