在java中执行git blame命令

时间:2012-06-14 18:51:24

标签: java linux git github

我正在尝试使用以下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

4 个答案:

答案 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'));