• 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退出,备份会终止,不做任何操作。

  • 相关阅读:
    20165309 Linux安装及学习
    20165309 技能学习经验与C语言
    20165309 我期望的师生关系
    20165317-我期望的师生关系
    20165308 学习基础和C语言基础调查
    20165308 我期望的师生关系
    20165320 结对编程学习第一周
    20165320 第七周学习总结
    20165320 第六周学习总结
    20165320 实验一 java环境的熟悉
  • 原文地址:https://www.cnblogs.com/kuikuitage/p/13557335.html
Copyright © 2020-2023  润新知