gpt4 book ai didi

git - 拦截 "git commit -a(m)"

转载 作者:太空狗 更新时间:2023-10-29 14:34:45 24 4
gpt4 key购买 nike

我喜欢 git 索引允许的细粒度提交,即在最终提交之前通过 git add 暂存单个文件甚至大块。不幸的是,有时在花费一些时间进行特定提交后,肌肉内存开始起作用,所以我 git commit -a -m "msg"。然后我要么不得不忍受它,要么跳过一些 reset--amend 箍。

有没有办法让我(理想情况下,全局)配置 Git,这样如果我发出 git commit -a,它就会被拦截?也许一个脚本要求我确认我是否真的想要全部提交?我考虑过将提交操作委托(delegate)给包装器脚本(例如,“gitcommit”),但我认为这不会很好,因为它不会阻止我执行 git commit -a -m "msg ",这首先是问题所在。

最佳答案

尝试 pre-commit hooks :

类似这样的(未测试)

.git/hooks/预提交

#!/bin/sh
git diff-files --quiet # check if the working directory have non-staged files
DIRTY_WORKING=$?

if [ ! $DIRTY_WORKING ] ; then # check if we are committing all files
# list all files to be committed
git diff-index --name-status --cached HEAD

echo "Are you sure? (type YES to continue)"
read VALUE
[ "x$VALUE" != "xYES" ]
exit $?
fi
exit 0

您可以使用 git diff-index --cached HEAD | 找出要提交的文件数wc -l。但我想我会把这个留给你自己。

关于git - 拦截 "git commit -a(m)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com