美文网首页Unity跨平台技术分享
使用命令快速重置更新git仓库

使用命令快速重置更新git仓库

作者: BowenK | 来源:发表于2017-11-29 19:48 被阅读38次

最近需要使用python做unity自动更新打包操作,因为我们的项目资源都是使用git仓库做版本控制管理,所以在做自动更新打包操作的时候,首先就是先重置更新本地的仓库并且同步git上的最新版本资源。
本来我想只要每次打包的时候,使用命令去拉取git最新的版本就可以了,但是如果你本地的版本跟git上的版本差异比较大,或者有冲突的时候就会更新失败,这时候就不能直接使用 git pull 去拉取了,而是要先重置强制舍弃掉本地的所有修改,再然后去拉取git上的最新资源。根据这个想法我写了一个脚本

#!/bin/sh
# 脚本目录 先把项目更新下来
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

PROJECT=$1    #项目的git名字
PRO_BRANCH=$2 #项目分支

BASE_GIT_URL="http://10.1.0.103:3000/global"

#项目git地址
PRO_GIT_URL="${BASE_GIT_URL}/${PROJECT}.git"

#你的项目路径
DIR_PROJ="${DIR}/Build/${PROJECT}/workspace"

echo '更新项目开始......'
if [ ! -x "$DIR_PROJ/.git" ]; then 
    if [ -x "$DIR_PROJ" ]; then  
        echo '$DIR_PROJ已经存在,先删除'
        rm -r "$DIR_PROJ"
    fi
    echo "git控制不存在,checkount.....${PRO_GIT_URL}"
    git clone $PRO_GIT_URL "${DIR_PROJ}"

    cd "${DIR_PROJ}"

    echo "${DIR_PROJ}"
    
    git checkout "origin/${PRO_BRANCH}"

else
    echo 'git控制已经存在, 更新资源'
    cd "${DIR_PROJ}"
    #git reset --hard
    git checkout . && git clean -df
    git pull 
    git checkout "origin/${PRO_BRANCH}"

fi
echo '更新项目结束......'

在测试的时候发现了一个新的问题就是当项目存在的时候去运行shell脚本更新的时候,报了一个错误,让我制定分支去更新具体报错

更新项目开始......
git控制已经存在, 更新资源
HEAD is now at 9ab776d bowenk bowenk
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

HEAD is now at 9ab776d... bowenk bowenk
更新项目结束......

所以后面去网上找了个方法试下点击这里去看看吧
网上很多人都是说用这个方法可以,但是我不知道我哪里写错了就是不行,既然这样我就用了个很丑的方法,既然让我指定个分支去让就指定吧,master分支是肯定会存在的,所以为我直接 git checkout master 然后再git pull 。
测试了下 每次都会更新到最新的资源,而且还不会报错了,最后贴上完整的shell脚本,希望大家多多指教。

#!/bin/sh
# 脚本目录 先把项目更新下来
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# STYLE_NAME=$1 #类型名字
PROJECT=$1    #项目的git名字
PRO_BRANCH=$2 #项目分支

BASE_GIT_URL="http://10.1.0.103:3000/global"

#项目git地址
PRO_GIT_URL="${BASE_GIT_URL}/${PROJECT}.git"

#你的项目路径
DIR_PROJ="${DIR}/Build/${PROJECT}/workspace"

echo '更新项目开始......'
if [ ! -x "$DIR_PROJ/.git" ]; then 
    if [ -x "$DIR_PROJ" ]; then  
        echo '$DIR_PROJ已经存在,先删除'
        rm -r "$DIR_PROJ"
    fi
    echo "git控制不存在,checkount.....${PRO_GIT_URL}"
    git clone $PRO_GIT_URL "${DIR_PROJ}"
    cd "${DIR_PROJ}"
    git checkout "origin/${PRO_BRANCH}"

else
    echo 'git控制已经存在, 更新资源'
    cd "${DIR_PROJ}"
    git reset --hard
    git checkout . && git clean -df
    git checkout master
    git pull 
    git checkout "origin/${PRO_BRANCH}"

fi
echo '更新项目结束......'

本文固定链接

相关文章

  • 使用命令快速重置更新git仓库

    最近需要使用python做unity自动更新打包操作,因为我们的项目资源都是使用git仓库做版本控制管理,所以在做...

  • Git错误记录

    1 .远程仓库关联重置 输入命令:git push -u origin masterUsername for 'h...

  • (1) git初识

    小结 初始化一个Git仓库,使用git init命令。 添加文件到Git仓库,分两步: 使用命令git add <...

  • git积累

    git命令重置本地提交: 回滚操作 重置merge 命令拉去远程分支 更新远程分支列表 切换到当前分支 —>合并...

  • git命令

    1、初始化一个Git仓库,使用git init命令 2、添加文件到Git仓库,分两步: 使用命令git add <...

  • git小白命令

    初始化一个Git仓库,使用git init命令。 添加文件到Git仓库,分两步: 使用命令git add

  • Git操作记录

    Git的使用常用命令GitHub远程仓库 Git的使用 常用命令 创建仓库 添加命令 提交命令 查看状态 查看修改...

  • IDEA中Git的使用

    一、GIT基础 1、初始化一个Git仓库,使用git init命令。 2、添加文件到Git仓库,分两步: 使用命令...

  • git配置多个仓库

    查看远程库信息 增加新的仓库配置 如果增加新的仓库配置报错 使用git fetch更新要更新所有分支,命令可以简写...

  • Git入门教程

    Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,...

网友评论

    本文标题:使用命令快速重置更新git仓库

    本文链接:https://www.haomeiwen.com/subject/xgmpbxtx.html