centos6.3 安装gitosis

[root@CentOS32 ~]# mkdir -p /home/zhangbin/gitMISC/gitosis/
[root@CentOS32 ~]#  git clone git://github.com/res0nat0r/gitosis.git/ /home/zhangbin/gitMISC/gitosis/
Initialized empty Git repository in /home/zhangbin/gitMISC/gitosis/.git/
remote: Counting objects: 727, done.
remote: Compressing objects: 100% (398/398), done.
remote: Total 727 (delta 414), reused 604 (delta 313)
Receiving objects: 100% (727/727), 173.82 KiB | 55 KiB/s, done.
Resolving deltas: 100% (414/414), done.
[root@CentOS32 ~]# cd /home/zhangbin/gitMISC/gitosis/[root@CentOS32 gitosis]# ls
COPYING                       example.conf  lighttpd-gitweb.conf  README.rst
debian                        gitosis       MANIFEST.in           setup.py

etc-event.d-local-git-daemon  gitweb.conf   mirror.conf           TODO.rst



[root@CentOS32 gitosis]# python setup.py install
running install
running bdist_egg
running egg_info
creating gitosis.egg-info
writing requirements to gitosis.egg-info/requires.txt
writing gitosis.egg-info/PKG-INFO
writing top-level names to gitosis.egg-info/top_level.txt
writing dependency_links to gitosis.egg-info/dependency_links.txt
writing entry points to gitosis.egg-info/entry_points.txt
writing manifest file 'gitosis.egg-info/SOURCES.txt'
reading manifest file 'gitosis.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'gitosis.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-i686/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/gitosis
copying gitosis/init.py -> build/lib/gitosis
copying gitosis/group.py -> build/lib/gitosis
copying gitosis/gitweb.py -> build/lib/gitosis
copying gitosis/snagit.py -> build/lib/gitosis
copying gitosis/util.py -> build/lib/gitosis
copying gitosis/app.py -> build/lib/gitosis
copying gitosis/run_hook.py -> build/lib/gitosis
copying gitosis/ssh.py -> build/lib/gitosis
copying gitosis/__init__.py -> build/lib/gitosis
copying gitosis/repository.py -> build/lib/gitosis
copying gitosis/mirror.py -> build/lib/gitosis
copying gitosis/gitdaemon.py -> build/lib/gitosis
copying gitosis/access.py -> build/lib/gitosis
copying gitosis/serve.py -> build/lib/gitosis
creating build/lib/gitosis/test
copying gitosis/test/test_run_hook.py -> build/lib/gitosis/test
copying gitosis/test/test_access.py -> build/lib/gitosis/test
copying gitosis/test/test_mirror.py -> build/lib/gitosis/test
copying gitosis/test/test_init.py -> build/lib/gitosis/test
copying gitosis/test/test_repository.py -> build/lib/gitosis/test
copying gitosis/test/util.py -> build/lib/gitosis/test
copying gitosis/test/test_ssh.py -> build/lib/gitosis/test
copying gitosis/test/__init__.py -> build/lib/gitosis/test
copying gitosis/test/test_gitweb.py -> build/lib/gitosis/test
copying gitosis/test/test_gitdaemon.py -> build/lib/gitosis/test
copying gitosis/test/test_serve.py -> build/lib/gitosis/test
copying gitosis/test/test_group.py -> build/lib/gitosis/test
creating build/lib/gitosis/templates
copying gitosis/templates/__init__.py -> build/lib/gitosis/templates
creating build/lib/gitosis/templates/default
creating build/lib/gitosis/templates/default/hooks
copying gitosis/templates/default/hooks/post-receive -> build/lib/gitosis/templates/default/hooks
creating build/lib/gitosis/templates/admin
creating build/lib/gitosis/templates/admin/hooks
copying gitosis/templates/admin/hooks/post-update -> build/lib/gitosis/templates/admin/hooks
creating build/bdist.linux-i686
creating build/bdist.linux-i686/egg
creating build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/init.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/group.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/gitweb.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/snagit.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/util.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/app.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/run_hook.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/ssh.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/__init__.py -> build/bdist.linux-i686/egg/gitosis
creating build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_run_hook.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_access.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_mirror.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_init.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_repository.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/util.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_ssh.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/__init__.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_gitweb.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_gitdaemon.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_serve.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/test/test_group.py -> build/bdist.linux-i686/egg/gitosis/test
copying build/lib/gitosis/repository.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/mirror.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/gitdaemon.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/access.py -> build/bdist.linux-i686/egg/gitosis
copying build/lib/gitosis/serve.py -> build/bdist.linux-i686/egg/gitosis
creating build/bdist.linux-i686/egg/gitosis/templates
copying build/lib/gitosis/templates/__init__.py -> build/bdist.linux-i686/egg/gitosis/templates
creating build/bdist.linux-i686/egg/gitosis/templates/default
creating build/bdist.linux-i686/egg/gitosis/templates/default/hooks
copying build/lib/gitosis/templates/default/hooks/post-receive -> build/bdist.linux-i686/egg/gitosis/templates/default/hooks
creating build/bdist.linux-i686/egg/gitosis/templates/admin
creating build/bdist.linux-i686/egg/gitosis/templates/admin/hooks
copying build/lib/gitosis/templates/admin/hooks/post-update -> build/bdist.linux-i686/egg/gitosis/templates/admin/hooks
byte-compiling build/bdist.linux-i686/egg/gitosis/init.py to init.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/group.py to group.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/gitweb.py to gitweb.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/snagit.py to snagit.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/util.py to util.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/app.py to app.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/run_hook.py to run_hook.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/ssh.py to ssh.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_run_hook.py to test_run_hook.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_access.py to test_access.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_mirror.py to test_mirror.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_init.py to test_init.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_repository.py to test_repository.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/util.py to util.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_ssh.py to test_ssh.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_gitweb.py to test_gitweb.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_gitdaemon.py to test_gitdaemon.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_serve.py to test_serve.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/test/test_group.py to test_group.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/repository.py to repository.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/mirror.py to mirror.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/gitdaemon.py to gitdaemon.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/access.py to access.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/serve.py to serve.pyc
byte-compiling build/bdist.linux-i686/egg/gitosis/templates/__init__.py to __init__.pyc
creating build/bdist.linux-i686/egg/EGG-INFO
copying gitosis.egg-info/PKG-INFO -> build/bdist.linux-i686/egg/EGG-INFO
copying gitosis.egg-info/SOURCES.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying gitosis.egg-info/dependency_links.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying gitosis.egg-info/entry_points.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying gitosis.egg-info/not-zip-safe -> build/bdist.linux-i686/egg/EGG-INFO
copying gitosis.egg-info/requires.txt -> build/bdist.linux-i686/egg/EGG-INFO
copying gitosis.egg-info/top_level.txt -> build/bdist.linux-i686/egg/EGG-INFO
creating dist
creating 'dist/gitosis-0.2-py2.6.egg' and adding 'build/bdist.linux-i686/egg' to it
removing 'build/bdist.linux-i686/egg' (and everything under it)
Processing gitosis-0.2-py2.6.egg
creating /usr/lib/python2.6/site-packages/gitosis-0.2-py2.6.egg
Extracting gitosis-0.2-py2.6.egg to /usr/lib/python2.6/site-packages

