【发布时间】:2014-01-14 06:48:16
【问题描述】:
我的最新迭代
jinit= !git init && printf "* text=auto\n*.java text\n*.jsp text\n*.css text\n*.html text\n*.js text\n*.xml text\n*.sql text\n*.MF text\n*.tld text\n*.md text\n\n# git files\n*.gitignore text\n*.gitattributes text\n\n# eclipse files\n*.classpath text\n*.project text\n*.prefs text\n*.properties text\n*.component text\n" >> .gitattributes && echo "bin/" >> .gitignore && git add .
这实际上会尝试执行 gitattributes 中的行!将 \n 更改为 \r\n 将使脚本崩溃,而 \\\n 将成功运行脚本,尽管 gitattributes 仅包含
*
那么我如何用新行来呼应这个? Windows、mingwin、msysgit
编辑:我也试过单引号
编辑 2014.03.13:
jinit= !git init && `echo '* text=auto\n\n*.java text\n*.jsp text\n\
*.css text\n*.html text\n*.js text\n*.xml text\n*.sql text\n*.MF text\n\
*.tld text\n*.md text\n\n*.gitignore text\n*.gitattributes text\n\n\
*.classpath text\n*.project text\n*.prefs text\n*.properties text\n\
*.component text\n' >> .gitattributes` && `echo "bin/" >> .gitignore`
EDIT 2014.03.14:使用\ 包装命令 - 仍然有效,但在 *.css、*.tld、*.classpath 和 *.component 之前引入了一个空格。 p>
似乎无法管理回显 cmets。因此,如果我添加 \n# git files\n\*.gitignore text\n (...) 它 EOF - 任何解决方法?
最后我使用了不同的方法(参见 cmets):
jinit= !git init\
&& `ln /c/Dropbox/_/_git/java_eclipse.gitattributes .gitattributes`\
&& `echo "bin/" >> .gitignore`\
&& git add .
但我暂时把它打开,用于句法部分
【问题讨论】:
-
为什么不把文件添加到git template directory,让所有新的git仓库默认都有这个文件?
-
@AD7six:谢谢提示!不知道 - 但我想为不同的语言设置不同的初始化别名(以及 gitignore/attrs) - 无论如何必须有办法。我还考虑过(硬)链接到文件而不是在脚本中硬连线配置,但我不相信我可以调用命令(加上它具有内部文件的路径等)。顺便说一句,脚本是一劳永逸的,而您必须在每台机器上编辑模板目录
-
@AD7six:比我最终做的模板目录链接到模板文件要好
-
这听起来像是一个不成文的答案(3k 你仍然通过编辑问题来“回答”?!?)。
-
@AD7six:不——未解决的问题是如何在配置文件中包含 cmets
jinit= `echo '* text=auto\n\n# comment`
标签: git printf newline git-bash git-alias