- 背景:
- 本地Windows已有写好的代码,并且PowerShell可以直接通过ssh连接到服务器
- 本地Windows已经安装好Git
- 一台有普通用户权限的Linux服务器
- 目的:
- 需要使用Git来管理代码
- 自动部署到服务器,省去每次写完复制的步骤
服务器端
-
在服务器端建立一个空的git项目1,后续我们就将代码提交到这里
1 2 3 4
cd ~ mkdir mygit #新建文件夹存放git项目 cd mygit git --bare init #在服务器端建立了一个空的git项目
-
编辑hook文件并给予权限2
1 2
vim ~/mygit/hooks/post-update #写入部署代码的脚本 chmod +x ~/mygit/hooks/post-update #给予脚本执行权限
其中在
post-update
文件中写入如下脚本,注意修改高亮行1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports. # # To enable this hook, rename this file to "post-update". unset GIT_DIR DIR_ONE="/root/nginx_docker/html/zzo_blog/blog.iyu.icu/" #此目录为服务器部署代码的目录 cd $DIR_ONE git init git clean -df git remote add origin ~/mygit #注意要与之前服务器建立的git仓库路径匹配 git pull origin master
注意: 一定要unset GIT_DIR清除变量, 不然会引起
remote: fatal: Not a git repository: ‘.’
错误。
本地
- 在本地初始化git仓库,并加入文件提交代码,注意修改高亮行
1 2 3 4 5 6
cd myprogram #进入我们存放项目的文件夹 git init #建立初始化仓库 git add . #添加项目中的文件 git commit -m "first!" #提交更改 git remote add origin ssh://iyu@iyu.icu:2333/home/iyu/mygit #添加远程仓库 git push origin master #将更改push到远程仓库中去
- 后面本地提交代码并push到远程仓库只需要
1 2 3 4
cd myprogram #进入我们存放项目的文件夹 git add . #添加项目中的文件 git commit -m "first!" #提交更改,引号内提示信息可以自定义 git push origin master #将更改push到远程仓库中去
有参考:
点击链接末尾的回车符可以跳转回引用处~
-
git新建项目并上传到服务器 - 简书
https://www.jianshu.com/p/fcb5cee92131 ↩︎ -
用 Git 钩子进行简单自动部署 | Aotu.io「凹凸实验室」
https://aotu.io/notes/2017/04/10/githooks/index.html ↩︎