zoukankan      html  css  js  c++  java
  • repo或者git diff -uno差异文件全路径备份

    read -p "ReadMe:" readme && export GWDIR=date +%m%d_%H%M%S_$readme && mkdir /home/gw/backup/$GWDIR -p; git status -uno > ~/.status; cat ~/.status | grep -o -E "modified.|new file." | sed 's/modified:[ ]//' | sed 's/new file:[ ]//'| xargs -i cp --parents {} /home/gw/backup/$GWDIR; echo "PATH : $PWD" >> /home/gw/backup/$GWDIR/git.txt; echo "INFO : "$readme >> /home/gw/backup/$GWDIR/git.txt && echo "" >> /home/gw/backup/$GWDIR/git.txt ;git status >> /home/gw/backup/$GWDIR/git.txt; git diff >> /home/gw/backup/$GWDIR/diff.patch; vim /home/gw/backup/$GWDIR/git.txt; chmod 777 /home/gw/backup/$GWDIR -R && chmod +w /home/gw/backup/$GWDIR;
    

    1.运行会提示输入修改记录的特征字符作为备份目录的尾缀,便于识别;
    2.保留目标目录为/home/gw/backup/$GWDIR ,其中GWDIR即目标目录date +%m%d_%H%M%S_$readme为日期时间加上Readme输入的特征字符构成;
    3.备份只备份已修改的文件和已经staged的新增文件。cp --parents拷贝基于备份目录内逐层创建修改文件的相对路径,逐个拷贝进行备份文件;
    4.git status状态信息会附加到/home/gw/backup/$GWDIR/git.txt,
    5.git diff也会重定向到/home/gw/backup/$GWDIR/diff.patch
    6.最后会调用vim打开一个/home/gw/backup/$GWDIR/git.txt,第一行预存了当前git仓库的绝对路径,第二行可以编辑以增加修改的详情记录,往后即第4步附加的git status信息。不考虑vim编辑异常导致的信息不完善问题。
    7.如果第一步read输入错误可以Ctrl+C退出,备份会终止,不做任何操作。

  • 相关阅读:
    STM32F103ZET6 PWM输出
    STM32F103ZET6串口通信
    STM32F103ZET6系统定时器SysTick
    STM32F103ZET6的基本定时器
    npm 安装vue cli脚手架报错 npm err code EEXIST 或者 npm err cb<> never called 解决方案
    Java调用第三方http接口的方式
    机器学习算法原理解析
    Spark MLlib 机器学习
    Spark SQL基本概念与基本用法
    HBase基本概念与基本使用
  • 原文地址:https://www.cnblogs.com/kuikuitage/p/13557335.html
Copyright © 2011-2022 走看看