这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记
主要想在这篇分享一下,除了常规编程以外,我在青训营学习过程中的一些辅助知识的补充。
Git
Git作为代码管理工具,在平常开发过程中有利于我们进行版本迭代,同时更好地对项目的开发关键节点有所掌握。在日常使用push和pull以外,通过字节青训营的课程,让我对一些指令有所补充和了解。
关于个人的小贴士:
1.在一台新电脑/虚拟机/服务器使用git时,首先需要进行用户配置。
git config --global user.name "yiming"
git config --global user.email 2070436167@email.szu.edu.cn
2.配置相应的密钥
ssh-keygen -t ed25519 -C "2070436167@email.szu.edu.cn"
在~/.ssh/id_ed25519.pub
3.常见操作集合
git init //初始化git仓库git remote add origin_ssh git@XXX
上面的配置
git remote -v //确定是否有远程仓库
git remote add origin_ssh git@XXX
git remote add origin_http https:/XXX
需求:同一个Origin配置不同的Push和Fetch URL
git remote set-url --add --push origin git...
4.HTTP 和 SSH的区别: http的身份认证,ssh是身份认证; 对于go来说,配置免密配置
git add
git status
git commit -m "first commit"
git checkout -b test //用于切换分支、版本
Annotation Tag 附注标签:
git tag -a v0.0.2 -, "add feature 1"
追溯历史版本:
1.Ref获取当前版本代码
2.获取历史版本
git log 查看
git cat-file
5.rebase 主要是对分支信息进行
1.合并commit
2.修改具体的commit message
3.删除某个commit
git gc 可以删除一些不需要的object
git reflog用于记录操作日志,手动将日志设置过期。
【git reflog 是对一些误操作补救的好方法。比如错误的merge,比如错误的处理两个不同的分支产生的错误信息。】
6.假如我们需要向一个开源仓库提pr,需要我们先clone下来,切换dev测试版本。进行pull request,等待审批。
注意:fetch会把代码拉取到本地,但是不会合并当前分支。需要注意一下!!!
项目部署上线
在这里顺便分享一个将项目部署到XX云上的技巧,主要是为需要部署上线的同学准备。
这里以前后端分离的项目为准,首先需要准备工作:
1.前端通过npm run build 打包dist文件和static文件夹
2.后端通过go build得到可执行文件,针对windows同学记得将go env的设置GOARCH="amd64",因为部署的服务器主要以Linux服务器为主
3.如果是选用某云的同学,可以尝试去选择宝塔配置可以实现快速部署。就算没有的话也可以手动安装nginx进行部署,具体流程是在nginx配置文件设置对应目录下的前端dist文件夹、转发的后台端口,并在linux环境下运行可执行的Go文件。这样可以实现将项目部署\
PS:这里提示一个小细节,比如有的同学想更新Go后端文件版本,把Linux上文件删除了,但是服务还是旧服务。这主要的原因是因为,当一个进程在Linux下执行时,即使他的文件已经被删除,但是由于他是以文件描述符的形式存在go的运行目录下,因此还能够正常工作。
PPPS:结论就是,如果有时候我们误删了某个文件,但是该文件之前还在运行的话,可以尝试去恢复该文件。在这里就不详细展开。
后面我再补一个nginx配置代码: 值得注意的是XXX都是你服务器的公网地址
server
{
listen 8001;
listen 80;
server_name XXX.XXX.XXX.XXX;#这里主要是服务器公网地址
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/XXX.XXX.XXX.XXX/dist; #这个是目录下的前端文件夹dist
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-56.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/XXX.XXX.XXX.XXX.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
location /api{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:8888;
}
access_log /www/wwwlogs/XXX.XXX.XXX.XXX.log; #访问日志
error_log /www/wwwlogs/XXX.XXX.XXX.XXX.error.log; #错误日志
}