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

精通Git(第2版)读书笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 第 1章 入门 1
    • 1.1 关于版本控制 1
      • 1.1.1 本地版本控制系统 1
  • 第 2章 Git基础 13
    • 2.1 获取Git仓库 13
      • 2.1.1 在现有中初始化Git仓库 13
      • 2.1.2 克隆现有仓库 14
    • 2.2 在Git仓库中记录变更 14
      • 2.2.1 查看当前文件状态 15
      • 2.2.2 跟踪新文件 16
      • 2.2.3 暂存已修改的文件 16
      • 2.2.4 显示更简洁的状态信息 18
      • 2.2.5 忽略文件 18
      • 2.2.6 查看已暂存和未暂存的变更 19
      • 2.2.7 提交变更 21
      • 2.2.8 跳过暂存区 22
      • 2.2.9 移除文件 23
      • 2.2.10 移动文件 24
    • 2.3 查看提交历史 25
    • 2.4 撤销操作 30
      • 2.4.1 撤销已暂存的文件 30
      • 2.4.2 撤销对文件的修改 31
    • 2.5 远程仓库的使用 32
      • 2.5.1 显示远程仓库 32
      • 2.5.2 添加远程仓库 33
      • 2.5.3 从远程仓库获取和拉取数据 34
      • 2.5.4 将数据推送到远程仓库 34
      • 2.5.5 检查远程仓库 35
      • 2.5.6 删除和重命名远程仓库 36
    • 2.6 标记 36
      • 2.6.1 列举标签 36
      • 2.6.2 创建标签 37
      • 2.6.3 注释标签 37
      • 2.6.4 轻量标签 38
      • 2.6.5 补加标签 38
      • 2.6.6 共享标签 39
      • 2.6.7 检出标签 39
    • 2.7 Git别名 40
    • 2.8 小结 41
  • 第3章 Git分支机制 42
    • 3.1 分支机制简述 42
      • 3.1.1 创建新分支 44
      • 3.1.2 切换分支 45
    • 3.2 基本的分支与合并操作 48
      • 3.2.1 基本的分支操作 48
      • 3.2.2 基本的合并操作 52
      • 3.2.3 基本的合并冲突处理 53
      • 3.3 分支管理 55
    • 3.4 与分支有关的工作流 56
      • 3.4.1 长期分支 57
      • 3.4.2 主题分支 58
    • 3.5 远程分支 59
      • 3.5.1 推送 63
      • 3.5.2 跟踪分支 64
      • 3.5.3 拉取 66
      • 3.5.4 删除远程分支 66
    • 3.6 变基 66
      • 3.6.1 基本的变基操作 66
      • 3.6.2 更有趣的变基操作 69
      • 3.6.3 变基操作的潜在危害 71
      • 3.6.4 只在需要的时候执行变基操作 74
      • 3.6.5 变基操作与合并操作的对比 75
      • 3.7 小结 75
  • 第4章 Git服务器 76
  • 第5章 分布式Git 95
  • 第6章 GitHub 128
  • 第7章 Git工具 171
    • 7.3 储藏与清理 181
      • 7.3.1 储藏工作成果 181
      • 7.3.2 灵活运用储藏 183
      • 7.3.3 从储藏中创建分支 184
      • 7.3.4 清理工作 184
    • 7.4 签署工作 186
    • 7.5 搜索 189
      • 7.5.1 git grep 189
  • 总结


前言

这是对《精通Git(第2版)》的关键知识点抽取。


提示:以下是本篇文章正文内容,下面案例可供参考

第 1章 入门 1

1.1 关于版本控制 1

1.1.1 本地版本控制系统 1

1.1.2 集中式版本控制系统 2
1.1.3 分布式版本控制系统 3
1.2 Git简史 4
1.3 Git基础 4
1.3.1 快照,而非差异 4
1.3.2 几乎所有操作都在本地执行 5
1.3.3 Git的完整性 6
1.3.4 Git通常只增加数据 6
1.3.5 三种状态 7
1.4 命令行 8
1.5 安装Git 8
1.5.1 Linux上的安装方法 8
1.5.2 Mac上的安装方法 8
1.5.3 Windows上的安装方法 9
1.5.4 从源码安装 9
1.6 Git的首 次配置 10
1.6.1 用户身份 11
1.6.2 个人编辑器 11
1.6.3 检查个人设置 12
1.7 获取帮助 12
1.8 小结 12

