本地代码通过git上传到vps
本地代码通过git上传到vps
使用 Git 不仅能备份你的代码,还能让你在本地修改后,轻松同步到 VPS 服务器上。
但是,在上传之前,有一个极其重要的安全隐患需要处理。
以下是“最佳实践”的操作指南,分为三个阶段:
🛑 第一阶段:安全处理(必须做!)
你的 app.py,如果里面直接写了 Channel Secret 和 Token。
如果直接上传到 GitHub(即使是私有仓库),这些密钥也很容易泄露。一旦泄露,别人可以用你的 Bot 发送任何消息。
请先修改代码,把敏感信息分离出来:
-
在本地项目文件夹里,新建一个文件叫
config.py:# config.py CHANNEL_ID = "******" CHANNEL_SECRET = "*******" USER_IDS = [ "******", "******" ] -
修改
app.py导入配置: 删除原来的定义,改为:import config # 导入刚才的文件 # 调用时改成 config.CHANNEL_ID 等 # 例如: # access_token = get_access_token(config.CHANNEL_ID, config.CHANNEL_SECRET) -
创建
.gitignore文件: 这个文件告诉 Git:“这些文件我不上传”。 新建文件.gitignore,写入以下内容:config.py sent_cards.json __pycache__/ *.log .DS_Storeconfig.py: 保护你的密钥。sent_cards.json: 这是记录“已发送卡片”的状态文件。服务器上运行脚本会修改它,如果你把它上传了,每次服务器一跑,你本地代码就会冲突。让服务器自己维护这个文件就好。
🚀 第二阶段:初始化 Git 并上传 (本地操作)
假设你已经在本地安装了 Git(如果没有,去 git-scm.com 下载)。
-
打开终端,进入你的项目文件夹:
cd ~/myproject # 你的文件夹路径 -
初始化仓库:
git init -
添加文件:
git add .(这一步会自动忽略
.gitignore里的文件) -
提交第一次版本:
git commit -m "Initial commit: LINE Bot basic logic" -
在 GitHub 上创建仓库:
- 登录 GitHub,点击右上角
+->New repository。 - 起个名(比如
daily-line-bot)。 - 建议选 Private (私有),虽然我们分离了密钥,但私人项目还是私有好。
- 点击
Create repository。
- 登录 GitHub,点击右上角
-
连接并推送: GitHub 会给你两行代码,类似下面这样(复制你页面上的,终端运行):
git remote add origin https://github.com/你的用户名/daily-line-bot.git git push -u origin main
☁️ 第三阶段:在 VPS 上部署和更新
现在代码已经在云端了,我们需要把 VPS 和它连接起来。
第一次部署(在 VPS 上):
-
登录 VPS。
-
克隆代码:
git clone https://github.com/你的用户名/daily-line-bot.git line_jp(它会让你输入 GitHub 用户名和密码。注意:现在的密码通常需要用 Personal Access Token)
-
补充被忽略的文件: 因为
config.py被忽略了,你需要手动在 VPS 上创建它:cd line_jp nano config.py # 把密钥填进去,保存退出同理,
sent_cards.json第一次运行会自动生成,不用管。
以后如何“经常更新”:
当你本地修改了代码(比如优化了逻辑):
-
本地 (Local):
git add . git commit -m "优化了发送逻辑" git push -
服务器 (VPS):
cd ~/daily-line-jp-bot git pull这就搞定了!代码瞬间同步成最新的,而且不会覆盖你服务器上独有的
config.py和sent_cards.json。
💡 进阶小贴士:免密更新
如果你觉得每次 git pull 都要输入密码很烦,可以在 VPS 上配置 SSH Key:
- VPS 上运行
ssh-keygen。 - 把生成的
~/.ssh/id_rsa.pub内容复制到 GitHub 的 Settings -> SSH and GPG keys 里。 - 以后用
git clone git@github.com:...的方式,就再也不用输密码了。