Git教程(五):远程仓库

远程仓库管理

添加远程仓库

1
git remote add <remote-name> <remote-url>

查看远程仓库

1
git remote -v

删除远程仓库

1
git remote rm <remote-name>

重命名远程仓库

1
git remote rename <old-name> <new-name>

从远程仓库拉取代码

1
git pull <remote-name> <branch-name>

fetch默认远程仓库(origin)当前分支的代码,然后合并到本地分支

1
git pull

将本地改动的代码Rebase到远程仓库最新的代码上(为了有一个干净的、线性的提交历史)

1
git pull --rebase

推送代码到远程仓库(然后再发起pull request)

1
git push <remote-name> <branch-name>

获取所有远程分支

1
git fetch <remote-name>

查看远程分支

1
git branch -r

fetch某一个特定的远程分支

1
git fetch <remote-name> <branch-name>

删除远程仓库文件

如果要删除的文件已经被git跟踪,那么即使添加到.gitignore也是没有用的,
具体操作步骤:

  1. 预览将要删除的文件
    加上 -n 表示只是展示,不会删除任何文件
1
git rm -r -n --cached filename
  1. 确定无误后删除文件:
1
git rm -r --cached filename
  1. 提交到本地并推送到远程服务器
1
2
git commit -m "提交说明"
git push origin master
  1. 修改本地.gitignore文件并提交

几个常用的远程仓库

GitHub

GitHub是一个面向开源及私有软件项目的托管平台,官方网址:github.com
因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。

GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享、任务管理、宏包依赖关系图谱等功能。Copilot是GitHub的一个新功能,可以帮助开发者编写代码。

Gitee

Gitee是码云的英文名称,官方网址:gitee.com。Gitee是一个面向开源及私有软件项目的托管平台,于2015年4月正式上线。 Gitee提供了Git代码仓库托管及基本的Web管理界面,支持Git、SVN、Mercurial等多种版本库格式。

GitLab

GitLab是一个开源的版本库管理软件,官方网址:gitlab.com
可以通过Web界面进行浏览、管理和操作。GitLab是一个基于Ruby on Rails开发的软件,使用Git作为代码仓库管理工具,支持多种版本库格式。
可以搭建GitLab私服,也可以使用GitLab提供的公共服务。

TypeScript 笔记

TypeScript

安装

1
npm install -g typescript

HelloWorld

新建test.ts文件,添加如下内容:

1
2
3
const hello : string = "Hello, TypeScript!"
console.log(hello)

typescript不能直接被浏览器识别,需要使用tsc命令编译生成js文件后才能运行:

1
2
tsc ./test.ts
node test.js

  • TypeScript区分大小写
  • TypeScript中,分号是可选的,使用或者不使用都可以,以下代码都是正确的:
1
2
console.log('Hello')
console.log('TypeScript');
  • TypeScript支持面向对象
1
2
3
4
5
6
7
class Site {
name():void {
console.log("GeekHall")
}
}
var obj = new Site();
obj.name();

function

1
2
3
4
5
6
7
8
9
(()=>{
function sayHi(str:string) {
return 'Hello, ' + str
}

let text = 'TypeScript'
console.log(sayHi(text))
})()

几种Vue创建项目方式的比较

几种Vue创建项目方式的比较

使用CDN

适用于快速原型测试或学习。

1
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

使用Vue的命令行工具(CLI)

安装Vue@cli

1
2
3
4
5
# vue2
npm install -g vue-cli

# vue3
npm install -g @vue/cli

使用CLI创建项目

Vue2.x

1
2
3
vue init <template-name> <project-name>
npm i
npm run dev

Vue3.x

  • 安装新增TypeScript配置选项
  • 新增图形化安装方法
  • 保留了2.x之前的安装方法
1
2
3
4
5
6
7
8
9
vue create 项目名称
npm i
npm run serve
# 使用vue ui创建新项目(3.x新增)
vue ui
# 使用旧版(2.X)创建
npm install -g @vue/cli-init
# 'vue init'的运行效果与‘vue-cli@2.x’相同
vue init webpack projectname

使用Vue ui

运行命令:

1
vue ui

然后就可以在浏览器中使用ui界面来创建和管理vue项目了

使用Vite

推荐使用yarn

1
2
3
4
5
6
7
8
9
10
11
# npm 6.x
npm create vite@latest my-vue-app --template vue

# npm 7+, extra double-dash is needed:
npm create vite@latest my-vue-app -- --template vue

# yarn
yarn create vite my-vue-app --template vue

# pnpm
pnpm create vite my-vue-app -- --template vue

重置JetBrains试用期时间

如何重置JetBrain

重置试用期的教程网上很多,这里不再重复,本教程是为了解决长时间未登录IDE的情况下,
超过试用期无法登录IDE的问题,前提是需要JetBrains全家桶中至少有一款可以登录。

1
2
3
4
cd /Users/username/Library/Application Support/JetBrains;
cp IntelliJIdea2021.2/eval/idea212.evaluation.key GoLand2021.2/eval/GoLand212.evaluation.key
cp IntelliJIdea2021.2/eval/idea212.evaluation.key PhpStorm2021.2/eval/PhpStorm212.evaluation.key
cp IntelliJIdea2021.2/eval/idea212.evaluation.key PyCharm2021.2/eval/PyCharm212.evaluation.key

