git status和git push扩展脚本

这篇具有很好参考价值的文章主要介绍了git status和git push扩展脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git status和git push扩展脚本

1、对git status扩展使用方法

我们先来看看效果:

git status和git push扩展脚本

在之前的时候,我是用git status 查看工作区的变化,我想看某个文件的变化必须使用git diff file_abs_path,必须要输入文件的相对目录。每次都输入我觉得很是费劲。

所以我想了个办法,写个脚本git_st其实是我对shell脚本起了别名,我把放在.bashrc中,alias git_st=source git_status.sh

如果你clone了platypus项目直接执行install脚本就可以了,在source ~/.bashrc,使配置文件生效。

使用方法:

$ git_st
$ git diff $dolphin_cpp
原理:

就是先遍历所有已经修改过的文件,向bash 中写入环境变量。变量名就是文件+后缀名,值就是文件的绝对路径。在使用git diff的时候,再引用写入的环境变量,比如:$dolphin_cpp,这样就可以了。

再仔细看下脚本:

#!/bin/bash

RED='\e[1;31m' # 红
RES='\e[0m'

GREEN='\033[32m'
GREEN_END='\033[0m'

function echo_red {
        echo -e "${RED}$1${RES}"
}

function echo_green {
        echo -e "${GREEN}$1${GREEN_END}"
}

var_list=()

function update_var {
        suffix=1
        newstr=$1
        # 解决文件可能重名,如果重名则添加后缀方式解决
        while [[ "${var_list[*]}" =~ $newstr ]]
        do
          newstr="$newstr""_""$suffix"
          suffix=$(($suffix+1))
        done

        var_list+=("$newstr")
        export "$newstr=$2"
        echo_red "$newstr=$2"
}

top_dir_path=`git rev-parse --show-toplevel`
# 获取 git status 输出的有变化的文件名,并保存到数组 files 中
files=( $(git status --porcelain | tee /dev/tty | awk '{print $2}') )

echo ""

if [ ${#files[@]} -eq 0 ]; then
    echo_green "Not find any modified file"
else
        echo_green "setting envirnoment variable start: "
        # 遍历文件列表,设置环境变量
        for file in "${files[@]}"
        do
                origin_file_name="$(basename "$file")"
                file_name="$(basename "$file")"
                if [[ $file_name == .* ]]; then
                        IFS='.'
                        arr=($file_name)
                        unset IFS
                        # 遍历数组中的每个元素
                        file_name="${arr[1]}"
                else
                        # 提取出文件名(不含后缀)
                        file_name="${file_name%%.*}"
                fi
                # 设置环境变量
                if [[ $origin_file_name = *.* ]]; then
                        file_name="$file_name""_""${origin_file_name##*.}"
                fi
                update_var "$file_name" "$top_dir_path/$file"
        done
        echo_green "setting envirnoment variable end: "
fi

unset RED
unset RES
unset GREEN
unset GREENEND

2、git push扩展

我在使用过程中发现,我的仓库可能有多个远程服务器,每次git push gitee && git push github && git push home,很是费劲。

所以写了个脚本直接在bash输入一个命令:git_push

看下效果:
git status和git push扩展脚本

在使用这个命令之前,你要确定你的本地分支已经和远程分支关联了。

这个push.sh脚本寥寥数行,但是省事多了。文章来源地址https://www.toymoban.com/news/detail-437445.html

remote_names=`git remote`

# 遍历所有Git远程仓库的名称并打印它们
for name in ${remote_names}
do
  git push $name
done

到了这里,关于git status和git push扩展脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C#】当重复使用一段代码倒计时时,使用静态类和静态方法,实现简单的this扩展方法

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月19日
    浏览(37)
  • uniapp仿微信朋友圈发布页(原生uni方法不使用扩展组件)

    常见的一些UI组件库都是只能提前选择发布图片或者发布视频,我觉得在发布前还要选择一下,挺麻烦的。虽然微信朋友圈也是这么做的吧。我希望的是,直接进入发布页,如果没有选择图片或者视频,也可以直接发布文字,选择媒体的话支持拍照、图片、视频三个选项。如

    2024年02月08日
    浏览(43)
  • 学习使用php、js脚本关闭当前页面窗口的方法

    在开发web应用程序时,我们通常需要在不同的网页之间进行导航。通常情况下,当我们需要关闭当前网页时,我们会使用浏览器自带的关闭按钮或者使用JavaScript代码来实现。但是,在一些特定的情况下,我们可能需要在服务器端使用php代码来关闭当前窗口。 第一种方法是使

    2024年01月17日
    浏览(38)
  • PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案

    PHP使用Redis实战实录系列 PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案 PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP: 出现上

    2024年02月15日
    浏览(37)
  • linux使用tar解压出现 gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not 的解决方法

    当你看到这篇文章的时候,不是一种治根的方法,甚至不能给你帮助 但多少给你提示,文件格式一开始就错了,不要在尝试解决方法,直接换方式下载正确的格式文件 通过scp从window上传一个zookeeper的压缩包,之后再linux进行tar解压,出现如下错误 截图如下所示: 先查看它所

    2024年02月09日
    浏览(35)
  • 定时脚本自动自动将文件push到git

    写脚本 绝对路径 环境注意 写python,bash脚本执行调用 py程序 定制crontab -e 日志要指定输入文件中 项目地址 https://gitee.com/stdev_1/sshpi10/ bash脚本 #!/bin/bash #path=~/github/ #watch_dir=“/home/pi/gittest/ipset/sshpi10” python3 /home/pi/gittest/ipset/sshpi10/readip.py cd /home/pi/gittest/ipset/sshpi10 git pull git a

    2024年02月07日
    浏览(27)
  • 【Git 教程】Git 进阶使用方法

    git stash 命令用于临时保存和恢复未完成的工作。 保存当前工作状态: 最新的建议写法: 这会创建一个新的 stash,你可以提供一个消息来进行描述。 查看所有保存的 stash: 恢复最近的 stash: 这会将最近的 stash 应用到当前分支,并从 stash 列表中删除它。 恢复指定的 stash:

    2024年02月21日
    浏览(35)
  • git使用方法小结

    先建立本地分支和远程分支的关联 git branch --set-upstream-to=origin/remote_branch your_branch 然后git push 否则就需要git push origin your_branch git branch -vv git branch -av git branch -r 直接强推 git push -f origin/master -f是强制推送的意思 1.在顶层目录修改.gitignore 2.删除本地chche缓存 git rm -r --cached . 3.重

    2024年02月09日
    浏览(37)
  • Git撤销使用方法

    目录 介绍 详细教程 1、撤销对文件的修改 2、撤销对所有文件的修改 3、撤销对已经暂存(staged)的文件的修改 4、撤销当前分支的提交 5、撤销所有本地的修改,回到远程仓库的状态 6、使用 git revert 撤销提交并创建新的提交 7、使用 git reset 撤销提交并删除提交历史 撤销是指

    2024年02月10日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包