рдПрд╕рд╡реАрдПрди рд╕реЗ рдЧрд┐рдЯ рддрдХ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдирд╛

рдЫрд╡рд┐
рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдПрд╕рд╡реАрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдордп рдРрд╕рд╛ рднреА рдЖрдпрд╛ рдЬрдм рдХрд┐рд╕реА рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ рд╣реА рд▓реЙрдиреНрдЪ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдореМрдЬреВрджрд╛ рдХреАрдбрд╝реЗ рдХреЛ рдСрдирд▓рд╛рдЗрди рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрд╕рд╡реАрдПрди рдореЗрдВ рдПрдХ рднреА рдЯреНрд░рдВрдХ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдмреНрд░рдВрдЪ рдХрд╛ рд╕рдВрдЧрдарди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЬреАрд╡рди рдХреЛ рдирд░рдХ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрд╕рд╡реАрдПрди рд╕реЗ рдЧрд┐рдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред

1. рдХреЗрдВрджреНрд░реАрдп рднрдВрдбрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░


рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЧрд┐рдЯ рдПрдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рдпрд╣ рдПрдХ рдХреЗрдВрджреНрд░реАрдп рднрдВрдбрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдВрддрддрдГ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдмрд┐рд▓реНрдб рддреИрдирд╛рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдПрдХ рдЙрддреНрдкрд╛рджрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдЦреБрдж рдЬреЗрдВрдЯреВ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрд╕ рдкрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдЪреБрдирд╛рд╡ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ - рдЧрд┐рдЯреЛрд╕рд┐рд╕ рдпрд╛ рдЧрд┐рдЯреЛрд▓рд┐рдЯред рдЪреВрдВрдХрд┐ рдХрдИ рд╡рд░реНрд╖реЛрдВ рддрдХ рдЧрд┐рдЯреЛрд╕рд┐рд╕ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдЧрд┐рдЯреЛрд▓рд┐рдЯ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред

1.1ред рдЬрд┐рдУрд▓рд╛рдЗрдЯ рд╕реНрдерд╛рдкрдирд╛

рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рдкрд░ gitolite 3.03 рдбрд╛рд▓рд╛:
$ emerge gitolite 

рдпрд╣ рдПрдХ git рдпреВрдЬрд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рднреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реЛрдЧрд╛ред

1.2ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк

