ÔÚGit·þÎñ¹ÜÀí¹¤¾ßÕâ¸öÁìÓò£¬Ö÷ÒªÓÐÈýÖÖÁ÷Ðеķ½°¸£¬ËüÃÇ·Ö±ðÊÇ£º
1.Gitosis - ÇáÁ¿¼¶£¬ ¿ªÔ´ÏîÄ¿£¬Ê¹ÓÃSSH¹«Ô¿ÈÏÖ¤£¬Ö»ÄÜ×öµ½¿â¼¶µÄȨÏÞ¿ØÖÆ¡£Ä¿Ç°ÏîÄ¿ÒѾֹͣ¿ª·¢£¬²»ÔÙά»¤¡£
2.Gitolite - ÇáÁ¿¼¶£¬¿ªÔ´ÏîÄ¿£¬Ê¹ÓÃSSH¹«Ô¿ÈÏÖ¤£¬ÄÜ×öµ½·ÖÖ§¼¶µÄȨÏÞ¿ØÖÆ¡£
3.Git + Repo + Gerrit - ³¬¼¶ÖØÁ¿¼¶£¬¼¯°æ±¾¿ØÖÆ£¬¿â¹ÜÀíºÍ´úÂëÉóºËΪһÉí¡£¿É¹ÜÀí´óÐͼ°³¬´óÐÍÏîÄ¿¡£
´óÃû¶¦¶¦µÄAndroidƽ̨¾ÍÊÇʹÓÃµÄ Git + Repo + Gerrit¡£¶ÔÓÚ¸öÈË£¬ÖÐСÐÍÆóÒµ¼°Ò»Ð©¿ªÔ´ÏîÄ¿¶øÑÔ£¬Èç¹ûûÓÐÌØÊâµÄÒªÇ󣬯äʵûÓбØÒªÈ¥¼ÜÉèÉÏÃæµÚÈýÖÖ·½°¸Git·þÎñÆ÷¡£GitoliteÌṩµÄ·þÎñÒѾ×ã¹»Óá£ÏÂÃæ½«Ïêϸ½²½âÔõô´î½¨Gitolite·þÎñÆ÷¡£
°²×°Gitolite
GitoliteµÄ°²×°ÐèÒª·Ö±ðÔÚ¿Í»§¶ËºÍ·þÎñÆ÷¶Ë²Ù×÷¡£´î½¨GitoliteµÄ²½ÖèÈçͼËùʾ¡£

ÔÚUbuntu12.04 LTSÉϴGitolite·þÎñÆ÷µÄÏêϸ²½Ö裬¼ÙÉè¿Í»§¶ËºÍ·þÎñÆ÷¶ËÒѾ°²×°ºÃÁËGit¡£Èç¹û»¹Ã»Óа²×°Git£¬Çë·Ö±ðÔÚ¿Í»§¶ËºÍ·þÎñÆ÷¶ËÔËÐÐÏÂÃæµÄÃüÁî°²×°Git¡£
$ sudo apt-get install git |
Éú³ÉSSH key£¨¿Í»§¶Ë£©
$ ssh-keygen -t rsa -C HF |

ÔËÐÐÃüÁîºó£¬Ò»Ö±°´»Ø³µ¼üÖ±µ½SSH keyÉú³É¡£

½«Éú³ÉµÄSSH public key¿½±´µ½·þÎñÆ÷£¨¿Í»§¶Ë£©
ÕâÀï×¢Ò⣬ΪÁËÇø·ÖSSH public key£¬Ç뽫SSH public keyÖØÃüÃû£¬×îºÃÊÇÓÃÓû§ÃûÃüÃû¡£ÀýÈç
<user-name>.pub
$ mv /home/UBUNTUUSERS/hf/.ssh/id_rsa.pub HF.pub $ scp HF.pub hf@ubuntu-12.04-LTS:/tmp |

´´½¨GitÓû§£¨·þÎñÆ÷¶Ë£©
$ sudo adduser \ > --system \ > --shell /bin/bash \ > --gecos 'Git SCM User' \ > --group \ > --disabled-password \ > --home /home/git git |

ÏÂÔØGitoliteÔ´Â루·þÎñÆ÷¶Ë£©¡¾1¡¿
$ sudo su git $ cd $HOME $ git clone http://github.com/sitaramc/gitolite |

°²×°Gitolite£¨·þÎñÆ÷¶Ë£©
$ mkdir -p ${HOME}/bin $ ${HOME}/gitolite/install -to ${HOME}/bin |
ÉèÖÃSSH public key£¨·þÎñÆ÷¶Ë£©
$ ${HOME}/bin/gitolite setup -pk /tmp/HF.pub |

Æäʵ£¬µ½ÕâÀGitoliteÒѾ°²×°Íê³É¡£½ÓÏÂÀ´¾ÍÊÇÌí¼ÓGitÏîÄ¿£¬Óû§ºÍÉèÖÃGitÏîÄ¿µÄ·ÃÎÊȨÏÞÁË¡£
µ«ÊÇÈç¹ûÄãµÄ·þÎñÆ÷¶ÔSSHµÄȨÏÞ×öÁËÏÞÖÆ£¬ÀýÈçÖ»ÓÐÔÚsshusersÓû§×éÀïµÄÓû§²Å¿ÉÒÔSSHµ½·þÎñÆ÷£¬ÄÇôÄ㻹ÐèÒª×öÒ»¸ö¶îÍâµÄÉèÖã¬ÄǾÍÊÇÌí¼ÓgitÓû§¼°ÒÔºóµÄGitoliteµÄÓû§µ½sshusersÓû§×é¡£·ñÔò£¬µ±Äã¿Ë¡GitÏîĿʱ£¬Ä㽫±»ÌáʾÊäÈëÃÜÂë¡£ÈçÏÂͼ£º

