记录Git的一些常用操作
git pull 发生冲突时如何处理
- 使用
git stash
,暂存本地的改动, 然后执行git pull
拉取文件, 最后, 执行git stash pop
, 将原本的代码拉回到本地工作目录 - 可以选择丢弃本地的改动, 使用
git reset --hard
, 然后git pull
, 除非你确定当前的改动是可以被丢弃的, 否则会丢失你做过的任何改动 - 使用
git commit
提交本地的修改, 但这个一般很少用到. 经常会引出一个个的问题
如何使用码云配置一个项目的自动部署
- 宝塔中安装WebHook插件.
- 在该插件中添加一个新的Hook, 名字任意, 脚本后续放上, 添加完成后点查看密钥可看到使用方法
- 在码云中的仓库配置中, 开启webhook, 然后添加一条, url即为第二步中得到的URL
- 现在服务器中使用git clone项目, 然后, 本地修改一个文件, 测试提交并推送, 查看是否更新
宝塔webhook脚本
续上, 使用时, 需要将gitHttp
中的路径进行修改, 改为自己的
此脚本同一服务器上仅需配置一个, 此后的项目按照上节3~4步骤均可实现自动部署.
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径
gitPath="/www/wwwroot/$1"
#git 网址 你的码云网址 $1是系统接收变量 就是在webhook填你的项目名时传来的
gitHttp="https://gitee.com/arife/$1.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull origin master
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi
版权声明:本文为qq88468560原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。