这段时间,Bruno酱和Aspirant学长温柔耐心地教了我很多东西,我超级感激。我要及时记录这些笔记。
天啊这图根本就是我

SSH 连接到服务器
通过 SSH 连接到服务器:
1 | ssh -p <端口号> <用户名>@<服务器IP地址或域名> |
占位符 | 含义 |
---|---|
<端口号> |
SSH 服务监听的端口号。默认是 22 。 |
<用户名> |
登录服务器时使用的用户名,比如 root 、ubuntu 、admin 等。用户名必须是服务器端系统里已有的账户名 |
<服务器IP地址或域名> |
远程服务器的公网 IP 或域名。 |
用任意终端就能连接到服务器。
通过 VS Code 的 Remote-SSH 连接到服务器,可以使用图形化界面管理文件。在连接前,如果 SSH 有密码,可以先用 ssh-agent 跳过输入密码。
① 要启动 ssh-agent,先打开 Git Bash,输入:
1 | eval "$(ssh-agent -s)" |
输出:
1 | Agent pid <pid> |
② 添加私钥到 agent:
1 | ssh-add ~/.ssh/id_ed25519 |
如果有密码,这里会提示输入一次。之后就可以免密连接了。
文件传输,仓库克隆
要将 GitHub 的 repo 克隆到服务器,可以简单地 git clone
。
如果仓库是私有的,可以手动克隆后,再:
1 | scp -P <端口号> <本地文件路径> <用户名>@<服务器IP>:<远程路径> |
如果要递归上传文件夹,可以:
1 | scp -r -P <端口号> <本地目录路径> <用户名>@<服务器IP>:<远程路径> |
也可以用 VS Code 的 Remote-SSH 图形化上传。
私有仓库还可以用用户名+Token 克隆,需要用 Personal Access Token:
1 | git clone https://<your-username>:<your-token>@github.com/<your-username>/<repo>.git |
在这里设置 Token:Personal Access Tokens (Classic)
或用 SSH 克隆。先 本地 生成 SSH 密钥并上传到 GitHub:
1 | ssh-keygen -t ed25519 -C "you@example.com" |
然后将 id_ed25519.pub
内容添加到 GitHub。
测试一下:
1 | ssh -T git@github.com |
根据输出判断是否连接成功。上传私钥到信任的服务器:
1 | scp -P <端口号> ~/.ssh/<私钥文件> <用户名>@<ip>:~/.ssh/ |
之后可以克隆私有仓库了:
1 | GIT_SSH_COMMAND='ssh -i ~/.ssh/<私钥文件>' git clone git@github.com:<yourname>/<your-private-repo>.git |
想删掉私钥,就要:
1 | rm ~/.ssh/<私钥文件> |
虚拟环境
对于python,想要创建虚拟环境:
1 | python3 -m venv venv |
这将在当前目录下创建一个名为 venv
的文件夹,作为虚拟环境。要激活它:
1 | source venv/bin/activate |
要退出虚拟环境:
1 | deactivate |
部署前端
通过 service 来启动 Nginx 的命令是:
1 | sudo service nginx start |
配置文件修改后,通常要重启 Nginx:
1 | sudo service nginx restart |
要停止它:
1 | sudo service nginx stop |
查看 Nginx 状态:
1 | sudo service nginx status |
Git 工作流
参考:十分钟学会正确的github工作流,和开源作者们使用同一套流程_哔哩哔哩_bilibili
用 git init
初始化仓库。或者克隆,
1 | git clone xxx.git |
复制建立新分支,
1 | git checkout -b <分支名> |
这样可以不直接往 main 里 push 代码。
接下来就可以修改代码了。然后使用
1 | git diff |
来比较文件的变化。比较的是硬盘上的文件与 Git 保存分支文件之间的变化。
用
1 | git add <change_file> |
来告知你修改的文件,放入暂存区,或者
1 | git add . |
来添加所有的文件到暂存区。
用
1 | git commit |
提交到你的分支里。
用
1 | git push origin <分支名> |
push 到 GitHub 的 <分支名> 上,现在想要把 main 的更新(比如其他人此时做了更新)同步到 <分支名> 上,看看是否它们适配,
1 | git checkout main |
拉取,
1 | git pull origin master |
切换,
1 | git checkout <分支名> |
同步,
1 | git rebase main |
这会尝试先把本地的分支先变为 main 的内容,然后尝试把刚刚的 commit 用在这个分支上面。观察是否出现了rebase conflict,手动选择冲突代码。
再
1 | git push -f origin <分支名> |
-f
是 force。
接下来,发起 pull request
。然后 Squash and merge
。
然后,删除 remote 的分支。再在本地切换到 main branch 上,再
1 | git branch -D <分支名> |
最后,
1 | git pull origin main |