рдЧрд┐рдЯреЛрд▓рд┐рдЯ ,
рдЧрд┐рдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╣рдпреЛрдЧреА рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреЗрдВрджреНрд░реАрдХреГрдд рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдореВрд▓рдЧрд╛рдореА рдЙрдкрдХрд░рдг рдЖрдЬ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ: рджреЗрд╢реА рдЧрд┐рдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдФрд░ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдУрдПрд╕ (рд╢реЗрд▓ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рд╣рдореЗрд╢рд╛ рдЙрдЪрд┐рдд рдФрд░ рд╡рд╛рдВрдЫрдиреАрдп рд╕реЗ рджреВрд░ рд╣реЛред
gitolite рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рднрд▓реЗ рд╣реА OS рдореЗрдВ рдХрд┐рд╕реА рдЦрд╛рддреЗ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рд╣реЛ рдФрд░ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдЕрдзрд┐рдХрд╛рд░ рджреЗред
presupposition
- рд╡рд┐рд╖рдп рдмрдбрд╝рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рднреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рд╕реЗ рджреВрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдЕрдкрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ, рдЧрд┐рдЯреЛрд▓рд┐рдЯ рдбреЗрд╡рд▓рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде ssh рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреА рд╕рдордЭ рдХреА рдХрдореА рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ "рддреИрд░рд╛рдХреА" рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд╛рдЙрдЯреЛ рд╣реИред
- рд▓реЗрдЦ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЬреАрдЯреЙрд▓рд╛рдЗрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд░реНрд╡рд░ рдПрдХ рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реА рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдЪрд▓рддрд╛ рд╣реИ
рд╕реНрдерд╛рдкрдирд╛
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛрдИ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рдЙрдард╛рддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдкрд░:
- рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ git рдХрд╣рддреЗ рд╣реИрдВред
- рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдЬреЛ git рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╣реЛрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореБрдЦреНрдп рдирд╛рдо .pub рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ gitolite рдЖрдкрдХреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ред рдпрд╣ рдирд╛рдо рдХрд┐рд╕реА рд╕рд┐рд╕реНрдЯрдо рдирд╛рдо рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЧрд┐рдЯреЛрд▓рд┐рдЯ рд╣рдореЗрдВ рдЬреАрдЯрдбрдорд┐рди рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдиреЗ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ gitadmin.pub рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
Git рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ gitolite рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
su git cd ~ git clone git://github.com/sitaramc/gitolite gitolite/src/gl-system-install gl-setup -q ~/gitadmin.pub
рд╕рдорд╛рдпреЛрдЬрди
рдЧрд┐рдЯреЛрд▓рд┐рдЯ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдХреЛрдИ рднреА рдСрдкрд░реЗрд╢рди рд╕реАрдзреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рдЧрд┐рдЯреЛрд▓рд┐рдЯ-рдПрдбрдорд┐рди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ git рдХреНрд▓реЛрди рдмрдирд╛рдиреЗ, рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдФрд░ git рдкреБрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯреЛрд▓рд╛рдЗрдЯ рд╣реБрдХ рдХреА рдПрдХ рдкреВрд░реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рднрдВрдбрд╛рд░ рдмрдирд╛рдиреЗ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
- рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЬрд┐рд╕рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп gitolite рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ gitolite-admin repository рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде), рд╣рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
git clone git@server:gitolite-admin
рдпрд╣ рддрджрдиреБрд╕рд╛рд░, рд╡рд░реНрддрдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдПрдЧрд╛ред рдЗрд╕рдореЗрдВ рджреЛ рдлрд╝реЛрд▓реНрдбрд░ рд╣реЛрддреЗ рд╣реИрдВ: рдХреЙрдиреНрдлрд┐рдб рдФрд░ рдХреАрдбрд┐рд░ред рдЧреЛрдкрдиреАрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ gitolite.conf рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрди рддрдХ рдкрд╣реБрдБрдЪ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдХреАрдбрд┐рд░ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд┐рдУрд▓рд╛рдЗрдЯ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред - рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдХреЗрдбрд┐рд░ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд▓рд┐рдЦреЗрдВред .Pub рдХреЗ рдЕрдВрдд рддрдХ рдкреНрд░рдореБрдЦ рдирд╛рдо gitolite рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг: user1.pub рдпрд╛ john-smith.pubред рдПрдХ рдирд╛рдо рдореЗрдВ рдбреЙрдЯ рдФрд░ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╡рд░реНрдгреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
- рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, conf / gitolite.conf рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
repo gitolite-admin RW+ = gitadmin repo testing RW+ = @all
рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝реЗрдВ:
repo megaproject RW+ = gitadmin user1 john-smith
рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдирдП рдореЗрдЧрд╛рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдпреВрдЬрд░реНрд╕ gitadmin, user1, john-smith рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВред - рдлрд┐рд░ рд╣рдо рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рднреЗрдЬрддреЗ рд╣реИрдВ:
git add . git commit -a -m "New repo and users added" git push
рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж:
рдирдП рдмрдирд╛рдП рдЧрдП рднрдВрдбрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
рджрд░рдЕрд╕рд▓, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЧрд┐рдЯреЛрд▓рд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рдж, рдбреЗрд╡рд▓рдкрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
git clone git@server:megaproject cd megaproject touch newfile git add . git commit -a -m "newfile" git push git@server:megaproject master
ssh - рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, ssh рдореЗрдВ, рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдореЗрдЬрдмрд╛рди рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдкрд╣рдЪрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж, ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдбрд╛рд▓реЗ рдмрд┐рдирд╛ рд░рд┐рдореЛрдЯ рдорд╢реАрди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдбрд╝реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
ssh-keygen -t rsa
рдпрд╣ рдХрдорд╛рдВрдб ~ / .shsh рдлреЛрд▓реНрдбрд░ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдЧреА: id_rsa рдФрд░ id_rsa.pubред рдкрд╣рд▓реА рдирд┐рдЬреА рдХреБрдВрдЬреА рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдЖрдВрдЦ рдХреЗ рд╕реЗрдм рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ (рдПрдХреНрд╕рдЯреЗрдВрд╢рди .pub рдХреЗ рд╕рд╛рде) рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╣реИ, рдЬрд┐рд╕реЗ рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рд╕рд┐рд░реНрдл рдПрдХ рд▓рдВрдмрд╛ рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рдЙрд╕ рдорд╢реАрди рдкрд░ рдЬрд┐рд╕реЗ рдЖрдк рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА ~ / .sh / рдЕрдзрд┐рдХреГрдд_рдХреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рджрд░реНрдЬ рдХрд░рдиреА рд╣реЛрдЧреА рдЬрд┐рд╕рдХреА рдПрдХреНрд╕реЗрд╕ рдХреЛ рдЖрдкрдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
gitolite - рдХрд╛рд░реНрдп рд╕рд┐рджреНрдзрд╛рдВрдд
рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрдгрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ-рдХреБрдВрдЬреА (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЬрд┐рд▓реЗрдЯрд▓рд╛рдЗрдЯ рдПрд╕рдПрдЪрдПрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХрдорд╛рддреНрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╣реЛрдЧрд╛, рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ gitolite рдХрд╛ "рдЬрд╛рджреВ" рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рдХреБрдВрдЬреА "рдХрдорд╛рдВрдб = [рдкрд╛рде] / рдЧреНрд▓-рдкрд░рд╕реЗрдВрдЯ-рдХрдорд╛рдВрдб ..." рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХреГрдд_рдХреА рдореЗрдВ рдЖрддреА рд╣реИрдВред рдпрд╣ рд╡рд┐рдХрд▓реНрдк ssh рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реЛред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореВрд▓ рдЖрджреЗрд╢ SSH_ORIGINAL_COMMAND рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ gitolite рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрдврд╝рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рдереЗред