gitk找不到GIT存储库

Jat*_*tra 4 git gitk

当我运行时gitk,弹出一个Tk窗口,说"它在这里找不到GIT存储库".
我错过了什么?这些是我遵循的步骤.如果我错过了一些愚蠢的话,请原谅我.

[~/TEMP]$ ls
[~/TEMP]$ git init abc
Initialized empty Git repository in /*******/home/jganhotra/TEMP/abc/.git/
Run Code Online (Sandbox Code Playgroud)

添加了一个文件

[~/TEMP]$ cd abc/
[~/TEMP]$ ls -la
total 16
drwxr-x---  3 jganhotra eng 4096 Aug 15 16:05 ./
drwxr-x---  3 jganhotra eng 4096 Aug 15 16:04 ../
drwxr-x---  8 jganhotra eng 4096 Aug 15 16:05 .git/
[abc]$ touch a.txt
[abc]$ gvim a.txt 
[abc]$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       a.txt
nothing added to commit but untracked files present (use "git add" to track)
[abc]$ git add .
[abc]$ git commit -m "Added file"
[master (root-commit) 1ff1051] Added file
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt
Run Code Online (Sandbox Code Playgroud)

提交了

[abc]$ git status
# On branch master
nothing to commit (working directory clean)
[abc]$ git log
commit 1ff1051370dfb69a0e85a60f322da7389366db8b
Author: Jatin Kumar Ganhotra <jganhotra@******.com>
Date:   Mon Aug 13 19:10:38 2012 +0530

    Added file

[abc]$ gitk
[abc]$ which gitk
gitk:    aliased to /*******/tools/install/git-tools/git-1.7.11.2/bin/gitk

[abc]$ ls -la /******/tools/install/git-tools/git-1.7.11.2/bin/gitk
-rwxr-x---  1 devadmin eng 329597 Jul 17 17:43 /*******/tools/install/git-tools/git-1.7.11.2/bin/gitk
Run Code Online (Sandbox Code Playgroud)

这应该有效.我错过了什么?我相信还有一些依赖性.

Jos*_*sad 9

好.首先,这里唯一真正正确的答案是,使用您的包管理器,您的问题就会消失.

但我会解释为什么我这么说.您的包管理器会将git文件放在$ PATH中用于所有登录和shell会话的位置.

我看到你已经在一个创造性的组合路径中手动编译安装了git /******/tools/install/git-tools/git-1.7.11.2/.我认为发生的事情是这样的:你已经在你$PATH的这个登录/ shell会话中添加了git二进制文件,或者你在bash配置文件中添加了别名.

那会导致你看到的错误.阅读gitk的源代码,你可以看到错误发生在这里:

if {[catch {set gitdir [exec git rev-parse --git-dir]}]} {
show_error {} . [mc "Cannot find a git repository here."]
exit 1
}
Run Code Online (Sandbox Code Playgroud)

所以,gitk使用git二进制文件检查那里是否有git repo.但是gitk找不到git二进制文件,因为它不会访问你的shell别名或者你在某些短暂的登录/ shell会话中可能对$ PATH进行的任何临时更改.

所以使用你的包经理.:)或者如果你坚持使用手动git,修复你的路径.