第 2章 Git基础 13

主要内容:

  • 初始化
  • 开始或停止追踪文件、暂存或者提交更改
  • 忽略某些文件和文件模式
  • 撤销错误操作
  • 浏览项目版本历史、查看版本差异

2.1 获取Git仓库 13

2.1.1 在现有中初始化Git仓库 13

git init

2.1.2 克隆现有仓库 14

git clone xxx

创建abc目录,把xxx项目克隆到abc目录

git clone xxx abc

2.2 在Git仓库中记录变更 14

2.2.1 查看当前文件状态 15

git status

2.2.2 跟踪新文件 16

追踪一个新文件–xx

git add xx

2.2.3 暂存已修改的文件 16

暂存已修改的文件–xx

git add xx

面试问题:add的作用?add和commit的区别?
答:add是一个多功能,可以追踪新文件,也可以暂存已修改的文件。可以把git add看做“添加内容到下次提交”。

2.2.4 显示更简洁的状态信息 18

git status -s
git status --short

2.2.5 忽略文件 18

编写**.gitignore**

2.2.6 查看已暂存和未暂存的变更 19

查看当前修改和暂存区的差异

git diff

查看暂存区和上次提交的差异

git diff --staged

使用图形diff工具,书里没展开,需要自己研究,idea已经够用了

git difftool --tool-help

2.2.7 提交变更 21

git commit -m "feature/提交信息"

继续回答之前的问题(add和commit的区别?)。
提交记录(commit)记录的是暂存区中的快照。

2.2.8 跳过暂存区 22

自动把已追踪的文件添加到暂存区,然后再提交。

git commit -a -m "feature/跳过暂存区"

继续回答之前的问题(add和commit的区别?)。
commit可以跳过add。

问题:这一步是只保留修改还是把新文件也加入?
答:只有已有文件会被commit,新文件不可以,需要手动提交。

2.2.9 移除文件 23

注意:如果你真实删除了一个文件其实可以执行git add,但是如果你没有删除他,只是想从暂存区移除,那么你需要使用git rm 命令。

把文件移除状态记录到暂存区

git rm xx

把不想删除的文件从暂存区移除

git rm --cached xx

这里最有用的一个场景是忘记把.idea目录添加到.gitignore。

首先,您需要将.idea文件夹从Git版本控制中移除。为此,可以使用以下命令:

git rm -r --cached .idea

这将会从Git的暂存区(index)中删除.idea文件夹,但不会删除实际的文件。

接下来,您需要提交这个变更到本地仓库:

git commit -m "Remove .idea folder from version control"

现在,您可以将这个变更推送到远程仓库。使用以下命令:

git push origin <branch-name>

请将替换为您要推送到的分支名称,通常是主分支(例如,main或master)。

2.2.10 移动文件 24

git mv file_from file_to

相当于执行了三条命令

mv file_from file_to
git rm file_from
git add file_to

但是我目前感觉直接重命名,然后git add也是可以的,可能是版本问题吧。

2.3 查看提交历史 25

最强大的命令

git log

可以查看所有提交,包括hash、作者信息

git log -p -2

-p显示每次提交引入的差异
-2表示只输出最近两次提交

git log --stat

查看概要,包括改动文件列表、改动文件数量、每个文件有多少增删,以及总计。

git log --pretty=oneline

每次提交信息在一行显示

git log --pretty=format:"%h - %an, %ar : %s"

哈希 - 作者, 时间 : 提交主题

git log --since=2.weeks

2.4 撤销操作 30

git commit -m "info"
git add forgotten_file
git commit --amend

当遗漏了某个文件,已经提交了,可以使用–amend把遗漏的合并进之前的提交,最终只会保留一次提交。

2.4.1 撤销已暂存的文件 30

git add a
git add b
git reset HEAD a

把a、b两个文件已经放入暂存区了,又希望把a恢复到已修改但未暂存的状态。

2.4.2 撤销对文件的修改 31

一个特别危险的指令

git checkout -- file

如果确定file的修改内容不需要了,name可以用老版本把当前修改覆盖掉,不可以恢复的。
如果只是需要暂时隐藏,那么使用stash。

2.5 远程仓库的使用 32

2.5.1 显示远程仓库 32

$ git remote
origin
git remote -v
origin  git@ip:pro.git (fetch)
origin  git@ip:pro.git (push)

2.5.2 添加远程仓库 33

git remote add tm git@xx.git
git fetch tm
git merge tm/release/2.3 --allow-unrelated-histories

已有仓库,添加一个远程仓库,取了一个tm的简短的名字方便引用,git fetch tm获取tm的全部数据,后续可以访问tm的分支了,也可以和自己的分支合并。

2.5.3 从远程仓库获取和拉取数据 34

git fetch tm

获取tm的全部数据

2.5.4 将数据推送到远程仓库 34

git push origin HEAD

这是我常用的指令,推送到(push) 远端的(origin) 同名分支(HEAD)上

2.5.5 检查远程仓库 35

git remote show origin

查看远端信息,包括追踪信息,推送分支,你刚在本地创建了分支,还没有推送过,那么是没有可以推送的分支的信息的。

2.5.6 删除和重命名远程仓库 36

一般人没有这个权限的吧

在这里插入代码片

2.6 标记 36

2.6.1 列举标签 36

列举所有tag

git tag

列举特定系列tag

git tag -l "v1.2.3*"

2.6.2 创建标签 37

标签包括 注释标签 和 轻量标签

2.6.3 注释标签 37

打标签

git tag -a v1.4 -m "my version 1.4"

查看某个标签的信息

git show v1.4

2.6.4 轻量标签 38

不需要-a、-m等选项

git tag v1.4-lw

轻量标签的标签信息也少一些

git show v1.4-lw

2.6.5 补加标签 38

git tag -a v1.2 hash值

2.6.6 共享标签 39

推送标签,和远端git仓库同步标签,类似于推送分支
推送单个

git push origin [tagname]

一次全部推送

git push origin --tags

2.6.7 检出标签 39

不能检出标签,只能在标签上创建一个分支

git checkout -b version2 v2.0.0

2.7 Git别名 40

给git命令起别名,建议还是别学了

2.8 小结 41

第3章 Git分支机制 42

3.1 分支机制简述 42

git存储的是指向快照的指针

3.1.1 创建新分支 44

基于当前工作区创建新分支

git branch newbranch

3.1.2 切换分支 45

git checkout newbranch

切换分支就是将HEAD分支指向newbranch

3.2 基本的分支与合并操作 48

3.2.1 基本的分支操作 48

一个典型场景:
master分支上有个iss53问题需要修复,正在修复,发现一个紧急线上问题需要修复。

git checkout -b iss53 # 根据当前工作区切出iss53分支
vi file1
# 紧急修复
git commit -a -m "fix/修复一部分iss 53"
git checkout master
git checkout -b hotfix # 根据当前工作区切出iss53分支
vi file2
git commit -a -m "fix/hotfix"
git checkout master
git merge hotfix # hotfix是基于master的,所以master只是把指针快进了一下
git branch -d hotfix # 删除hotfix分支
git checkout iss53 # 切回iss53分支
vi file1
git commit -a -m "fix/修复完iss 53"

3.2.2 基本的合并操作 52

git checkout master
git merge iss53 # 与 hotfix 分支的合并不同,此时master不是iss53的祖先了

此时会发生合并提交,git会自动找出公共祖先做合并

3.2.3 基本的合并冲突处理 53

如果出现冲突,git会暂停合并。并标记冲突。上边是当前分支的内容,下边是合入分支的内容。
注意,我们切换到了master然后把iss53合入。

<<<<<<< HEAD: file
当前分支的内容
======
合入分支的内容
>>>>>>> iss53: file

解决冲突之后,

git add file
git commit -m "解决冲突"

3.3 分支管理 55

git branch # 查看本地所有分支
git branch -v # 查看本地所有分支 包括 哈希 状态 最后提交
git branch --merged # 查看本地当前分支包含了哪些分支。例如我从master切出然后修改,那么master是被包含的。反之,例子中master包含了iss53分支

3.4 与分支有关的工作流 56

3.4.1 长期分支 57

3.4.2 主题分支 58

3.5 远程分支 59

