在EC2上创建Git仓库
1. 创建主仓库
在EC2上建立一个中央仓库。SSH到EC2实例后
mkdir repo-name.git
cd repo-name.git
git init --bare
一个bare仓库是不能进行commit的,只是当作一个中央仓库存在。所有工作都应该先在本地的仓库中完成后push进来。
2. 在本地push/pull
本地git仓库是通过ssh从服务器push/pull的,又因为EC2必须有私钥,所以先执行一步添加私钥的操作。
eval "$(ssh-agent -s)"
ssh-add /path/to/the/private/key
然后在本地建立另一个工作仓库,
cd repo-name
git init
git add .
git commit -m "Initial commit"
git remote add origin ubuntu@xxxxxxx:/path/to/your/repo-name.git
git config --global remote.origin.receivepack "git receive-pack" # needed for EC2 stuff
git push origin master
以后工作仓库的改动都可以push到中央仓库了。
3. 自动更新这个网站
在本地更新了网站内容后,源代码会push到服务器的仓库里。我新建了一个脚本,可以一键完成 (服务器端同步更新源码 — 在服务器端编译 — 部署到nginx根目录下)这一系列动作。
git pull origin master
source .venv/bin/activate
sphinx-build source notes
sudo rm -rf /var/www/html/notes
sudo cp -r notes /var/www/html/
deactivate
参考资料
https://www.geeksforgeeks.org/bare-repositories-in-git/ https://gist.github.com/matthewoden/b29353e266c554e04be8ea2058bcc2a0 https://www.geeksforgeeks.org/how-to-git-clone-a-remote-repository/