2012-08-15 3 views
4

gitk을 실행하면 "여기 GIT 저장소를 찾을 수 없습니다"라는 Tk 창이 팝업됩니다.
내가 무엇이 누락 되었습니까? 이것이 내가 따라야 할 단계들입니다. 어리석은 뭔가를 놓친다면 용서해주십시오.gitk에서 GIT 저장소를 찾을 수 없습니다.

[~/TEMP]$ ls 
[~/TEMP]$ git init abc 
Initialized empty Git repository in /*******/home/jganhotra/TEMP/abc/.git/ 

는 파일

은이이 일을해야

[abc]$ git status 
# On branch master 
nothing to commit (working directory clean) 
[abc]$ git log 
commit 1ff1051370dfb69a0e85a60f322da7389366db8b 
Author: Jatin Kumar Ganhotra <[email protected]******.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 

커밋 제작

[~/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 

을 추가했습니다. 나는 무엇을 놓쳤는가? 나는 의존성이 남아 있다고 생각한다.

+0

게시물의'abc /'디렉토리에있을 때'ls -la'의 출력을 추가하십시오. – JJD

+0

'ls -la' 출력을 추가했습니다. 그리고 예 .git 디렉토리와 그 기능에 대해 알고 있습니다. 그리고 거기에 있습니다. –

+0

내 생각 엔 gitk에 필자가 설치하지 않은 내부 의존성이 있다고 생각합니다. –

답변

9

음. 첫째로, 실제로 유일한 정답은 패키지 관리자를 사용하면 문제가 사라집니다.

그러나 나는 왜 그런 말을하는지 설명 할 것입니다. 패키지 관리자는 모든 로그인 및 쉘 세션에 대해 $ PATH에있는 위치에 자식 파일을 삭제합니다.

당신은 수동으로 소스에서 작성된 경로가 창조적으로 구성된 경로 /******/tools/install/git-tools/git-1.7.11.2/에 설치되어있는 것을 볼 수 있습니다. 내 생각에 이런 일이 일어난 것 같아.이 로그인/쉘 세션에서만 $PATH에 git 바이너리를 추가했거나 bash 설정 파일에 별칭을 지정했다.

그러면 오류가 표시됩니다. Reading the source of gitk, 당신은 오류가 여기에서 발생하는 것을 볼 수 있습니다

if {[catch {set gitdir [exec git rev-parse --git-dir]}]} { 
show_error {} . [mc "Cannot find a git repository here."] 
exit 1 
} 

그래서, gitk이는 자식의 repo가이 있는지 확인하기 위해 자식 바이너리를 사용합니다. 그러나 gitk는 셸 별칭이나 일시적인 로그인/셸 세션의 어딘가에서 $ PATH에 대한 임시 변경 사항에 액세스하지 않기 때문에 git 바이너리를 찾을 수 없습니다.

패키지 관리자를 사용하십시오. :) 또는 당신이 손으로 압 연된 자식을 가지고 주장하는 경우 귀하의 경로 수정. 당신의 Git 저장소에서

+0

바이너리를'$ PATH'에 추가하지 않고 대신 bash 설정 파일에서 별칭을 만들었습니다. 지금까지는 그것이 달라질 것이라고 생각하지 않았습니다. 고마워. –

+0

이제 내 git 바이너리 경로가 $ PATH에 없으므로 gitk에서 git을 찾을 수 없으므로이 오류가 발생합니다. 따라서 바이너리 경로를 추가하면 오류가 올바르게 처리됩니다. –

+0

나는 다시 강조해야한다. 올바른 대답은 패키지 관리자를 사용하는 것이다. 그러나 당신이 그 다음에도 그렇다고 주장한다면, gitk 프로그램이 git 실행 파일을 찾을 수 있는지 확인하는 것이 해결책입니다. gitk가 예상대로 실행되는지 여부는 git 설치와 관련하여 다른 것이 있을지 모르기 때문에 말할 수는 없습니다. :) 패키지 관리자를 사용하여, 세계 평화 그것에 따라 달라집니다. :) – JosefAssad

-2

은 단순히 실행

$ git-init 

gitk이 이제 자식 디렉토리를 볼 수 있습니다.

자세한 내용은 git-init man page을 참조하십시오.

+0

이것이 실제로 문제를 해결한다면, dir은 처음에는 git repo가 ​​아니 었습니다. 분명히 묻는 사람은 실제로 거기에 레포를 가지고 있습니다. 더 나쁜 것은, git의 이전 버전에서,'git init'은 경고를 제공하지 않습니다. 즉,'git init'은 ** repo의 로컬 복사본에있는 모든 기록을 삭제합니다 **. _ 누군가는 그 man 페이지를 읽을 필요가 있습니다. 그리고 저는 그 사람에게 묻지 않습니다. – Mark

0

/tmp이 쓰기 가능한지 확인하십시오.

이 오류가 발생했을 때 문제가 발생했습니다.

관련 문제