记录Git的一些基本操作

记录Git的一些常用操作

git pull 发生冲突时如何处理
  1. 使用git stash,暂存本地的改动, 然后执行git pull拉取文件, 最后, 执行 git stash pop, 将原本的代码拉回到本地工作目录
  2. 可以选择丢弃本地的改动, 使用 git reset --hard , 然后 git pull, 除非你确定当前的改动是可以被丢弃的, 否则会丢失你做过的任何改动
  3. 使用 git commit 提交本地的修改, 但这个一般很少用到. 经常会引出一个个的问题
如何使用码云配置一个项目的自动部署
  1. 宝塔中安装WebHook插件.
  2. 在该插件中添加一个新的Hook, 名字任意, 脚本后续放上, 添加完成后点查看密钥可看到使用方法
  3. 在码云中的仓库配置中, 开启webhook, 然后添加一条, url即为第二步中得到的URL
  4. 现在服务器中使用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

你可能感兴趣的:(杂学,git,webhook,git,stash,自动部署)