1

我的最新迭代

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 中的行!更改\nfor\r\n将使脚本崩溃,并且 for\\\n将成功运行脚本,尽管 gitattributes 将仅包含

*

那么我如何用新行来呼应呢?视窗、明文、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` 

编辑 2014.03.14\用于包装命令 - 仍然有效,但在 *.css、*.tld、*.classpath 和 *.component 之前引入了一个空格。

似乎无法管理回显评论。因此,如果我添加\n# git files\n\*.gitignore text\n (...)它 EOF - 有什么解决方法吗?

最后我使用了不同的方法(见评论):

jinit= !git init\
    && `ln /c/Dropbox/_/_git/java_eclipse.gitattributes .gitattributes`\
    && `echo "bin/" >> .gitignore`\
    && git add .

但我暂时把它打开,对于句法部分

4

2 回答 2

0

它在 Linux 上运行良好。

为避免出现行尾问题,您可以让 echo 添加它:

echo "\* text=auto" >> .gitattributes
echo "\* .java text" >> .gitattributes
[...]
于 2013-12-26T16:24:29.127 回答
0

有一条评论建议您只需将.gitattributes文件写入您的 git 模板目录。这不起作用,因为在文档中,它特别说:

模板目录中名称不以点开头的文件和目录将在创建后复制到 $GIT_DIR。

但是,我们实际上可以利用它来发挥我们的优势!你说

我想为不同的语言设置不同的初始化别名(以及 gitignore/attrs)

这是一个公平的观点!但是,我仍然认为您当前的方法过于复杂。我建议将文件添加到您的模板目录中,使用任何以点开头的名称,以便您识别它。例如,您可以选择.gitattributes-english.gitattributes-french

现在,运行以下命令:

git config --global alias.init-english "!git init;cp $(git config init.templatedir)/.gitattributes-english ./.gitattributes"

git config --global alias.init-french "!git init;cp $(git config init.templatedir)/.gitattributes-french ./.gitattributes"

现在,将初始化一个存储库,并将模板目录中git init-english的内容复制到新存储库中,并且不会添加到新存储库中。将改为使用and not 。.gitattributes-english.gitattributes.gitattributes-frenchgit init-french.gitattributes-french.gitattributes-english

我认为这还有一个额外的好处,即允许您编辑特定.gitattributes文件而无需更新别名!

您显然不必使用init.templatedir我只是发现使用它最有意义,因为这些是模板。

最后请注意,这适用于 Windows!

于 2021-05-05T21:44:40.423 回答