рдкреНрд░рд╕рдВрдЧ
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧрд┐рдЯ, рдбрд┐рдмрдЧрд░, рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдХрд╛рд╕ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╣реИред рд╕рд╛рдЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣реА рд╣реИ, рдФрд░ рдХреЛрдб рдХреЛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╕реЗ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрджреНрдпрддрди рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рдХрднреА-рдХрднреА (рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдХреНрд╕рд░) рд╣реЛрддрд╛ рд╣реИред рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ?
рдкрд╣рд▓рд╛ рд╕рдорд╛рдзрд╛рди рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдПрдХ рд╕рд╛рдзрд╛рд░рдг
git рдкреБрд╢ рдХрдорд╛рдВрдб: рд╣рдо рд░рд┐рдореЛрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреБрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдб рдХрд╛ рдЕрдкрдбреЗрдЯреЗрдб рд╡рд░реНрдЬрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред
рдЙрддреНрд╕рд╛рд╣ рдХреЗ рдПрдХ рдлрд┐рдЯ рдореЗрдВ, рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ
.git рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ: рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рдж, рдХрд╝реАрдорддреА
рдЧрд┐рдЯ рдкреБрд╢ рд╕рд░реНрд╡рд░ рдорд╛рд╕реНрдЯрд░ рд╣рдорд╛рд░реЗ рдЬреИрд╕реЗ рдХреБрдЫ рд▓реМрдЯрд╛рдПрдЧрд╛:
remote: error: refusing to update checked out branch: refs/heads/master remote: error: By default, updating the current branch in a non-bare repository remote: error: is denied, because it will make the index and work tree inconsistent remote: error: with what you pushed, and will require 'git reset --hard' to match remote: error: the work tree to HEAD. remote: error: remote: error: You can set 'receive.denyCurrentBranch' configuration variable to remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into remote: error: its current branch; however, this is not recommended unless you remote: error: arranged to update its work tree to match what you pushed in some remote: error: other way. remote: error: remote: error: To squelch this message and still keep the default behaviour, set remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
рдЗрд╕ рд╕рдВрджреЗрд╢ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрде рд╣реИ: "рдЖрдк рдПрдХ рдЧреИрд░-рдирдВрдЧреЗ рднрдВрдбрд╛рд░ рдХреА рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреЗрдбрд╝ рд╢рд╛рдЦрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ"ред
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐
рдирдВрдЧреЗ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдРрд╕реА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рднрдВрдбрд╛рд░ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА рдпрджрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛ рдХреЛ рдирд╣реАрдВ рдзрдХреНрдХрд╛ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЙрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
рд╕рдВрдХрд▓реНрдкрдирд╛
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╣реБрдХ (рдЯреНрд░рд┐рдЧрд░) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдХрд┐рдП рдЧрдП рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВрдЧреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд╛рдкрд╕ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ рдПрдХ рдЙрддреНрдкрд╛рджрди рд╢рд╛рдЦрд╛ рдмрдирд╛рдПрдВ
git checkout -b production
рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
.it / рд╣реБрдХ / рдкреЛрд╕реНрдЯ-рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ред рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдЙрддреНрдкрд╛рджрди рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рджреВрд░рд╕реНрде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдФрд░ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдзрдХреНрдХрд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХреЗ рдорд░реНрдЬ рдХреЛ рдмреБрд▓рд╛рдПрдЧрд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╕реЗрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ:
chmod +x .git/hooks/post-receive
рдЖрдирдиреНрджрд┐рдд рд╣реЛрдХрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдЕрдм рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг
рдЧрд┐рдЯ рдкреБрд╢ рд╕рд░реНрд╡рд░ рдорд╛рд╕реНрдЯрд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЙрддреНрдкрд╛рджрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЪреНрдЫрд╛ рдЬреЛрдбрд╝
.Git / рд╣реБрдХ / рдкреЛрд╕реНрдЯ-рдкреНрд░рд╛рдкреНрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЖрдк рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛрдб рдХреА рдкреВрд░реНрдг рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛, рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдЖрджрд┐ ...
рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд╕реНрд░реЛрдд