gpt4 book ai didi

git - 将我在提交中更改的行中的空格转换为制表符

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

我已经对一个 git 存储库做出了相当大的 promise (60 个文件被更改,1635 个插入(+),3 个删除(-)),现在我意识到我使用空格来缩进,而其余代码使用制表符。

因此,我想替换制表符的空格,但仅限于该提交更改的行,因为我不想修改其他可能使用空格的代码。

我该怎么做?我不关心它是否会修改工作目录或原始提交,两者都可以。

最佳答案

你可以试试我写的一个小脚本(washamend)。首先提交,然后运行此脚本进行清理。它使用修改这样做。

#!/bin/bash -e
#
# Rewrite the last commit to remove any trailing whitespace
# in the new version of changed lines.
# Then replace space-based indentation with TAB based indentation
# based on TABS at every eight position
#
[[ -z $TRACE ]] || set -x
trap "rm -f $tmpf" 0
tmpf1=$TMP/$$.1.diff
tmpf2=$TMP/$$.2.diff
git show --binary >$tmpf1
perl -p -e 's/^(\+.*?)[ \t]+$/$1/; while(m/^(\+\t*)( {1,7}\t| {8})(.*)/) { $_=$1."\t".$3."\n"; }' <$tmpf1 >$tmpf2
if ! cmp -s $tmpf1 $tmpf2
then
git apply --binary --index -R --whitespace=nowarn $tmpf1
git apply --binary --index $tmpf2
GIT_EDITOR=true git commit --amend
else
echo "No changes"
fi

关于git - 将我在提交中更改的行中的空格转换为制表符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413922/

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