Adding gitosis 0.2 to easy-install.pth file
Installing gitosis-init script to /usr/bin
Installing gitosis-run-hook script to /usr/bin
Installing gitosis-serve script to /usr/bin



Installed /usr/lib/python2.6/site-packages/gitosis-0.2-py2.6.egg
Processing dependencies for gitosis==0.2
Searching for distribute==0.6.10
Best match: distribute 0.6.10
Adding distribute 0.6.10 to easy-install.pth file
Installing easy_install script to /usr/bin
Installing easy_install-2.6 script to /usr/bin


Using /usr/lib/python2.6/site-packages

Finished processing dependencies for gitosis==0.2


产生秘钥

[root@CentOS32 gitosis]# su git
[git@CentOS32 gitosis]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/git/.ssh/id_rsa): 
Created directory '/home/git/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/git/.ssh/id_rsa.
Your public key has been saved in /home/git/.ssh/id_rsa.pub.
The key fingerprint is:
a4:4f:3d:42:5b:e6:ac:0c:d7:44:54:79:97:1f:e7:d6 git@CentOS32
The key's randomart image is:
+--[ RSA 2048]----+
|         .o...  .|
|         .  . .oo|
|        o +  . o=|
|       + X      E|
|      o S *    . |
|       * o .     |
|        +        |
|                 |
|                 |
+-----------------+

