不是来自 Git 本身,不是。
不过,您可以直接停止使用git add,并运行您自己编写的程序。创建一个别名 ( git a) 或为其命名git-a并将其放入您的路径中,以便git a调用您的程序,该程序或多或少读作:
#! /bin/sh
# compute all-zero null hash ID (git rev-parse should have a flag for this!)
zeros=$(git hash-object --stdin </dev/null | sed 's/./0/g')
confirm=false
for arg do
# if file is modified in staging area WRT HEAD commit, confirm
headrev=$(git rev-parse "HEAD:$arg" 2>/dev/null || echo $zeros)
indexrev=$(git rev-parse ":arg" 2>/dev/null || echo $zeros)
if [ $headrev != $indexrev ]; then
echo "warning: $arg is modified in index"
confirm=true
fi
done
if $confirm; then
echo -n "add anyway? (y/n) "
read yn
case "$yn" in
y|Y|yes|YES);;
*) echo "not adding"; exit 1;;
esac
fi
git add "$@"
Run Code Online (Sandbox Code Playgroud)
该脚本完全未经测试,因此请先测试。请注意,这也是故意简单的:它不处理与 相同的标志参数,并且git add不会git add .正确处理;为此你必须更加努力地工作。
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |