所以,我想知道是否有办法编写一个批处理文件,在cmd窗口中打开git bash并调用某些git函数,就像一个宏。是否有可能做到这一点?我知道我可以在cmd窗口中调用“C:\ Program Files(x86)\ Git \ bin \ sh.exe --login -i”在窗口内运行git bash,我已经设法用一个批处理文件,但是直到sh.exe的进程结束它才会执行任何操作。
这可能吗?我怎么能这样做?
注意:我发现了这个:Reading Git commands using Batch(.BAT) file。那家伙说:
Hai All,最后我得到了我的问题的解决方案。通过使用下面的代码ssippet,我们可以使用BAT文件"c:\Program Files\Git\cmd\git.cmd" pull > c:\platform.txt"
使用BAT文件而不是使用git pull或git push运行Git上面的代码使用GIT Bash的任何git命令。感谢所有发布您的宝贵意见和部分答案
但是对我来说没有git.cmd可执行文件......我只会在合并出错或者什么的时候使用写入.txt文件...但是Git / bin中有一个git.exe可执行文件。显然它会让我做所有git函数,如添加,推送,提交,合并等。所以我有两个问题:我是否必须将批处理文件更改目录到本地仓库然后调用git.exe从那里?因为它不会让我做git cd
。另外,假设我在cmd窗口中键入git fetch upstream
。如果我输入git merge upstream/master
,那么它会记住之前提取的内容吗?
答案 0 :(得分:1)
从Windows批处理文件中通过git bash运行git几乎肯定不是你真正想要做的。我假设您正在谈论msysgit,并且您似乎正在尝试解决安装中缺少git.cmd文件的问题。如果你遗漏了这个文件,那么你的安装就会中断,我建议你重新安装。您会注意到安装程序中有一个选项可以将git放在PATH中以便从cmd.exe运行。
一旦你修复了你的安装,git将从cmd.exe或与bash一样或多或少地工作,但由于Windows和cmd.exe特殊字符会引起一些警告。所以是的,你的fetch和merge示例会正常工作。
如果你想在git存储库上运行,你需要在存储库中或根据需要将GIT_DIR环境变量设置为.git目录。
答案 1 :(得分:0)
在这里查看我的答案:Using msysGit from MinGW and vice versa
也可能适用于你。使用“调整路径环境”中的第三个或第二个选项将为您提供git.cmd
,您可以直接从cmd运行该选项。