Estoy tratando de eliminar todas las líneas con comentarios en un file de una confirmación con el filter
git
. El file .git/config
preocupado se ve así:
[filter "printlnignore"] clean = sed '/\/\//d' smudge = cat
Quiero escaping de las barras diagonales con barras invertidas, puedo ver que el command sed
está bien formado, ya que funciona en shell. Pero aquí en git, no analiza la configuration y falla en cualquier command como el git status
con:
fatal: bad config file line 14 in .git/config
Tienes que duplicar las barras diagonales inversas, supongo, pero no estoy seguro, será por el doble análisis de la lectura del file y luego de ejecutarlo. Un problema que no ocurre directamente desde el shell. La instrucción será: clean = sed '/\\/\\// d'
Trabajo en Linux, pero hice una testing y trabajé, véalo:
mkdir myproject cd myproject git init echo -e "line one\n//line two\nline//three\nline four" > file.txt echo -e "*.txt filter=myfilter" >> .git/info/attributes vim .git/config cat .git/config
Eso produce:
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [filter "myfilter"] clean = sed '/\\/\\// d' smudge = cat
Continúa con la testing:
git add . git commit -m "First commit" rm file.txt git checkout file.txt cat file.txt
Eso produce:
line one line four
Ambas líneas con doble barra fueron eliminadas con el command sed
.