git fetch origin # 获取远程服务器数据,更新本地数据,其实没啥用,更新了origin的指针,不影响本地的同名分支

3.5.1 推送 63

git push origin HEAD # HEAD是同名分支的代称,也可以写成
git push origin iss53 # 这是下面的写法的简写
git push origin iss53:iss53 # 这是下面写法的简写
git push origin refs/heads/iss53:refs/heads/iss53git push origin iss53:newName # 如果希望远程换个名字

3.5.2 跟踪分支 64

如果本地分支还没有创建,那么创建一个和远程同名分支会自动跟踪

git checkout oldbran

也可以创建同时指定追踪的远程分支

git checkout -b newbran origin/master

也可以对一个分支指定追踪的远程分支

git branch -u origin/master

3.5.3 拉取 66

git fetch # 拉取
git merge # 合并

等于

git pull

3.5.4 删除远程分支 66

git push origin --delete <branch_name>

3.6 变基 66

一个分支整合另一个分支,包括 合并(merge)和变基(rebase)

3.6.1 基本的变基操作 66

合并是找到两个分支的末端,并把他们合并到一起。
变基是把某个分支的更改以补丁的形式应用到另一个分支。

git checkout iss53
git rebase master
git checkout master
git merge iss53

3.6.2 更有趣的变基操作 69

git-3-31
书中给出了这样一个案例,如果想把 3、4合并到main,而暂不处理2、5、6。可以执行

git rebase --onto main server client

含义是:将当前分支切换到client分支,找出client分支和server分支的共同祖先提交,然后把自从共同祖先以来client分支上独有的工作在mian分支上重现。

此时git树变为如下状态,9、10就是3、4在main分支上的重现。
3-32

此时可以对main分支进行快进了

git checkout main
git merge client

现在如果我们要把server分支整合进来,可以执行

git rebase main server
# git rebase [basebranch] [topicbranch]

直接对该分支执行变基操作,而不需要先切换到该分支,该命令会读取主题分支(server)上的更改,并在基础分支(master)上重现。
之后快进main

git checkout main
git merge server

3.6.3 变基操作的潜在危害 71

不要对已经存在于本地仓库之外的提交执行变基操作。

3.6.4 只在需要的时候执行变基操作 74

对已经离开本地的提交做变基,那么其他人应当执行

git pull --rebase

如果要把 –rebase 作为默认选项可以

git config --global pull.rebase true

3.6.5 变基操作与合并操作的对比 75

合并是真实的提交记录,变基是对历史记录的修改,对于本地的提交可以通过变基使其更优雅,对于已经推送到服务器的提交不要修改。

3.7 小结 75

第4章 Git服务器 76

4.1 协议 76
4.1.1 本地协议 76
4.1.2 HTTP协议 78
4.1.3 SSH协议 79
4.1.4 Git协议 80
4.2 在服务器上搭建Git 80
4.2.1 将裸仓库放置在服务器上 81
4.2.2 小型团队配置 82
4.3 生成个人的SSH公钥 83
4.4 设置服务器 84
4.5 Git守护进程 85
4.6 智能HTTP 87
4.7 GitWeb 88
4.8 GitLab 90
4.8.1 安装 90
4.8.2 管理 91
4.8.3 基本用法 93
4.8.4 协作 93
4.9 第三方托管选择 94
4.10 小结 94

第5章 分布式Git 95

5.1 分布式工作流 95
5.1.1 集中式工作流 95
5.1.2 集成管理者工作流 96
5.1.3 司令官与副官工作流 97
5.1.4 工作流小结 97
5.2 为项目做贡献 98
5.2.1 提交准则 98
5.2.2 私有小型团队 100
5.2.3 私有管理团队 105
5.2.4 派生的公开项目 110
5.2.5 通过电子邮件接受补丁的公开项目 113
5.2.6 小结 115
5.3 维护项目 115
5.3.1 使用主题分支 115
5.3.2 应用来自电子邮件的补丁 116
5.3.3 检出远程分支 118
5.3.4 确定引入内容 119
5.3.5 整合所贡献的工作结果 120
5.3.6 为发布版打标签 125
5.3.7 生成构建编号 126
5.3.8 准备发布 126
5.3.9 简报 127
5.4 小结 127

第6章 GitHub 128

