我正在尝试使用以下Java语法来执行Git blame命令:
Process process = Runtime.getRuntime().exec("/usr/bin/git blame https://github.com/git/git/alloc.c > TestGit.txt");
但是,当我在Java中运行代码时,它不会给出任何结果。而且,当我尝试在终端中执行它时,它只是创建一个空的“TestGit.txt”文件,我收到错误:fatal: Not a git repository (or any of the parent directories): .git
。
答案 0 :(得分:2)
确保在启动命令
之前将目录更改为git存储库Process process = Runtime.getRuntime().exec("cd /path/to/repository; /usr/bin/git blame https://github.com/git/git/alloc.c > TestGit.txt");
答案 1 :(得分:0)
我认为git blame
能够正常工作,您需要在内部存储库。你需要进入存储库目录(这意味着你需要先检查它),然后运行:
git blame alloc.c
答案 2 :(得分:0)
以下是在Java for linux中执行blame命令的正确语法:
git --git-dir=/home/gh/git/.git --work-tree=/home/gh/git blame builtin/tag.c
答案 3 :(得分:0)
笨拙的方式:
Process process = Runtime.getRuntime().exec("/usr/bin/git blame https://github.com/git/git/alloc.c > TestGit.txt", null, new File('/path/to/repository'));