Ìí¼ÓgitÓû§sshusersÓû§×飨·þÎñÆ÷¶Ë£©

¿Ë¡Gitolite¹ÜÀí¿â£¨¿Í»§¶Ë£©
$ git clone git@ubuntu-12.04-LTS:gitolite-admin.git |

Äã¿ÉÒÔ¿´µ½ÔÚ¹ÜÀí¿âÀÓÐÁ½¸öĿ¼£¬ conf/ºÍkeydir/£¬ÆäÖÐconf/ÏÂÃæÓиöÃûΪgitolite.confµÄÅäÖÃÎļþ¡£
conf/gitolite.conf ÓÃÓÚGitÏîÄ¿ÅäÖ㬷ÃÎÊȨÏÞÉèÖá£
keydir/ ÓÃÓÚ´æ´¢Óû§µÄSSH public key(¹«Ô¿£©¡£
GitÏîÄ¿ÅäÖúͷÃÎÊȨÏÞÉèÖÃÇë¿´GitoliteµÄREADME.txtÎĵµ¡£
ÅäÖÃGitÏîÄ¿£¨¿Í»§¶Ë£©¡¾2¡¿
ΪÁËÔö¼ÓGitÏîÄ¿µ½Gitolite·þÎñÆ÷£¬ÓÐÁ½ÖÖ·½·¨£º
Ìí¼ÓÒ»¸öеÄGitÏîÄ¿
1.ÐÞ¸Ägitolite.conf
ÀýÈ磬н¨Ò»¸öÃûΪfooµÄGitÏîÄ¿£¬Ê×ÏÈÄãÐèÒªÔÚconf/gitolite.confÀï×¢²áfooÏîÄ¿¡£
¼ÙÉèÄãÒѾ¿Ë¡ÁËgitolite-admin.gitÏîÄ¿£¬±à¼conf/gitolite.conf£¬Ôö¼ÓÏÂÃæµÄÄÚÈÝ¡¾3¡¿¡£
È»ºóÌá½»Õⲿ·ÖÐ޸쬲¢pushµ½Ô¶³Ì¡£
2.ÉèÖÃGitÏîÄ¿
hf@ubuntu-12.04-LTS:~$ mkdir foo hf@ubuntu-12.04-LTS:~$ cd foo hf@ubuntu-12.04-LTS:~/foo$ git init Initialized empty Git repository in /home/UBUNTUUSERS/hf/foo/.git/ hf@ubuntu-12.04-LTS:~/foo (master)$ git remote add origin hf@ubuntu-12.04-LTS.git hf@ubuntu-12.04-LTS:~/foo (master)$ touch README hf@ubuntu-12.04-LTS:~/foo (master)$ git add README hf@ubuntu-12.04-LTS:~/foo (master)$ git commit -m "Initial commit" [master (root-commit) 997d5d8] Initial commit 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 README hf@ubuntu-12.04-LTS:~/foo (master)$ git push origin master:refs/heads/master Counting objects: 3, done. Writing objects: 100% (3/3), 217 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To hf@ubuntu-12.04-LTS:foo.git * [new branch] master -> master |
ÏÖÔÚGitÏîÄ¿fooÒѾÉèÖúÃÁË¡£Óû§¿ÉÒÔ´Ó·þÎñÆ÷ÉϿˡfooÁË¡¾4¡¿¡£
hf@ubuntu-12.04-LTS:~$ git clone hf@ubuntu-12.04-LTS:foo.git Cloning into 'foo'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. |
Ìí¼ÓÒ»¸ö´æÔÚµÄGitÏîÄ¿
Èç¹ûÄãÓÐÒ»¸öÒѾ´æÔÚµÄÏîÄ¿£¬Ò²Ï뽫ÆäÌí¼Óµ½GitoliteµÄ·þÎñÆ÷Àï¡£ÕâºÜ¼òµ¥£¬µ«ÊÇÊ×ÏÈÄãÒÀÈ»ÐèÒªÔÚgitolite.confÀï×¢²áÕâ¸öÏîÄ¿¡£È»ºóÖ´ÐÐÏÂÃæµÄ²Ù×÷£º
cd foo git remote rm origin git remote add origin hf@ubuntu-12.04-LTS.foo.git git push origin master |
Èç¹ûÄãÓжà¸öbranch£¬ÄÇôcheckoutµ½ÄǸöbranch£¬Ö´ÐÐ
git push origin <branch-name> |
×¢£º
¡¾1¡¿ Èç¹ûÊÇÆóÒµÄÚ²¿ÍøÂ磬¿ÉÄÜÄãÐèÒªÉèÖÃHTTP´úÀí£¬·½·¨ÈçÏÂ:
$ export http_proxy=http://proxy.<server-name>.com:<port-number>/ |
ÀýÈ磺 export http_proxy=http://proxy.server.com:8080/
¡¾2¡¿ ´Ë²½Öè½öGitoliteµÄ¹ÜÀíÔ±²ÅÓÐȨÏÞÖ´ÐС£
¡¾3¡¿ ÔÚÕâÀÎÒÃǰÑfooÏîÄ¿µÄ¶ÁдȨÏÞ¸øÁËËùÓеÄGitoliteÓû§£¬Êµ¼ÊµÄÏîÄ¿ÖУ¬Äã
×îºÃ²»ÒªÕâÑù×ö¡£ÇëΪ²»Í¬¼¶±ðµÄÓû§ÉèÖò»Í¬µÄȨÏÞ¡£
¡¾4¡¿ ÓÉÓÚÎҵĿͻ§¶ËºÍ·þÎñÆ÷ÊÇͬһ̨PC£¬ËùÒÔÕâÀïÓòÃû¶¼ÊÇubuntu-12.04-LTS¡£
|