Skip to content

Commit ef20e51

Browse files
committed
更新了部分文档
1 parent c6fe046 commit ef20e51

5 files changed

+56
-23
lines changed

Day16-20/16-20.Python语言进阶.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,7 @@
847847
例子:自定义字典限制只有在指定的key不存在时才能在字典中设置键值对。
848848

849849
```Python
850-
class SetOnceMappingMixin():
850+
class SetOnceMappingMixin:
851851
"""自定义混入类"""
852852
__slots__ = ()
853853

@@ -897,6 +897,7 @@
897897

898898
class President(metaclass=SingletonMeta):
899899
"""总统(单例类)"""
900+
900901
pass
901902
```
902903

Day91-100/91.团队项目开发的问题和解决方案.md

+33-12
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ git init
139139

140140
![](./res/git_repository.png)
141141

142-
> **提示**:用`ls -la`查看所有文件会发现在执行完上面的命令后,文件夹下多了一个名为`.git`的隐藏文件夹,这个文件夹就是Git版本仓库
142+
> **提示**:用`ls -la`查看所有文件会发现在执行完上面的命令后,文件夹下多了一个名为`.git`的隐藏文件夹,这个就是本地的Git版本仓库
143143
144144
通过`git add`可以将指定的文件或所有文件添加到暂存区。
145145

@@ -184,7 +184,7 @@ git commit -m '本次提交的说明'
184184

185185
```Shell
186186
git log
187-
git log --graph --pretty=oneline --abbrev-commit
187+
git log --graph --oneline --abbrev-commit
188188
```
189189

190190
#### Git服务器概述
@@ -205,7 +205,7 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
205205

206206
![](./res/gitee-add-members.png)
207207

208-
3. 项目的分支。创建项目后,项目只有一个默认的**master**分支,应该将该分支设置为“保护分支”来避免项目管理者之外的成员修改该分支。当然,如果需要我们也可以在线创建新的代码分支。
208+
3. 项目的分支。创建项目后,项目只有一个默认的**master**分支,应该将该分支设置为“保护分支”来避免项目管理者之外的成员修改该分支(不可直接提交)。当然,如果需要我们也可以在线创建新的代码分支。
209209

210210
4. 设置公钥实现免密访问。在项目的“设置”或“管理”中我们还可以找到“部署公钥管理”的选项,通过添加部署公钥,可以通过SSH(安全远程连接)的方式访问服务器而不用每次输入用户名和口令。可以使用`ssh-keygen`命令来创建密钥对。
211211

@@ -237,8 +237,6 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
237237

238238
其中,`-u``--set-upstream`的缩写,用来指定推送的服务器仓库,后面的`origin`就是刚才给仓库起的简短的别名,冒号前面的`master`是本地分支名,冒号后面的`master`是远程分支名,如果本地分支`master`已经和远程分支`master`建立过关联,则冒号以及后面的部分可以省略。
239239

240-
> **说明**:一般不能直接将工作成果push到`master`分支,因为它通常是一个受保护分支。
241-
242240
3. 从远程仓库取回代码。
243241

244242
```Shell
@@ -247,7 +245,7 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
247245

248246
#### Git分支操作
249247

250-
1. 创建和切换分支。下面的命令创建了名为`dev` 的分支并切换到该分支。
248+
1. **创建****切换**分支。下面的命令创建了名为`dev` 的分支并切换到该分支。
251249

252250
```Shell
253251
git branch <branch-name>
@@ -262,7 +260,7 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
262260

263261
> **注意**:在之前的Git版本中,切换分支使用`git checkout <branch-name>`命令,也可以通过`git checkout -b <branch-name>`来创建并切换分支。`git switch`命令目前仍然处于试验性阶段,但很明显这个命令更加清晰的表达了它要做的事情。
264262
265-
2. 关联远程分支。例如:如果当前所在的分支还没有关联到远程分支,可以使用下面的命令为它们建立关联。
263+
2. **关联远程**分支。例如:如果当前所在的分支还没有关联到远程分支,可以使用下面的命令为它们建立关联。
266264

267265
```Shell
268266
git branch --set-upstream-to origin/develop
@@ -288,7 +286,7 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
288286
git branch --unset-upstream <branch-name>
289287
```
290288

291-
3. 分支合并。例如在`dev`分支上完成开发任务之后,如果希望将`dev`分支上的成果合并到`master`,可以先切回到`master`分支然后使用`git merge`来做分支合并,合并的结果如下图右上方所示。
289+
3. 分支**合并**。例如在`dev`分支上完成开发任务之后,如果希望将`dev`分支上的成果合并到`master`,可以先切回到`master`分支然后使用`git merge`来做分支合并,合并的结果如下图右上方所示。
292290

293291
```Shell
294292
git switch master
@@ -299,7 +297,7 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
299297

300298
在合并分支时,没有冲突的部分Git会做自动合并。如果发生了冲突(如`dev``master`分支上都修改了同一个文件),会看到`CONFLICT (content): Merge conflict in <filename>. Automatic merge failed; fix conflicts and then commit the result`(自动合并失败,修复冲突之后再次提交)的提示,这个时候我们可以用`git diff`来查看产生冲突的内容。解决冲突通常需要当事人当面沟通之后才能决定保留谁的版本,冲突解决后需要重新提交代码。
301299

302-
4. 分支变基。分支合并操作可以将多个分支上的工作成果最终合并到一个分支上,但是再多次合并操作之后,分支可能会变得非常的混乱和复杂,为了解决这个问题,可以使用`git rebase`操作来实现分支变基。如下图所示,当我们希望将`master``dev`上的工作成果统一到一起的时候,也可以使用变基操作。
300+
4. 分支**变基**。分支合并操作可以将多个分支上的工作成果最终合并到一个分支上,但是再多次合并操作之后,分支可能会变得非常的混乱和复杂,为了解决这个问题,可以使用`git rebase`操作来实现分支变基。如下图所示,当我们希望将`master``dev`上的工作成果统一到一起的时候,也可以使用变基操作。
303301

304302
![](./res/git-rebase.png)
305303

@@ -311,7 +309,7 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
311309

312310
当我们在`dev`分支执行`git rebase`命令时,将首先计算`dev`分支和`master`分支的差集,然后应用该差集到`dev`分支,最后我们切回到`master`分支并执行操作合并,这样就看到了如上图右下方所示的干净的分支。
313311

314-
5. 删除分支。删除分支可以使用`git branch`加上`-d`参数,如果分支上的工作成果还没有合并,那么在删除分支时会看到`error: The branch '<branch-name>' is not fully merged.`这样的错误提示。如果希望强行删除分支,可以使用`-D`参数。删除分支的操作如下所示。
312+
5. **删除**分支。删除分支可以使用`git branch`加上`-d`参数,如果分支上的工作成果还没有合并,那么在删除分支时会看到`error: The branch '<branch-name>' is not fully merged.`这样的错误提示。如果希望强行删除分支,可以使用`-D`参数。删除分支的操作如下所示。
315313

316314
```Shell
317315
git branch -d <branch-name>
@@ -327,14 +325,31 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
327325
git push origin :develop
328326
```
329327

328+
或者
329+
330+
```Shell
331+
git push origin --delete develop
332+
```
333+
330334
#### Git其他操作
331335

332336
1. `git fetch`:下载远程仓库的所有变动,可以将远程仓库下载到一个临时分支,然后再根据需要进行合并操作,`git fetch`命令和`git merge`命令可以看作是之前讲的`git pull`命令的分解动作。
333337

338+
```Shell
339+
git fetch origin master:temp
340+
git merge temp
341+
```
342+
334343
2. `git diff`:常用于比较工作区和仓库、暂存区与仓库、两个分支之间有什么差别。
335344

336345
3. `git stash`:将当前工作区和暂存区发生的变动放到一个临时的区域,让工作区变干净。这个命令适用于手头工作还没有提交,但是突然有一个更为紧急的任务(如线上bug需要修正)需要去处理的场景。
337346

347+
```Shell
348+
git stash
349+
git stash list
350+
git stash pop
351+
```
352+
338353
4. `git reset`:回退到指定的版本。该命令主要有三个参数,如下图所示。
339354

340355
![](./res/git-reset.png)
@@ -435,12 +450,15 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
435450
```Shell
436451
git checkout master
437452
git merge --no-ff release-0.1
438-
git tag -a 0.1
453+
git push
439454

440455
git checkout develop
441456
git merge --no-ff release-0.1
457+
git push
442458

443459
git branch -d release-0.1
460+
git tag -a v0.1 master
461+
git push --tags
444462
```
445463

446464
4.`master`分支创建`hotfix`分支,在修复bug后合并到`develop``master`分支(上图右下)。
@@ -458,12 +476,15 @@ Git不像SVN那样一定需要中央服务器才能工作,上面我们演示
458476
```Shell
459477
git checkout master
460478
git merge --no-ff hotfix-0.1.1
461-
git tag -a 0.1.1
479+
git push
462480

463481
git checkout develop
464482
git merge --no-ff hotfix-0.1.1
483+
git push
465484

466485
git branch -d hotfix-0.1.1
486+
git tag -a 0.1.1
487+
git push --tags
467488
```
468489

469490
Git-flow流程比较容易控制各个分支的状况,但是在运用上github-flow要复杂得多,因此实际使用的时候通常会安装名为`gitflow`的命令行工具或者使用图形化的Git工具(如:SmartGit、SourceTree等)来简化操作,具体的可以参考[《git-flow 的工作流程》](<https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/git-flow>)一文,因为这篇文章写得已经很好了,本文不再进行赘述。

Day91-100/93.MySQL性能优化.md

+4-10
Original file line numberDiff line numberDiff line change
@@ -60,19 +60,13 @@ MySQL支持做数据分区,通过分区可以存储更多的数据、优化查
6060

6161
### SQL优化
6262

63-
1. 通过`show status`了解各种SQL的执行频率
63+
1. 定位低效率的SQL语句 - 慢查询日志
6464

6565
```SQL
6666

6767
```
6868

69-
2. 定位低效率的SQL语句 - 慢查询日志。
70-
71-
```SQL
72-
show processlist
73-
```
74-
75-
3. 通过`explain`了解SQL的执行计划。例如:
69+
2. 通过`explain`了解SQL的执行计划。例如:
7670

7771
```SQL
7872
explain select ename, job, sal from tb_emp where dno=20\G
@@ -99,9 +93,9 @@ MySQL支持做数据分区,通过分区可以存储更多的数据、优化查
9993
- `rows`:扫描的行数,行数越少肯定性能越好。
10094
- `extra`:额外信息。
10195

102-
4. 通过`show profiles``show profile for query`分析SQL。
96+
3. 通过`show profiles``show profile for query`分析SQL。
10397

104-
5. 优化CRUD操作。
98+
4. 优化CRUD操作。
10599

106100
- 优化`insert`语句
107101
-`insert`语句后面跟上多组值进行插入在性能上优于分开`insert`

番外篇/code/Test.java

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Test {
2+
3+
public static void main(String[] args) {
4+
JOptionPane.showMessageDialog(null, "Hello, world!");
5+
System.exit(0);
6+
}
7+
}

番外篇/code/test.py

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
def merge(items1, items2):
2+
items3 = []
3+
index1, index2 = 0, 0
4+
while index1 < len(items) and index2 < len(items2):
5+
if items[index1] < items2[index2]:
6+
items3.append(items1[index1])
7+
index1 += 1
8+
else:
9+
items3.append(items2[index2])
10+
index2 += 1

0 commit comments

Comments
 (0)