[git@CentOS32 gitosis]$ 

=================================悲剧===========出现了各种错误

问题(1)sshd(服务器)没有运行,导致一些连接错误:

[zhangbin@CentOS32 testgit]$ git clone git@172.28.10.239:/home/git/repositories/gitosis-admin.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/gitosis-admin/.git/
ssh: connect to host 172.28.10.239 port 22: Connection refused
fatal: The remote end hung up unexpectedly


重启sshd:

/etc/init.d/sshd
Usage: /etc/init.d/sshd {start|stop|restart|reload|force-reload|condrestart|try-restart|status}


执行  /etc/init.d/sshd restart 



问题(2)

[zhangbin@CentOS32 testgit]$ git clone git@172.28.10.239:/home/git/repositories/gitosis-admin.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/gitosis-admin/.git/
The authenticity of host '172.28.10.239 (172.28.10.239)' can't be established.
RSA key fingerprint is 93:91:c7:f7:04:2e:e9:8f:fa:b3:12:c6:79:45:80:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.28.10.239' (RSA) to the list of known hosts.
reverse mapping checking getaddrinfo for bogon [172.28.10.239] failed - POSSIBLE BREAK-IN ATTEMPT!
git@172.28.10.239's password: 
Permission denied, please try again.
git@172.28.10.239's password: 
Permission denied, please try again.
git@172.28.10.239's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

fatal: The remote end hung up unexpectedly



在/etc/ssh中:


 【1】修改 ssh_config


去掉#,启用no




【2】修改sshd_config


默认是yes,改成上面那个no



===============

可是,还是老遇到这样的问题:

[zhangbin@CentOS32 testgit]$ git clone git@172.28.10.239:/home/git/repositories/gitosis-admin.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/gitosis-admin/.git/
The authenticity of host '172.28.10.239 (172.28.10.239)' can't be established.
RSA key fingerprint is 93:91:c7:f7:04:2e:e9:8f:fa:b3:12:c6:79:45:80:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.28.10.239' (RSA) to the list of known hosts.
reverse mapping checking getaddrinfo for bogon [172.28.10.239] failed - POSSIBLE BREAK-IN ATTEMPT!
git@172.28.10.239's password: 
Permission denied, please try again.
git@172.28.10.239's password: 
Permission denied, please try again.
git@172.28.10.239's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: The remote end hung up unexpectedly


于是,只好这样做:

===============================重新来过=====================

建议参考这篇文章 http://blog.sina.com.cn/s/blog_591e8adf0100vm57.html


(1)修改用户git的密码:

chage -l 用户名,可以改密码。


[root@CentOS32 ~]# su git
[git@CentOS32 root]$ chage -l git
Last password change : Nov 28, 2013
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7



[git@CentOS32 root]$ su root
Password: 
su: incorrect password
[git@CentOS32 root]$ su root
Password: 


需要权限:
[root@CentOS32 ~]# chomd -R 755 /home/git/repositories
bash: chomd: command not found
[root@CentOS32 ~]# chmod -R 755 /home/git/repositories


(2)=======切换到用户git,创建秘钥=========
[root@CentOS32 ~]# su git
[git@CentOS32 root]$ cd /home/git
[git@CentOS32 ~]$ ls
gitosis  repo  repositories


这次密码是git,虽然短,但是还是可用。
[git@CentOS32 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/git/.ssh/id_rsa): 
/home/git/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
passphrase too short: have 3 bytes, need > 4

咋个报错了:

Saving the key failed: /home/git/.ssh/id_rsa.


密码存在这里:
[git@CentOS32 ~]$ ls .ssh
authorized_keys  id_rsa  id_rsa.pub
[git@CentOS32 ~]$ ls -al .ssh
total 20
drwx------. 2 git git 4096 Nov 28 15:42 .
drwxr-xr-x. 8 git git 4096 Nov 28 15:58 ..
-rw-r--r--. 1 git git  537 Nov 28 15:42 authorized_keys
-rw-------. 1 git git 1743 Nov 28 15:42 id_rsa
-rw-r--r--. 1 git git  394 Nov 28 15:42 id_rsa.pub


(3)===========

用户git 使用这个秘钥,执行gitosis-init  :


[git@CentOS32 ~]$ gitosis-init < /home/git/.ssh/id_rsa.pub 
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
[git@CentOS32 ~]$ ls
gitosis  repo  repositories
[git@CentOS32 ~]$ ls repositories/
gitosis-admin.git
[git@CentOS32 ~]$ chmod u+x /home/git/repositories/gitosis-admin.git/hooks/post-update



(4)=========切换到用户 zhangbin
[git@CentOS32 ~]$ su zhangbin
Password: 
[zhangbin@CentOS32 git]$ cd /home/zhangbin/
[zhangbin@CentOS32 ~]$ ls
Desktop    Downloads  Music     Public     testrepos
Documents  gitMISC    Pictures  Templates  Videos
[zhangbin@CentOS32 ~]$ cd gitMISC/
[zhangbin@CentOS32 gitMISC]$ ls
gitosis  testgit
[zhangbin@CentOS32 gitMISC]$ cd testgit/
[zhangbin@CentOS32 testgit]$ ls
[zhangbin@CentOS32 testgit]$ git clone git@172.28.10.239:/home/git/repositories/gitosis-admin.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/gitosis-admin/.git/
git@172.28.10.239's password:               这里输入密码,刚才用git账户执行的gitosis-init  终于有用了。
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 5 (delta 0)
Receiving objects: 100% (5/5), done.
[zhangbin@CentOS32 testgit]$ 

==============


然后作者又让我们做了另一件事,我感觉这是为了让本地用户使用本地的git服务器用的。


用户zhangbin,创建秘钥:

[zhangbin@CentOS32 testgit]$ ssh-keygen -t ras
unknown key type ras
[zhangbin@CentOS32 testgit]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhangbin/.ssh/id_rsa):   生成之后,放在了这里
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Passphrases do not match.  Try again.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/zhangbin/.ssh/id_rsa.
Your public key has been saved in /home/zhangbin/.ssh/id_rsa.pub.
The key fingerprint is:
49:23:3c:8d:d3:6a:2b:e4:03:e4:62:53:e3:55:bd:e6 zhangbin@CentOS32
The key's randomart image is:
+--[ RSA 2048]----+
|       ..        |
|     ..+ .       |
|  .o .* = .      |
| oo o  * =       |
|.oo.. o S        |
|...+ . . E       |
|    + .          |
|     o           |
|                 |
+-----------------+
[zhangbin@CentOS32 testgit]$ cp /home/zhangbn/.ssh/id_rsa.pub .
cp: cannot stat `/home/zhangbn/.ssh/id_rsa.pub': No such file or directory
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin
[zhangbin@CentOS32 testgit]$ ls /home/zhangbin/.ssh
id_rsa  id_rsa.pub  known_hosts
[zhangbin@CentOS32 testgit]$ cp /home/zhangbin/.ssh/id_rsa.pub .
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin  id_rsa.pub


将秘钥改名字,并放在这里:
[zhangbin@CentOS32 testgit]$ mv id_rsa.pub gitosis-admin/keydir/zhangbin@CentOS32.pub

秘钥的名字,不是随便取的:


[zhangbin@CentOS32 testgit]$ cd gitosis-admin/
[zhangbin@CentOS32 gitosis-admin]$ ls
gitosis.conf  gitosis.conf~  keydir

秘钥的名字,必须跟members的名字一样。


而存放的路径是这里:

即放在之前clone的gitosis-admin的keydir里头,然后要把修改后的gitosis.conf上传。




提交新的修改,这是修改git的管理文件啊,放在本地是为了便于管理。


[zhangbin@CentOS32 gitosis-admin]$ git add ./
[zhangbin@CentOS32 gitosis-admin]$ git commit -a
[master 7ce6520] test project for gitosis
 Committer: zhangbin <zhangbin@CentOS32.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:


    git config --global user.name "Your Name"
    git config --global user.email you@example.com


If the identity used for this commit is wrong, you can fix it with:


    git commit --amend --author='Your Name <you@example.com>'


 3 files changed, 12 insertions(+), 1 deletions(-)
 create mode 100644 gitosis.conf~
 create mode 100644 keydir/zhangbin@CentOS32.pub
[zhangbin@CentOS32 gitosis-admin]$ git push
git@172.28.10.239's password: 
Counting objects: 9, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 935 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@172.28.10.239:/home/git/repositories/gitosis-admin.git
   cde60ea..7ce6520  master -> master

这个修改后的gitosis.conf就被传入到了./home/git/repositories/gitosis-admin.git下了。


下面的过程可以省略掉了,这是我重新做了一遍,想知道这个zhangbin@。。。的密码到底是啥。。。

第二次做的时候,密码是空的。
[zhangbin@CentOS32 gitosis-admin]$ ls
gitosis.conf  gitosis.conf~  keydir
[zhangbin@CentOS32 gitosis-admin]$ cd ..
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin
[zhangbin@CentOS32 testgit]$ cd ..
[zhangbin@CentOS32 gitMISC]$ ls
gitosis  testgit
[zhangbin@CentOS32 gitMISC]$ cd testgit
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin
[zhangbin@CentOS32 testgit]$ mkdir secondproj
[zhangbin@CentOS32 testgit]$ cd secondproj/
[zhangbin@CentOS32 secondproj]$ ls
[zhangbin@CentOS32 secondproj]$ git clone zhangbin@172.28.10.239:/home/git/respositories/secondproj.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/secondproj/secondproj/.git/
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
[zhangbin@CentOS32 secondproj]$ git clone zhangbin@172.28.10.239:/home/git/respositories/secondproj.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/secondproj/secondproj/.git/
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Connection closed by UNKNOWN
fatal: The remote end hung up unexpectedly
[zhangbin@CentOS32 secondproj]$ git clone zhangbin@172.28.10.239:/home/git/respositories/secondproj.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/secondproj/secondproj/.git/
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Connection closed by UNKNOWN
fatal: The remote end hung up unexpectedly
[zhangbin@CentOS32 secondproj]$ git clone zhangbin@172.28.10.239:/home/git/respositories/secondproj.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/secondproj/secondproj/.git/
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
[zhangbin@CentOS32 secondproj]$ git clone zhangbin@172.28.10.239:/home/git/respositories/secondproj.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/secondproj/secondproj/.git/
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
[zhangbin@CentOS32 secondproj]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhangbin/.ssh/id_rsa): 
/home/zhangbin/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/zhangbin/.ssh/id_rsa.
Your public key has been saved in /home/zhangbin/.ssh/id_rsa.pub.
The key fingerprint is:
61:41:3c:3a:c8:16:9f:b3:5b:6a:8f:57:13:0e:4f:1a zhangbin@CentOS32
The key's randomart image is:
+--[ RSA 2048]----+
|       oo        |
|    .   o.       |
|   . + oo.       |
|    + *.E.o      |
|   .   +SB .     |
|      . o =      |
|       + . .     |
|      +..        |
|     ..o.        |
+-----------------+
[zhangbin@CentOS32 secondproj]$ cp /home/zhangbin/.ssh/id_rsa.pub .
[zhangbin@CentOS32 secondproj]$ mv id_rsa.pub gitosis-admin/keydir/zhangbin@CentOS32.pub
mv: cannot move `id_rsa.pub' to `gitosis-admin/keydir/zhangbin@CentOS32.pub': No such file or directory
[zhangbin@CentOS32 secondproj]$ ls
id_rsa.pub
[zhangbin@CentOS32 secondproj]$ cd ..
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin  secondproj
[zhangbin@CentOS32 testgit]$ cd secondproj/
[zhangbin@CentOS32 secondproj]$ ls
id_rsa.pub
[zhangbin@CentOS32 secondproj]$ mv id_rsa.pub  ..
[zhangbin@CentOS32 secondproj]$ ls
[zhangbin@CentOS32 secondproj]$ cd ..
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin  id_rsa.pub  secondproj
[zhangbin@CentOS32 testgit]$ mv id_rsa.pub gitosis-admin/keydir/zhangbin@CentOS32.pub
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin  secondproj
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin  secondproj
[zhangbin@CentOS32 testgit]$ cd gitosis-admin/
[zhangbin@CentOS32 gitosis-admin]$ ls
gitosis.conf  gitosis.conf~  keydir
[zhangbin@CentOS32 gitosis-admin]$ git add ./
[zhangbin@CentOS32 gitosis-admin]$ git commit -a 
[master cf674b3] empty passwd to create a new isr pub key for zhangbin
 Committer: zhangbin <zhangbin@CentOS32.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:


    git config --global user.name "Your Name"
    git config --global user.email you@example.com


