出事真的错了这里。 请允许我给的背景。
今天我试着推到我们公司默认裸msysgit Windows服务器,并获得到处复制可怕的错误消息SO大约推动非裸露 。 我以为消息很奇怪,因为我的服务器应该是光秃秃的。 昨天它工作得很好。
然后,我注意到core.bare
时,不知何故,设置为false
! 这与inited回购--bare
,它从未有过的“ .git
在它”文件夹中。 然后我去检查,它就在那里,一个git的文件夹,这对我似乎从哪儿冒出来,真没劲! 请问谁可以做一些有唯一的其他人,并肯定的是,他没有。
编辑 :我只注意到它只能发生master
分支服务器的.git
似乎已经在10月1日,因为我不推到哪些可创建master
经常。
该文件夹具有3GB和裸露的文件夹,与幽灵般的旁边所有的git结构.git
,有6GB。 虽然我的本地git的有16 GB,所以我不知道这是怎么回事那里...甚至,我无法检查git log
或git reflog
。 无论是裸设置为true或false我得到同样的错误fatal: bad default revision 'HEAD'
。 现在我觉得它已经时间来考虑如何恢复回购 ...
但我经过所有的恢复教条之前,我想知道:
- 是否有某种git的活动日志 ,这样我就可以看到混帐发出的所有指令,并通过谁?
找不到类似的话,我怕没有。
这就是为什么我们已经安装了gitolite V3 (通过简单地克隆了回购 ,并安装它像这样安装脚本 ),我们的中央混帐回购协议的服务器上。
Gitolite将拦截任何GIT中的命令,和(除其主要授权框架功能)将记录在所述命令~/.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
你可以使用引用日志怎么看参考资料中移动,其登记的活动有时候不是从通常的git的日志可见(如快进合并),但我不认为它应该在你的情况下,无所谓。
我相信你有结构一样,(这是建议把git的扩展裸露的回购协议名称的方式,所以很容易区分):含../core.bare.git/分支机构,配置,HEAD,钩,信息,对象等../core.bare.git/.git包含它自己的分支机构,配置等我想你回购的服务器是完全好,你只需要从中双重校验删除git的文件夹该配置文件仍然说这是一个裸露的回购协议。