gpt4 book ai didi

git - 不要暂存或提交包含特定文本的文件

转载 作者:行者123 更新时间:2023-12-04 14:31:18 27 4
gpt4 key购买 nike

如果文件包含特定文本,是否有办法全局忽略暂存或提交的文件?
全局意义独立于工作空间/cwd
例如:

//@NOCHECKIN
//TODO: test performance
var numbers = new List<int> { args };
decimal average = numbers.Aggregate(
seed: 0,
func: (result, item) => result + item,
resultSelector: result => (decimal)result / numbers.Count);
此处的关键字“@NOCHECKIN”从暂存中省略文件。
我很想通过做一个简单的 git add . 来自动化这个过程。不用担心。
目前我一直在使用 git add -i并逐步通过

重新全局 :正如所指出的,这可能必须按存储库完成,我个人不知道,但我找到了适合我需求的解决方法。我刚刚用 pre-commit 创建了一个模板目录钩;现在任何时候我克隆或做 git init钩子(Hook)会自动包含在 repos 中。
https://git-scm.com/docs/git-init#_template_directory

最佳答案

pre-commit ,如果文件包含关键字,您可以从索引重置暂存文件,这样文件就不会被提交。 sample pre-commit可能是这样的:

#!/bin/bash

# get the staged files
s_files=$(git diff --name-only --cached)

# if a staged file contains the keyword, get it out of the staged list
for s_file in ${s_files};do
if grep -q -E '@NOCHECKIN' ${s_file};then
echo "WARNING: ${s_file} contains the keyword"
git reset ${s_file}
fi
done

# if there is not any staged file left, fail the commit, otherwise
# an empty commit would be created.
s_files=$(git diff --name-only --cached)
if [[ "${s_files}" = "" ]];then
echo "WARNING: nothing to commit"
exit 1
fi
exit 0

关于git - 不要暂存或提交包含特定文本的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59131979/

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