If the identity used for this commit is wrong, you can fix it with:


    git commit --amend --author='Your Name <you@example.com>'


 1 files changed, 1 insertions(+), 1 deletions(-)
[zhangbin@CentOS32 gitosis-admin]$ git push
git@172.28.10.239's password: 
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 675 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
To git@172.28.10.239:/home/git/repositories/gitosis-admin.git
   7ce6520..cf674b3  master -> master


接着上面的来:

切换到git账户:


[git@CentOS32 repo]$ cd /home/git
[git@CentOS32 ~]$ ls
gitosis  repo  repositories
[git@CentOS32 ~]$ cd repo
[git@CentOS32 repo]$ cd ..
[git@CentOS32 ~]$ ls
gitosis  repo  repositories

切换到这个路径:
[git@CentOS32 ~]$ cd repositories/
[git@CentOS32 repositories]$ ls
gitosis-admin.git

新建 secondproj.git
[git@CentOS32 repositories]$ mkdir secondproj.git
[git@CentOS32 repositories]$ cd secondproj.git/
[git@CentOS32 secondproj.git]$ ls
[git@CentOS32 secondproj.git]$ git init --base  是bare
error: unknown option `base'
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [directory]


    --template <template-directory>
                          provide the directory from which templates will be used
    --bare                create a bare repository
    --shared[=<permissions>]
                          specify that the git repository is to be shared amongst several users
    -q, --quiet           be quiet


[git@CentOS32 secondproj.git]$
git init --bare
Initialized empty Git repository in /home/git/repositories/secondproj.git/



===切换到zhangbin,进行clone第二个工程。


[git@CentOS32 repositories]$ su zhangbin
Password: 
[zhangbin@CentOS32 repositories]$ git clone zhangbin@172.28.10.239:/home/git/repositories/secondproj.git
Initialized empty Git repository in /home/git/repositories/secondproj/.git/
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password: 
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
[zhangbin@CentOS32 repositories]$ git clone zhangbin@172.28.10.239:/home/git/repositories/secondproj.git
Initialized empty Git repository in /home/git/repositories/secondproj/.git/
zhangbin@172.28.10.239's password: 
warning: You appear to have cloned an empty repository.
[zhangbin@CentOS32 repositories]$ git clone zhangbin@172.28.10.239:/home/git/repositories/secondproj.git
fatal: destination path 'secondproj' already exists and is not an empty directory.
[zhangbin@CentOS32 repositories]$ git clone zhangbin@172.28.10.239:/home/git/repositories/secondproj.git
fatal: destination path 'secondproj' already exists and is not an empty directory.
[zhangbin@CentOS32 repositories]$ ls
gitosis-admin.git  secondproj  secondproj.git
[zhangbin@CentOS32 repositories]$ pwd
/home/git/repositories
[zhangbin@CentOS32 repositories]$ rm -rf secondproj
[zhangbin@CentOS32 repositories]$ ls
gitosis-admin.git  secondproj.git
[zhangbin@CentOS32 repositories]$ cd /home/zhangbin
[zhangbin@CentOS32 ~]$ ls
Desktop    Downloads  Music     Public     testrepos
Documents  gitMISC    Pictures  Templates  Videos
[zhangbin@CentOS32 ~]$ cd gitMISC/
[zhangbin@CentOS32 gitMISC]$ ls
gitosis  testgit
[zhangbin@CentOS32 gitMISC]$ cd testgit/
[zhangbin@CentOS32 testgit]$ ls
gitosis-admin  secondproj
[zhangbin@CentOS32 testgit]$ rm -rf secondproj/
[zhangbin@CentOS32 testgit]$ git clone zhangbin@172.28.10.239:/home/git/repositories/secondproj.git
Initialized empty Git repository in /home/zhangbin/gitMISC/testgit/secondproj/.git/
zhangbin@172.28.10.239's password: 
Permission denied, please try again.
zhangbin@172.28.10.239's password:   这个密码是用户密码,不是创建rsa的时候秘钥密码。
warning: You appear to have cloned an empty repository.

[zhangbin@CentOS32 testgit]$ ls
gitosis-admin  secondproj


进入clone下来的工程中,这个工程是空的。
[zhangbin@CentOS32 testgit]$ cd secondproj/
[zhangbin@CentOS32 secondproj]$ ls
[zhangbin@CentOS32 secondproj]$ vim ab.txt   新建立一个文件
[zhangbin@CentOS32 secondproj]$ git add ./
[zhangbin@CentOS32 secondproj]$ git commit -a -m "initial import"
[master (root-commit) 920c026] initial import
 Committer: zhangbin <zhangbin@CentOS32.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:


    git config --global user.name "Your Name"
    git config --global user.email you@example.com


If the identity used for this commit is wrong, you can fix it with:


    git commit --amend --author='Your Name <you@example.com>'


 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 ab.txt
[zhangbin@CentOS32 secondproj]$ git push
zhangbin@172.28.10.239's password: 
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'zhangbin@172.28.10.239:/home/git/repositories/secondproj.git'

[zhangbin@CentOS32 secondproj]$ ls
ab.txt
[zhangbin@CentOS32 secondproj]$ git push
zhangbin@172.28.10.239's password: 
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'zhangbin@172.28.10.239:/home/git/repositories/secondproj.git'
[zhangbin@CentOS32 secondproj]$ git push master
fatal: 'master' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
[zhangbin@CentOS32 secondproj]$ git push
zhangbin@172.28.10.239's password: 
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'zhangbin@172.28.10.239:/home/git/repositories/secondproj.git'


这样就好了。
[zhangbin@CentOS32 secondproj]$ git push origin master
zhangbin@172.28.10.239's password: 
Counting objects: 3, done.
Writing objects: 100% (3/3), 248 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To zhangbin@172.28.10.239:/home/git/repositories/secondproj.git
 * [new branch]      master -> master
[zhangbin@CentOS32 secondproj]$ 


参考http://zer931.pixnet.net/blog/post/37084067-git%3Ano-refs-in-common-and-none-specified%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95

==========================

原因:
一般是因为clone了一个纯仓库,也就是说仓库是通过git init –bare方式建立的,由于是纯仓库,没有任何分支,也没有master分支,客户端checkout出来后也没有master,因而首次提交代码时需要手动指定远程仓库路径



======================================


后来,又出现了一些很奇怪的问题:


于是用红新弄了一遍,发先用root登陆的时候,会有这样的奇怪的程序错误:
[root@CentOS32 gitosis-admin]# ls
gitosis.conf  keydir
[root@CentOS32 gitosis-admin]# git add ./
[root@CentOS32 gitosis-admin]# git commt -a "add zhangbin@CentOS32 KEY and conf" 
git: 'commt' is not a git command. See 'git --help'.




Did you mean this?
commit
[root@CentOS32 gitosis-admin]# git commit -a "add zhangbin@CentOS32 KEY and conf"
fatal: Paths with -a does not make sense.
[root@CentOS32 gitosis-admin]# git commit -a -m  "add zhangbin@CentOS32 KEY and conf"
[master 770fa8f] add zhangbin@CentOS32 KEY and conf
 2 files changed, 4 insertions(+), 0 deletions(-)
 create mode 100644 keydir/zhangbin@CentOS32.pub
[root@CentOS32 gitosis-admin]# git push
The authenticity of host '172.28.10.239 (172.28.10.239)' can't be established.
RSA key fingerprint is 93:91:c7:f7:04:2e:e9:8f:fa:b3:12:c6:79:45:80:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.28.10.239' (RSA) to the list of known hosts.
git@172.28.10.239's password: 
Counting objects: 8, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 823 bytes, done.
Total 5 (delta 0), reused 0 (delta 0)
remote: Traceback (most recent call last):
remote:   File "/usr/bin/gitosis-run-hook", line 9, in <module>
remote:     load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-run-hook')()
remote:   File "/usr/lib/python2.6/site-packages/gitosis-0.2-py2.6.egg/gitosis/app.py", line 24, in run
remote:     return app.main()
remote:   File "/usr/lib/python2.6/site-packages/gitosis-0.2-py2.6.egg/gitosis/app.py", line 33, in main
remote:     self.read_config(options, cfg)
remote:   File "/usr/lib/python2.6/site-packages/gitosis-0.2-py2.6.egg/gitosis/app.py", line 70, in read_config
remote:     cfg.readfp(conffile)
remote:   File "/usr/lib/python2.6/ConfigParser.py", line 305, in readfp
remote:     self._read(fp, filename)
remote:   File "/usr/lib/python2.6/ConfigParser.py", line 482, in _read
remote:     raise MissingSectionHeaderError(fpname, lineno, line)
remote: ConfigParser.MissingSectionHeaderError: File contains no section headers.
remote: file: /home/git/.gitosis.conf, line: 1
remote: 'BZh91AY&SYY{\xb8\xe4\x00\x00\x14P\x00\xc0\x00\x04\x00\x00\x08 \x000\xcc\x05)\xa6\x13b\'\x8b\xb9"\x9c(H,\xbd\xdcr\x00'
remote: Traceback (most recent call last):
remote:   File "/usr/bin/gitosis-run-hook", line 9, in <module>
remote:     load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-run-hook')()
remote:   File "/usr/lib/python2.6/site-packages/gitosis-0.2-py2.6.egg/gitosis/app.py", line 24, in run
remote:     return app.main()
remote:   File "/usr/lib/python2.6/site-packages/gitosis-0.2-py2.6.egg/gitosis/app.py", line 33, in main
remote:     self.read_config(options, cfg)
remote:   File "/usr/lib/python2.6/site-packages/gitosis-0.2-py2.6.egg/gitosis/app.py", line 70, in read_config
remote:     cfg.readfp(conffile)
remote:   File "/usr/lib/python2.6/ConfigParser.py", line 305, in readfp
remote:     self._read(fp, filename)
remote:   File "/usr/lib/python2.6/ConfigParser.py", line 482, in _read
remote:     raise MissingSectionHeaderError(fpname, lineno, line)
remote: ConfigParser.MissingSectionHeaderError: File contains no section headers.
remote: file: /home/git/.gitosis.conf, line: 1
remote: 'BZh91AY&SYY{\xb8\xe4\x00\x00\x14P\x00\xc0\x00\x04\x00\x00\x08 \x000\xcc\x05)\xa6\x13b\'\x8b\xb9"\x9c(H,\xbd\xdcr\x00'

To git@172.28.10.239:/home/git/repositories/gitosis-admin.git
   0918bf4..770fa8f  master -> master



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等风来不如迎风去

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值