使用Python获取股票数据

如何使用python获取股票数据

安装anaconda

到Anaconda官网下载后直接安装即可。

使用conda管理虚拟环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建虚拟环境
conda create --name budd python=3.8

# 激活虚拟环境
conda activate budd

# 退出虚拟环境
conda deactivate

# 列出虚拟环境
conda info --envs

# 删除虚拟环境
conda remove -n venv --all

安装tushare

1
pip install tushare

注册用户并获取token:在用户=>个人主页=>接口token中获取自己用户的token,注意安全起见这个token不要发给任何其他人或公开使用。
这里我将自己的token配置到环境变量中,方便代码开源
编辑 .bash_profile文件,添加如下内容:

1
export TUSHARE_TOKEN="Your token"

然后就可以在代码中通过下面的方式读取环境变量的方式获取token并使用了。

1
os.getenv('TUSHARE_TOKEN')

获取A股股票列表并保存至Excel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import warnings
from numpy import dsplit
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import os
from pandas import ExcelWriter

token = os.getenv('TUSHARE_TOKEN')
ts.set_token(token)

pro = ts.pro_api()

# 查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L',
fields='ts_code,symbol,name,area,industry,list_date')

# print(data)
with ExcelWriter("All_Stock_A.xlsx") as writer:
data.to_excel(writer)

获取股票基本信息并保存至Excel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

import warnings
from numpy import dsplit
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import os
from pandas import ExcelWriter

token = os.getenv('TUSHARE_TOKEN')
pro = ts.pro_api(token)

excel_header = ['股票代码', '法人代表', '总经理', '董秘',
'注册资本', '注册日期', '省份', '城市', '公司介绍', '公司主页', '主营业务及产品', '员工人数', '经营范围']

datasz = pro.stock_company(
exchange='SZSE', fields='ts_code,chairman,manager,secretary,reg_capital,setup_date,province,city,introduction,website,employees,main_business,business_scope')
datash = pro.stock_company(
exchange='SSE', fields='ts_code,chairman,manager,secretary,reg_capital,setup_date,province,city,introduction,website,employees,main_business,business_scope')

# print(data)
with ExcelWriter("Stock_Basic_Info.xlsx") as writer:
datash.to_excel(writer, sheet_name='上交所', header=excel_header, index=False)
datasz.to_excel(writer, sheet_name='深交所', header=excel_header, index=False)

更多其他操作请参考官方API文档:https://tushare.pro/document/2

docker笔记

Docker笔记

安装:

1
brew install docker

使用

  1. Clone the repository:

从Github或DockerHub下载Docker仓库,
仓库中包含了你需要的构建和运行一个容器的所有内容。

1
2
3
docker run --name repo alpine/git clone https://github.com/docker/getting-started.git

docker cp repo:/git/getting-started/ .
  1. Build the image

一个Docker image 是一个给你的容器使用的私有文件系统,它包含了所有你的容器所需要的文件和代码。

1
2
cd getting-started
docker build -t docker101tutorial .
  1. Run

Start a container based on the image you built in the privious step.
启动在上一步编译的容器映像

1
docker run -d -p 80:80 --name docker-tutorial docker101tutorial
  1. Share

可以再DockerHub保存和分享你的image,以便让其他人可以在任何机器上下载和运行你的image。

1
2
3
docker tag docker101tutorial {userName}/docker101tutorial
docker push {userName}/docker101tutorial

Docker 常用命令

1
docker image ls

算法笔记-Dijsktra

算法笔记

Dijkstra

Dijkstra 算法

  1. 每次从未标记的节点中选择距离出发点最近的节点,标记,收录到最优路径集合中。
  2. 计算刚加入节点A的邻近节点B的距离(不包含标记的节点)
    若(节点A的距离+节点A到节点B的边长)< 节点B的距离,就更新节点B的距离和前面点。

适用于从一个顶点出发求其余各个顶点最短路径。且各边权重不能有负数

若存在负数则需要使用Bellman-Ford算法

若想求任意两点之间的最短路径,就需要使用Floyd算法

Obsidian教程

Obsidian教程

安装Obsidian + Obsidian-to-Anki

Obsidian => 设置 => 第三方插件 ,搜索Anki,安装Obsidian_to_Anki

设置:Note Type Table

粘贴这一行正则表达式(NeuraCache的卡片语法样式)

1
((?:[^\n][\n]?)+) #flashcard ?\n*((?:\n(?:^.{1,3}$|^.{4}(?<!<!--).*))+)

使用Obsidian和Anki

Anki中下载AnkiConnect插件并添加app:obsidian.md,默认只有localhost

image-20211002090521417

写Anki卡片

  • 笔记开头声明卡组

    1
    TARGET DECK English
  • 空一行下面就可以写卡片了

  • 卡片语法

    1
    2
    3
    4
    5
    6
    7
    8
    卡片正面内容 #flashcard
    卡片背面内容

    卡片正面内容 #flashcard
    卡片背面内容

    卡片正面内容 #flashcard
    卡片背面内容
  • 点击左侧Scan Anki按钮即可同步至Anki