我正在尝试让 git smudge 过滤器在 ubuntu 中工作,如此 stackoverflow 答案中所述:https : //stackoverflow.com/questions/2316677/can-git-automatically-switch-between-spaces-and-tabs
目标是在结帐时将空格转换为制表符。
在我的 .gitconfig 我有这个条目:
[filter "tabspace"]
smudge = unexpand --tabs=4 --first-only
clean = expand --tabs=4 --initial
Run Code Online (Sandbox Code Playgroud)
例如,考虑使用空格作为缩进的 lxqt-panel 存储库:https : //github.com/lxde/lxqt-panel
在 中lxqt-panel/.git/info/attributes,我启用了选项卡空间过滤器:
*.cpp filter=tabspace
*.h filter=tabspace
Run Code Online (Sandbox Code Playgroud)
根据 Stackoverflow Answer 的各种在线资源,运行git checkout HEAD -- **现在应该将所有空格转换为制表符。但是,就我而言,git 似乎完全忽略了这些设置;运行unexpand手工作品虽然。
我在这里缺少什么?
我在 Ubuntu 16.04 上使用 git 2.11.0。
git checkout HEAD -- **只会转换有更改的文件。未更改的文件不会被触及,这就是为什么其中没有任何内容被替换的原因。要强制更新所有文件,您可以删除它们然后重置。但请确保您没有任何未提交的更改,因为它们将会丢失。例如你可以这样做:
git rm -r .
git reset --hard
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意,您可以仅将所有.h和.cpp文件替换为:
rm **/*.{h,cpp}
git checkout .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |