Skip to content

Instantly share code, notes, and snippets.

@cyio
Created November 21, 2024 03:23
Show Gist options
  • Save cyio/d95a2f30545e0cd2c39ffe500afcca58 to your computer and use it in GitHub Desktop.
Save cyio/d95a2f30545e0cd2c39ffe500afcca58 to your computer and use it in GitHub Desktop.
ignore-changes.sh
#!/bin/bash
# 获取脚本所在目录
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
# 确定文件列表的路径
FILES_TO_IGNORE="$SCRIPT_DIR/files-to-ignore.txt"
# 检查文件是否存在
if [ ! -f "$FILES_TO_IGNORE" ]; then
echo "文件 'files-to-ignore.txt' 未找到,请确保文件位于脚本所在目录:$SCRIPT_DIR"
exit 1
fi
# 设置默认操作为 ignore
OPERATION="--assume-unchanged"
ACTION="ignore"
# 检查是否提供了操作参数
if [ $# -ge 1 ]; then
if [ "$1" == "ignore" ]; then
OPERATION="--assume-unchanged"
ACTION="ignore"
elif [ "$1" == "restore" ]; then
OPERATION="--no-assume-unchanged"
ACTION="restore"
else
echo "无效的操作参数: $1"
echo "使用 'ignore'(默认)或 'restore' 来选择操作"
exit 1
fi
fi
# 打印操作提示
if [ "$ACTION" == "ignore" ]; then
echo "默认操作:正在将文件标记为 'assume-unchanged'..."
else
echo "正在恢复文件的变更追踪 ('--no-assume-unchanged')..."
fi
# 执行操作
cat "$FILES_TO_IGNORE" | xargs -I {} git update-index $OPERATION {}
echo "操作已完成:$ACTION"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment