2012-10-10 7 views
4

여기에 뭔가 잘못되었습니다. 배경을 알려주세요.자식 활동 로그가 있습니까?

오늘은 우리 회사의 기본 베어 msysgit 윈도우 서버에 밀어하고 dreaded error message duplicated everywhere in SO about pushing to non-bare를 얻을하려고합니다. 내 서버가 맨손으로되어 있기 때문에 메시지가 이상하다고 생각했습니다. 그리고 어제 그것은 잘 작동하고있었습니다.

는 다음 나는 core.bare은, 어떻게 든, false로 설정되어 주목! 이 --bare와 inited는의 repo이고 그것에서 " .git"폴더 없었어요. 그리고 나서 제가 확인해 봅니다. 그리고 저기에 .git 폴더가 있습니다. 그것은 저의 외면에서 나타났습니다. 당황 스러웠습니다! 나는 그곳에서 뭔가 할 수있는 유일한 다른 사람에게 물어 본다.

편집 : 그냥 단지 master 지점 및 서버의 .git가 보인다는 내가 그 자주 master에 밀어하지 않기 때문에 잘 될 수있는 10 월 1 일에 생성 된 것으로하여 발생났습니다.

폴더는 유령 .git 옆에 모든 자식 구조로, 6기가바이트을 가지고, 3기가바이트 및 베어 폴더가 있습니다. 내 로컬 .git 16 기가 바이트있다, 그래서 더욱 ... 거기에 무슨 일이 일어나고 있는지 모르겠어요 동안, 나는 git log 또는 git reflog을 확인할 수 없습니다. bare를 true 또는 false로 설정하면 동일한 오류 fatal: bad default revision 'HEAD'이 발생합니다. 그리고 지금 나는 ... 이미

how to recover the repo을 고려하는 시간이라고 생각하지만 모든 복원 교리를 통과하기 전에, 궁금 :

  • 자식 활동 로그에 어떤 종류의 그래서 거기 git에서 발행 된 모든 명령을 볼 수 있으며, 누구에 의해?

유사한 아무것도 찾을 수 없습니다, 나는이없는 우려하고있다.

답변

3

.

Gitolite는 모든 git 명령을 차단하고 (primary authorization framework 기능 외에도) ~/.gitolite/logs/gitolite-log-xxx에 해당 명령을 기록합니다. 기준에

2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-git-configs,POST_COMPILE 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-gitweb-access-list,POST_COMPILE 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/commands/access,%,gitweb,R,any 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/commands/git-config,-r,%,gitweb\. 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-git-daemon-access-list,POST_COMPILE 
2012-08-16.12:20:20  29507   system,/home/gitadmin/gitolite/bin/commands/access,%,daemon,R,any 
2012-08-16.12:20:20  29507 END 
2012-08-20.07:39:12  17683 ssh  ARGV=gitoliteadm  SOC=git-upload-pack 'gitolite-admin' FROM=127.0.0.1 
2012-08-20.07:39:12  17683   access(gitolite-admin, gitoliteadm, R, 'any'),-> refs/.* 
2012-08-20.07:39:12  17683   trigger,Writable,access_1,ACCESS_1,gitolite-admin,gitoliteadm,R,any,refs/.* 
2012-08-20.07:39:12  17683 pre_git gitolite-admin gitoliteadm  R  any  -> refs/.* 
2012-08-20.07:39:12  17683   system,git,shell,-c,git-upload-pack '/home/gitadmin/repositories/gitolite-admin.git' 
2012-08-20.07:39:12  17683 END 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-git-configs,POST_COMPILE 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-gitweb-access-list,POST_COMPILE 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/commands/access,%,gitweb,R,any 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/commands/git-config,-r,%,gitweb\. 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-git-daemon-access-list,POST_COMPILE 
2012-08-16.12:20:20  29507   system,/home/gitadmin/gitolite/bin/commands/access,%,daemon,R,any 
2012-08-16.12:20:20  29507 END 
2012-08-20.07:39:12  17683 ssh  ARGV=gitoliteadm  SOC=git-upload-pack 'gitolite-admin' FROM=127.0.0.1 
2012-08-20.07:39:12  17683   access(gitolite-admin, gitoliteadm, R, 'any'),-> refs/.* 
2012-08-20.07:39:12  17683   trigger,Writable,access_1,ACCESS_1,gitolite-admin,gitoliteadm,R,any,refs/.* 
2012-08-20.07:39:12  17683 pre_git gitolite-admin gitoliteadm  R  any  -> refs/.* 
2012-08-20.07:39:12  17683   system,git,shell,-c,git-upload-pack '/home/gitadmin/repositories/gitolite-admin.git' 
2012-08-20.07:39:12  17683 END 
+0

흠 ... 나는 그것이 윈도우 서버라는 것을 잊지 않았다. 어쩌면 이걸로 나는 최소한 VM 우분투를 얻으려는 사람들을 여기에 설득 할 수있다 ... : P – cregox

+1

@ 카와스하지만 윈도우에 Gitolite를 설치할 수있다 : http://therightstuff.de/CommentView,guid,b969ea4d-8d2c-42af- 9806-de3631f4df68.aspx 그렇습니다. 유닉스에서 git server가 더 의미가 있습니다. – VonC

+0

나는 여전히 2 개의 하위 질문을 열었습니다. @VonC ... 아마도 당신이 도울 수 있습니다! 서버가 그다지 베어가 아닌가 보았을 때, 그리고 맨손 리포지토리에서 reflog를 볼 수없는 이유를 알고 계신가요? – cregox

1

당신은 (병합 빨리 감기와 같은) 보통 자식 로그에서 가끔 볼 수없는 활동을 등록하는, 참조가 움직이고 있었다 방식을 볼 수 reflog를 사용할 수 있지만 내가 그것을 귀하의 경우 문제가해야한다고 생각하지 않습니다.

저는 구조가 비슷하다고 생각합니다. (그것은 .git 확장자를 베어 이름에 붙이면 좋습니다. 따라서 쉽게 구별 할 수 있습니다.) ../core.bare.git/ branches, config , HEAD, hooks, info, objects 등 ../core.bare.git/.git 자신의 분기 세트를 포함하고 있습니다. 서버에서 Repo를하는 것은 완전히 괜찮다고 생각합니다. git 폴더에서 제거하고 설정 파일이 여전히 베어 레포임을 알리는 지 다시 한 번 확인하십시오. 우리는 우리의 중앙 자식의 repo 서버 (단순히 this installation script에 같은 its repoinstalling it를 복제하여) gitolite V3를 설치 한 이유

+0

좋은 생각하지만,이 별거 아니 : 여기

는 로그의 추출물이다.좋아,'.git'을 제거한 후 이제'git log'를 볼 수 있고 푸시 기능이 작동합니다! 'reflog '조차 더 이상 오류를 가져 오지 않습니다 ...하지만 아무것도 가져 오지 않습니다! 그런 이상한 행동. 그리고 제가 여러분이 * "활동 기록"*이 없다고 가정 할 때, 암시 적 질문 하나가 남아 있습니다 : 무엇이 모든 혼란을 야기 할 수 있었습니까? 벌거 벗은 레포가 갑자기 비 베어가 된 방법! – cregox

+0

누군가가 잘못된 폴더에서 git init을 실행했다고 가정 할 수 있습니다. –

+0

'git init'은 비어 있지 않은 폴더에서는 작동하지 않습니다. – cregox