6.1 账号设置与配置 128
6.1.1 SSH访问 129
6.1.2 头像 130
6.1.3 电子邮件地址 131
6.1.4 双因素身份验证 132
6.2 为项目做贡献 132
6.2.1 派生项目 132
6.2.2 GitHub流程 133
6.2.3 拉取请求的高 级用法 140
6.2.4 Markdown 144
6.3 项目维护 148
6.3.1 创建新仓库 148
6.3.2 添加协作人员 150
6.3.3 管理拉取请求 150
6.3.4 提醒和通知 155
6.3.5 特殊文件 158
6.3.6 项目管理 159
6.4 组织管理 160
6.4.1 组织的基本操作 160
6.4.2 团队 160
6.4.3 审计日志 162
6.5 GitHub脚本化 162
6.5.1 钩子系统 162
6.5.2 GitHub API 166
6.6 小结 170

第7章 Git工具 171

7.1 选择修订版本 171
7.1.1 单个修订版本 171
7.1.2 提交范围 175
7.2 交互式暂存 177
7.2.1 暂存和取消暂存文件 178
7.2.2 暂存补丁 180

7.3 储藏与清理 181

储藏(stashing)能够获得工作目录的中间状态,也就是修改过的被追踪的文件以及暂存的变更,并将中间状态保存在一个包含未完成变更的栈中。

7.3.1 储藏工作成果 181

git stash

查看存储在栈中的储藏

git stash list

重新应用某次储藏

git stash apply stash@{n}
git stash apply # 不指明则默认应用最近一次的储藏

可以在一个分支储藏,然后在另一个分支应用。

加上 –index,可以告诉该命令重新应用暂存过的变更。没看懂

git stash apply --index

apply只会尝试应用储藏过的内容,而这些内容仍然保存在栈上。想要删除,可以使用命令

git stash drop stash@{0}

7.3.2 灵活运用储藏 183

git stash默认只保存已经索引过的文件。

git stash --keep-index # 不要储藏已经用git add命令暂存过的内容
git stash -u # 如果指定了 **--include-untracked**或者 **-u**,git会储藏所有创建过的未跟踪的文件。
git stash --patch # 以交互的方式询问你哪些改动需要储藏,哪些改动需要保留在工作目录中。

7.3.3 从储藏中创建分支 184

git stash branch newbranch

7.3.4 清理工作 184

不需要储藏只想清理的内容,可以只用git clean,更安全的还是使用git stash --all

git clean -f -d # 全部删除并清空所有的子目录
git clean -d -n # 仅演示一遍,不实际执行
git clean -d -x # 删除.gitignore忽略的文件,不加-x默认不会删除

7.4 签署工作 186

7.4.1 GPG简介 186
7.4.2 签署标签 186
7.4.3 验证标签 187
7.4.4 签署提交 187
7.4.5 所有人都得签署 189

7.5 搜索 189

7.5.1 git grep 189

查看关键字,不必是当前工作区,

git grep -n text # 匹配文件: 行号 文本
git grep --count text # 匹配文件: 匹配次数
git grep -p text *.c # 查看所属方法或函数