рдЕрдм рд╣рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (gitolite рд╕реНрдЯреЛрд░ рдХреА рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧ git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд╛рди рдкрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП rsa key рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреА рд╣реЛрдЧреА:
 $ ssh-keygen -t rsa $ cp ~/.ssh/id_rsa.pub /tmp/admin.pub 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрд┐рдЯреЛрд▓рд┐рдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 $ su git $ cd $ mkdir -p bin $ gitolite/install -ln $ gitolite setup -pk /tmp/admin.pub 

1.3ред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рднрдВрдбрд╛рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рд╣рдо рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ:
 $ cd $ git clone git@server:gitolite-admin.git 

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдЙрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рд╣реЛрд╕реНрдЯрдирд╛рдо рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЬрд┐рдУрд▓рд╛рдЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рджрд┐рдЦрд╛рдИ рдЧрдИ gitolite-admin / conf / gitolite.conf рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝реЗрдВ (рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдЕрдм рддрдХ):
 repo project RW+ = javer 

рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред рдЧрд┐рдЯреЛрд▓рд┐рдЯ-рдПрдбрдорд┐рди рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рд╣рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 $ git add . $ git commit -am "Repository for project added" $ git push origin master 

gitolite рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрди рд╕рднреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░ рджреЗрдЧрд╛ рдЬреЛ рдХрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ рдФрд░ рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред

рдпрд╣реА рд╣реИ, рдЧрд┐рдЯреЛрд▓рд┐рдЯ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рд╢реБрд░реВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рднрдВрдбрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

2. рдПрд╕рд╡реАрдПрди рд╕реЗ рдЖрдпрд╛рдд рдкрд░рд┐рдпреЛрдЬрдирд╛


рд╕реАрдзреЗ рдПрд╕рд╡реАрдПрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЧрд┐рдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
 $ git svn clone 

рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЬреАрдЖрдИрдЯреА рдХреЛ рдкреЗрд░рд▓ рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

2.1ред рдСрдбрд┐рдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рд╢реБрд░реВ рдХрд░реЗрдВ

рд╣рдорд╛рд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ SVN рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рдд рд╣реИред рдЪреВрдБрдХрд┐ рд╕рдВрд╢реЛрдзрди рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╕рдВрдкреВрд░реНрдг рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд░реЙрд╕-рдХрдЯрд┐рдВрдЧ рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо svn рдореЗрдВ рдкрд╣рд▓реА рдХрдорд┐рдЯ рд▓реЙрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдпрд╛рдж рд░рдЦреЗрдВред рдЖрдпрд╛рдд рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рдВрд╢реЛрдзрди рд╕реНрдХреИрди рди рд╣реЛрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдВрд╢реЛрдзрди 19815 рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ:
 -r19815:HEAD 

2.2ред рдПрд╕рд╡реАрдПрди рдпреВрдЬрд░реНрд╕ рдХреЛ рдЧрд┐рдЯ рдпреВрдЬрд░реНрд╕ рд╕реЗ рдорд┐рд▓рд╛рдирд╛

рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ Git рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде SVN рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдпрд╛рдд рдХреЗ рджреМрд░рд╛рди рдЙрдиреНрд╣реЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд▓реЗрдЦрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ:
 javer = javer <javer@domain.tld> developer1 = developer1 <developer1@domain.tld> ... 

рдЬрд╣рд╛рдБ user@domain.tld git рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдИ-рдореЗрд▓ рд╣реИ (git рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдИрдореЗрд▓ рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рддрджрдиреБрд╕рд╛рд░, рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЖрдпрд╛рдд рдХрдорд╛рдВрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ:
 --authors-file=/path/to/authors 

2.3ред рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░

рд╣рдо рдФрд░ рдЖрдЧреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдмрдбрд╝реА рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрдорд┐рдЯ рдереЗ, рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдирдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
 --ignore-paths="\.(avi|mov)$" 

2.4ред рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк

рд╣рдореЗрдВ SVN рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдУрд░ рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА:
 --username javer 

рд╣рдо рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - рдХреЛрдИ-рдореЗрдЯрд╛рдбреЗрдЯрд╛, рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХрдорд┐рдЯ рд▓реЙрдЧ рдореЗрдВ: рдлреЙрд░реНрдо рдХреЗ рдХреЛрдИ рдЬреЛрдбрд╝ рди рд╣реЛрдВ:
 git-svn-id: svn://svn.domain.tld/repo/project/trunk@19815 e13dc095-444b-fa4e-8f24-06838a8318a5 

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдПрд╕рд╡реАрдПрди рднрдВрдбрд╛рд░ рдореЗрдВ, рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рдЯреНрд░рдВрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЧрдИ рдереА, рдХреБрдЫ рдмреНрд░рдВрдЪ рдореЗрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдХреЛрдб рд╣реЛрддрд╛ рдерд╛, рдЬреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рдПрдХ рд╕рдордп рдореЗрдВ рдЯреНрд░рдВрдХ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

2.5ред рдПрд╕рд╡реАрдПрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдХреНрд▓реЛрдирд┐рдВрдЧ

рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ рдФрд░ рдЪрд▓рд╛рдирд╛:
 $ cd $ mkdir project && cd project $ git svn clone -r19815:HEAD --authors-file=/path/to/authors --ignore-paths="\.(avi|mov)$" --username javer --no-metadata svn://svn.domain.tld/repo/project/trunk . 

рдЬрд╣рд╛рдВ svn: //svn.domain.tld/repo/project/trunk SVN рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЯреНрд░рдВрдХ рдкрддрд╛ рд╣реИред

рдХреНрд▓реЛрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреА рдЕрд╡рдзрд┐ рдХрдорд┐рдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдирдХреА рдорд╛рддреНрд░рд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓рдЧрднрдЧ 4.5 рд╣рдЬрд╛рд░ рдХрдорд┐рдЯ рдереЗ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рджреЛ рдШрдВрдЯреЗ рд▓рдЧреЗред

2.6ред рдЕрдзрд┐рдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд░рдг

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рд╣рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкреВрд░рд╛ рдХреНрд▓реЛрди рдорд┐рд▓рддрд╛ рд╣реИред рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдирдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЪреБрдиреЗрдВрдЧреЗред рдЖрдк рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 $ git filter-branch --tree-filter 'rm -rf unneeded_directory' -f HEAD 

рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднреА рдХрд╛рдлреА рд▓рдВрдмреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдмрджреНрдз рдХреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 1 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

2.7ред рдЦрд╛рд▓реА рдХрдорд┐рдЯреНрд╕ рдирд┐рдХрд╛рд▓рдирд╛

рдкрд┐рдЫрд▓реЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреНрд▓реЛрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдкреВрд░реЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛, рдЬрд┐рд╕рдХреЗ рдмреАрдЪ рдЕрдм рдЦрд╛рд▓реА рдХрдорд┐рдЯреНрд╕ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдПрдХ рднреА рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╡реЗ рдЗрдЧреНрдирд┐-рдкрд╛рде рд╡рд┐рдХрд▓реНрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЯреНрд░реА-рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЦрд╛рд▓реА рдХрд╛рдореЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
 $ git filter-branch --commit-filter 'git_commit_non_empty_tree "$@"' HEAD 

рдЗрд╕ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЯреНрд░реА-рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

2.8ред рдЦрд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ svn: рдЙрдкреЗрдХреНрд╖рд╛

рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдкреВрд░реНрд╡ svn рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдирдП .gitignore рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 $ git svn create-ignore 

рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ git рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдЦрд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдЦрд╛рд▓реА .gitignore рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрди рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░реЗрдВ:
 $ git add . $ git commit -am "Added .gitignore" 

2.9ред SVN рдЙрд▓реНрд▓реЗрдЦ рд╣рдЯрд╛рдПрдВ

рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ SVN рд╕реЗ Git рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо SVN рдХреЗ рд╕рднреА рд╕рдВрджрд░реНрдн рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ:
 $ git branch -rd git-svn $ git config --remove-section svn-remote.svn $ git config --remove-section svn $ rm -rf .git/svn 

2.10ред svn: рдмрд╛рд╣рд░реА

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдХреБрдЫ рд╕рд┐рдореНрдлрдиреА рдкреНрд▓рдЧрдЗрдиреНрд╕, рджреЛрдиреЛрдВ рдХрд╕реНрдЯрдо рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ, svn: externals рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝реЗ рдереЗред рдЪреВрдВрдХрд┐ рдЧрд┐рдЯ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рдЖрд╕рд╛рди рд╣реИ:
 $ git submodule add git://github.com/propelorm/sfPropelORMPlugin.git plugins/sfPropelORMPlugin $ git submodule add git://github.com/n1k0/npAssetsOptimizerPlugin.git plugins/npAssetsOptimizerPlugin 

рдпрд╣ рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ - рдЙрдирдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрдХ рдХреЗ рд╕рдорд╛рди рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рддрд░рд╣ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
 $ git submodule add git@server:customPlugin.git plugins/customPlugin 

рд╕рдмрдореЛрдбреНрдпреВрд▓реНрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
 $ git submodule update --init --recursive $ git commit -am "Added submodules: sfPropelORMPlugin, npAssetsOptimizerPlugin, customPlugin" 

2.11ред рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ

рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 $ git gc 

рд╣рдо рдЕрдкрдиреЗ рдирдП рднрдВрдбрд╛рд░ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
 $ git remote add origin git@server:project.git 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕рд░реНрд╡рд░ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рднрд░реЗрдВ:
 $ git push origin master 

2.12ред рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдмрдореЙрдбреНрдпреВрд▓реНрд╕ рдЕрдкрдбреЗрдЯ

рдЪреВрдВрдХрд┐, svn рдХреЗ рд╡рд┐рдкрд░реАрдд: рдмрд╛рд╣реНрдп, рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЕрджреНрдпрддрди рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдЕрдВрдХ
 $ git pull 

рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрдирдХрд╛ рдЕрджреНрдпрддрди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
 $ git submodule update 

рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдереЗ:
 $ git submodule foreach git pull $ git commit -am "Updated submodules" 


3. рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░рдорд┐рд╢рди рд╕реЗрдЯ рдХрд░рдирд╛


3.1ред рдХрд╕реНрдЯрдо рдХреБрдВрдЬреА

рдЪреВрдВрдХрд┐ рджреВрд░рд╕реНрде рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ, рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рдПрдХ rsa рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреА рд╣реЛрдЧреАред

3.1.1ред рд▓рд┐рдирдХреНрд╕ / рдпреВрдирд┐рдХреНрд╕

рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд▓рд┐рдирдХреНрд╕ / рдпреВрдирд┐рдХреНрд╕ рдпрд╛ рдЧрд┐рдЯ рдмреИрд╢ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 $ ssh-keygen -t rsa 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рд╛рдкреНрдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА ~ / .ssh / id_rsa.pub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЛ рджреА рдЬрд╛рддреА рд╣реИред

3.1.2ред рд╡рд┐рдВрдбреЛрдЬ

рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреБрдЯреНрдЯреАрдЬреЗрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдкреБрдЯреНрдЯреАрдЬреЗрди ред

рд╣рдо рдкреЛрдЯреАрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрддреНрдкрдиреНрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рддрдХ рдорд╛рдЙрд╕ рдХреЛ рдЦрд┐рдбрд╝рдХреА рдкрд░ рдЦреАрдВрдЪреЗрдВ, рдлрд┐рд░ рдЯрд┐рдкреНрдкрдгреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреБрдВрдЬреА рдХреНрдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХреБрдВрдЬреА рдПрдХреНрд╕реЗрд╕ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ, рдЗрд╕реЗ user.pub рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЗрд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред

рдлрд┐рд░ рд╣рдо рдирд┐рдЬреА рдХреБрдВрдЬреА рд╕рд╣реЗрдЬреЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдХреБрдВрдЬреА рдХреЛ рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдВрдд рд╕реНрдерд╛рди рдкрд░ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, TortoiseGit рдореЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░реВрдкрд╛рдВрддрд░рдг рдореЗрдиреВ рдореЗрдВ, рдирд┐рд░реНрдпрд╛рдд OpenSSH рдХреБрдВрдЬреА рдЪреБрдиреЗрдВ рдФрд░ рдЗрд╕реЗ C: \ Users \ERNERNAME \ .ssh \ id_rsa рдирд╛рдордХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ, рдЬрд╣рд╛рдБ USERNAME рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдирд╛рдо рд╣реИред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЧрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рдЗрд╕ рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

3.2ред рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░рдирд╛

рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЛ USERNAME.pub рдХреЗ рдирд╛рдо рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ ~ / gitolite-admin / keydir / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ USERNAME рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╣реИред

рдЪреВрдВрдХрд┐ рдЬрд┐рдУрд▓рд╛рдЗрдЯ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднрдВрдбрд╛рд░ рддрдХ рдкрд╣реБрдВрдЪ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ ~ / gitolite-admin / conf / gitolite.conf рдФрд░ рдЗрд╕реЗ рдлрд╝реЙрд░реНрдо рдореЗрдВ рд▓рд╛рдПрдВ:

@owners = javer
@project_developers = user1 user2 user3
@deploy = root@production

repo project
- master$ = @project_developers
- refs/tags = @project_developers
RW+ = @project_developers @owners
R = @deploy

рдпрд╣ рд╣рдореЗрдВ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Project_developers рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП, рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЯреИрдЧ рдмрдирд╛рдиреЗ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдЕрдкрдиреА рд╢рд╛рдЦрд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рднреА рд╣реИред рддреИрдирд╛рдд рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдЕрдВрдд рдореЗрдВ, рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рди рднреВрд▓реЗрдВ:
 $ git add . $ git commit -am "New users for project: user1, user2, user3..." $ git push origin master 


4. рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдорд╢реАрдиреЛрдВ рдкрд░ рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕


рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИ, рдЕрдм рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдорд╢реАрдиреЛрдВ рдкрд░ рдЧрд┐рдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред

4.1ред рд▓рд┐рдирдХреНрд╕ / рдпреВрдирд┐рдХреНрд╕


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рд╣рдо рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреА рдорджрдж рд╕реЗ рдЧрд┐рдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЕрдкрдирд╛ рдирд╛рдо рдФрд░ рдИ-рдореЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, рдПрд╕рд╡реАрдПрди рд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдорд╛рди:
 $ git config --global user.name "javer" $ git config --global user.email "user@domain.tld" 

4.2ред рд╡рд┐рдВрдбреЛрдЬ


рдпрд╣рд╛рдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ, рдЕрдм рддрдХ рдореИрдВ рдЯреЛрд░реНрдЯреЛрдЗрд╕рдЧрд┐рдЯ рдкрд░ рдмрд╕ рдЧрдпрд╛ рд╣реВрдВред

рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдмреАрдЯрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, msysgit рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ , рдЕрдзрд┐рдорд╛рдирддрдГ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рдкрд░, рдореИрдВ рдЖрдкрдХреЛ рдЧрд┐рдЯ рдмреИрд╢ рдФрд░ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдк рдЧрд┐рдЯ рдмреИрд╢ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рджреЛрдиреЛрдВ рдХреЛ рдЪрд▓рд╛ рд╕рдХреЗрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, TortoiseGit рдХреЛ рд╕реНрд╡рдпрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдореИрдВ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд░рд╛рддреНрд░рд┐рдХрд╛рд▓реАрди рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВред

рдЕрдм TortoiseGit рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЬрд╛рдПрдВ (рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ TortoiseGit-> рд╕реЗрдЯрд┐рдВрдЧреНрд╕), рд╡рд╣рд╛рдВ Git рд╕реЗрдХреНрд╢рди рдвреВрдВрдвреЗрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдмреНрд▓реЙрдХ рдореЗрдВ рдЕрдкрдирд╛ рдирд╛рдо рдФрд░ рдИ-рдореЗрд▓ рджрд░реНрдЬ рдХрд░реЗрдВред

5. рдЪрд╛рд▓ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИред рдХрд╛рдо рдкрд░ рд▓рдЧрдирд╛


рдпрд╣реА рд╣реИ, рдПрд╕рд╡реАрдПрди рд╕реЗ рдЧрд┐рдЯ рддрдХ рдЬрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдЕрдкрдиреА рдХрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрд▓реЛрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдореИрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрди рд▓реЗрдЦреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛:

Source: https://habr.com/ru/post/In144626/


All Articles