概要
使用 .bat 文件将参数传递给 git bash
或
通过运行批处理文件以其他方式使用 git。
免责声明
类似问题有很多答案,但在尝试过大部分或全部答案后都失败了,我希望你不要第一眼看到我就给我一个重复的戳记。
我的系统
Windows 7,64 位
git 版本 1.9.4.msysgit.2
挑战
我想合理化我的工作流程,从导航到多个 git 存储库并运行 git status
、git add --all
等,到简单地运行一个批处理。
其他帖子肯定表明这是可能的。我认为他们中的大多数人使用 Unix,但是 this one至少让我在 Windows 上运行起来,这样我就可以测试它了。但是,在将命令传递给 git bash 时,我遇到了与该帖子中的 OP 相同的问题,对于像我这样的初学者来说,使用@Erik 的建议似乎有点复杂如果您想在工作流程中包含更多命令,请发布。
按照@inf3rno 在同一篇文章中的建议,我似乎可以更改文件夹但无法使用这样的 git 命令:
set bash=C:\Program Files (x86)\Git\bin\bash.exe
"%bash%" --login -i -c "exec "%1""
cd c:\repos\research
git status
pause
有没有人建议我如何更改上面的代码以使其正常工作?
顺便说一句,其他帖子(如 this one)中的 #!bin\bash
是怎么回事? ?我以为我必须使用 #!Program Files (x86)\Git\bin\bash
,但我也没有运气......
无论如何,感谢您的任何建议!
最佳答案
首先,卸载 git 1.9.4(msygit,现已过时):git-for-windows将提供 much recent bash (2013 vs. 2005) .
解压即可PortableGit-2.6.1-64-bit.7z.exe
在任何你想要的地方,将 C:\path\PortableGit-2.6.1-64-bit\bin
添加到你的 %PATH%
就可以了。
第二,inf3rno's answer是关于执行任何 bash 脚本("%bash%"--login -i -c "exec "%1""
:%1 是要执行的 bash 脚本的路径/名称)
在你的 bash 脚本中使用的正确 shebang 应该是#!/bin/bash(参见“What is the preferred Bash shebang?”)
对于最新的 git 2.6,这将是:
c:\prgs\git\PortableGit-2.6.1-64-bit\bin\bash.exe --login -i -c "exec ./myscript"
因为该文件夹应该在您的 %PATH% 中:
bash --login -i -c "exec ./myscript"
myscript
是一个使用 Unix 风格的 eol (LF) 而不是 Windows 风格 (CRLF) 的文件
另请注意,任何名为 git-myscript 的 bash 脚本(甚至在 Windows 上)都可以直接调用:
git myscript
我在 2012 年在“Running a batch file in git shell”中描述了另一种执行 git 命令的方法。
但是对于纯 bash 脚本,您需要使用 bash --login -i -c "exec ./myscript"
。
要编写具有 unix eol 风格的 bash 脚本,您可以从 Notepad++ 中选择各种编辑器。 , SublimeText 3或 Atom.io .
关于windows - Windows 7 中非常基本的 git 批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32998906/