7.5.2 Git日志搜索 190
7.6 重写历史 192
7.6.1 修改**近一次提交 192
7.6.2 修改多个提交消息 192
7.6.3 重排提交 194
7.6.4 压缩提交 195
7.6.5 拆分提交 195
7.6.6 超强命令:filter-branch 196
7.7 重置揭秘 197
7.7.1 三棵树 198
7.7.2 工作流 199
7.7.3 重置的作用 203
7.7.4 利用路径进行重置 205
7.7.5 压缩 207
7.7.6 检出 209
7.7.7 小结 210
7.8 合并的高 级用法 211
7.8.1 合并冲突 211
7.8.2 撤销合并 220
7.8.3 其他类型的合并 222
7.9 rerere 225
7.10 使用Git调试 230
7.10.1 文件标注 230
7.10.2 二分查找 232
7.11 子模块 233
7.11.1 开始使用子模块 233
7.11.2 克隆含有子模块的项目 235
7.11.3 开发含有子模块的项目 236
7.11.4 子模块技巧 245
7.11.5 子模块的问题 246
7.12 打包 248
7.13 替换 251
7.14 凭据存储 257
7.14.1 底层实现 258
7.14.2 自定义凭据缓存 259
7.15 小结 261
第8章 自定义Git 262
8.1 配置Git 262
8.1.1 客户端基本配置 262
8.1.2 Git中的配色 265
8.1.3 外部的合并与diff工具 265
8.1.4 格式化与空白字符 268
8.1.5 服务器配置 270
8.2 Git属性 270
8.2.1 二进制文件 271
8.2.2 关键字扩展 273
8.2.3 导出仓库 276
8.2.4 合并策略 277
8.3 Git钩子 277
8.3.1 安装钩子 277
8.3.2 客户端钩子 278
8.3.3 服务器端钩子 279
8.4 Git强制策略示例 280
8.4.1 服务器端钩子 280
8.4.2 客户端钩子 285
8.5 小结 288
第9章 Git与其他系统 289
9.1 作为客户端的Git 289
9.1.1 Git与Subversion 289
9.1.2 Git与Mercurial 298
9.1.3 Git与Perforce 305
9.1.4 Git与TFS 317
9.2 迁移到Git 325
9.2.1 Subversion 325
9.2.2 Mercurial 327
9.2.3 Perforce 329
9.2.4 TFS 330
9.2.5 自定义导入工具 331
9.3 小结 337
第 10章 Git内幕 338
10.1 底层命令和高层命令 338
10.2 Git对象 339
10.2.1 树对象 341
10.2.2 提交对象 343
10.2.3 对象存储 345
10.3 Git引用 346
10.3.1 HEAD 348
10.3.2 标签对象 348
10.3.3 远程引用 349
10.4 包文件 350
10.5 引用规格 352
10.5.1 推送引用规格 354
10.5.2 删除引用 354
10.6 传输协议 354
10.6.1 哑协议 355
10.6.2 智能协议 356
10.6.3 协议小结 359
10.7 维护与数据恢复 359
10.7.1 维护 359
10.7.2 数据恢复 360
10.7.3 移除对象 362
10.8 环境变量 365
10.8.1 全局行为 365
10.8.2 仓库位置 365
10.8.3 路径规格 366
10.8.4 提交 366
10.8.5 网络 366
10.8.6 差异与合并 367
10.8.7 调试 367
10.8.8 杂项 369
10.9 小结 369
附录A 其他环境中的Git 370
附录B 在应用程序中嵌入Git 381
附录C Git命令 390


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关文章:

  • Linux(CentOS7.5):通过docker安装redis
  • Golang WebSocket 心跳
  • WPF 简单绘制矩形
  • 10、SQL注入——数据库基础
  • 【2023.12.4练习】数据库知识点复习测试
  • dp-矩阵连乘
  • 前后端参数传递总结
  • 毕业项目分享
  • 纯C读取文件实现解析H264裸流每一帧数据
  • 系列十三、SpringBoot的自动配置原理分析
  • 【工具使用-Audition】如何使用Audition频谱分析
  • 鸿蒙(HarmonyOS)应用开发——管理组件状态
  • [ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup
  • spring日志输出到elasticsearch
  • 视频文件+EasyDarwin做摄像机模拟器模拟RTSP流很方便,还能做成系统服务,方法与流程
  • $translatePartialLoader加载失败及解决方式
  • 【comparator, comparable】小总结
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • DOM的那些事
  • JavaScript的使用你知道几种?(上)
  • JavaScript异步流程控制的前世今生
  • MySQL主从复制读写分离及奇怪的问题
  • npx命令介绍
  • Odoo domain写法及运用
  • Sublime text 3 3103 注册码
  • Yii源码解读-服务定位器(Service Locator)
  • 搞机器学习要哪些技能
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 区块链技术特点之去中心化特性
  • 人脸识别最新开发经验demo
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 用mpvue开发微信小程序
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 追踪解析 FutureTask 源码
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 正则表达式-基础知识Review
  • #NOIP 2014# day.2 T2 寻找道路
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $.ajax()参数及用法
  • (C++20) consteval立即函数
  • (九十四)函数和二维数组
  • (五)关系数据库标准语言SQL
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 的字符串暂存池
  • .Net中的集合
  • .net中我喜欢的两种验证码
  • @Autowired和@Resource装配
  • @DependsOn:解析 Spring 中的依赖关系之艺术