0%

项目简单操作

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

天啊这图根本就是我


SSH 连接到服务器

通过 SSH 连接到服务器:

1
ssh -p <端口号> <用户名>@<服务器IP地址或域名>
占位符 含义
<端口号> SSH 服务监听的端口号。默认是 22
<用户名> 登录服务器时使用的用户名,比如 rootubuntuadmin 等。用户名必须是服务器端系统里已有的账户名
<服务器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
2
ssh-keygen -t ed25519 -C "you@example.com"
cat ~/.ssh/id_ed25519.pub

然后将 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

接下来就可以修改代码了。然后使用

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