[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
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]$
==========================
原因:
一般是因为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