【效率开发】一键丢弃/暂存/备份 本地变更

145 阅读1分钟

背景

日常开发时,你是否遇到过如下场景:

  • 追一个问题,尝试A方案时,改动了一些代码/文件,但没成功,准备试下B方案 ······

  • 正在开发,本地有一些未提交的变更,然后有其他同学跑来找你,需要:看一个线上问题 / 基于某个分支打一个包 ······

方案

面对如上场景,我们只能选择:

  • 先丢弃所有变更,再尝试新方案 —— 无法回顾
  • 备份下代码/文件,再尝试新方案 —— 不方便回顾,文件多、大、散乱分布时 较为麻烦/耗时
  • 提交所有变更到新的临时分支,再尝试新方案 —— 方便回顾、切换、再次编辑

简化操作

所以针对如上场景,定义了如下 alias ,以便简化一些重复操作~

【注意】

需要将如下代码 添加到 ~/.bashrc 文件中,在终端执行 source ~/.bashrc 后即可生效、使用

1. 一键备份&清空工作区

即 将当前所有变更 提交到一个新建的备份分支(cleanup/<当前分支名>_<当前时间戳>),并回到当前分支,以实现「备份&清空工作区」的效果

alias g.cleanup='git add . && cb=`git symbolic-ref --short HEAD` && dt=`date "+%Y%m%d%H%M%S"` && bb="${cb}_${dt}" && git checkout -b cleanup/$bb && git commit -m "$bb $1" && git checkout $cb && echo -e "Complete cleanup to:\n\t$bb\n\n"'

2. 一键丢弃&清空工作区

即 撤回暂存,丢弃所有修改,并移除新增文件,以实现「丢弃&清空工作区」的效果

alias g.clean='git restore --staged . && git clean -fd && git checkout . && echo -e "已丢弃工作区\n\n"'

3. 一键备份

即 通过backup.sh脚本,实现批量打包压缩的方式,备份指定文件到特定目录。

alias backup='sh ~/.bash_files/BackupFiles/backup.sh'
alias backup.install='install_path="/Users/$USER/.bash_files/BackupFiles"; git_url="https://github.com/AndyM129/BackupFiles.git"; rm -rf "$install_path"; git clone $git_url $install_path; echo "backup.sh install success: $install_path"; open $install_path;'