рдЖрдкрдиреЗ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛: рдЖрдкрдХреЛ рдЕрднреА рдЕрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЖрдкрдХреА рдкрд┐рдЫрд▓реА рдХрдорд┐рдЯ рдореЗрдВ рдХреЛрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдереАред рдЗрд╕ рдЧрд▓рддреА рдХреЛ рдкрд▓рдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреБрдЫ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рд▓реЛрдХрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рд╕рдм рдХреБрдЫ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git push --force рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдЯреАрдордореЗрдЯреНрд╕ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдХрдорд┐рдЯреНрд╕ рдЧрд╛рдпрдм рд╣реИрдВ рдпрд╛ рдЖрдкрдХреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдмрд┐рд▓реНрдб рдлреЗрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ git push --force рдЕрд╕рд▓ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдХрдм рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдмрдЪрдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк Git рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╣рдорд╛рд░реЗ Introduction to Git рдХреЛрд░реНрд╕ рдХреЛ рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдк рд╡рд░реНрдЬрд╝рди рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦ рд╕рдХреЗрдВред рд╕рд╛рде рд╣реА, рдореБрдЭреЗ Git Cheat Sheet рдЙрдкрдпреЛрдЧреА рд╕рдВрджрд░реНрдн рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВтАФрдЗрд╕рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо Git рд╢рдмреНрджрд╛рд╡рд▓реА рдФрд░ рдХрдорд╛рдВрдбреНрд╕ рдПрдХ рдЬрдЧрд╣ рд╣реИрдВред
рдХрдм рдЖрдкрдХреЛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ git push --force рдХреА рдЬрд░реВрд░рдд рд╣реИ
рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдк рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рд▓реЛрдХрд▓ рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рд╛рдл рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдорд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд┐рд╕реНрдЯреНрд░реА рджреБрд░реБрд╕реНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк git rebase -i main рдЪрд▓рд╛рддреЗ рд╣реИрдВред рд▓реЛрдХрд▓ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкрд░рдлреЗрдХреНрдЯ рджрд┐рдЦрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг git push рд╕реЗ рдЕрдкрдиреА рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╕рдлрд▓рддрд╛ рд╕рдВрджреЗрд╢ рдХреА рдЬрдЧрд╣ Git рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдФрд░ рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдЖрдк рдЧрд▓рддреА рд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХрдорд┐рдЯ рдХрд░ рджреЗрдВтАФрдЬреИрд╕реЗ рдХреЛрдИ API рдХреБрдВрдЬреА рдпрд╛ рдкрд╛рд╕рд╡рд░реНрдбтАФрдФрд░ рдЙрд╕реЗ рд░рд┐рдореЛрдЯ рдкрд░ рдкреБрд╢ рдХрд░ рджреЗрдВред рд▓реЛрдХрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдХрд░ рдЖрдк рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реА рдХрдорд┐рдЯ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдкреБрд╢ рд░рд┐рдореЛрдЯ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╡рд╣реАрдВ рд░рд╣ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрджрд▓реЗ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИред
! [ rejected] main -> main ( non-fast-forward)
error: failed to push some refs to 'origin'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes ( e.g.,
hint: 'git pull ...' ) before pushing again.рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрд╣ тАЬnon-fast-forwardтАЭ рддреНрд░реБрдЯрд┐ Git рдХрд╛ рд╕реЗрдлреНрдЯреА рдиреЗрдЯ рд╣реИтАФрдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХрд┐ рдЖрдкрдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреА рдХреЛрдИ рдмрд╛рдд рд╕рд░реНрд╡рд░ рдкрд░ рдореМрдЬреВрдж рдХрдВрдЯреЗрдВрдЯ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреАред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git push --force рдЪрд▓рд╛рдирд╛ рдЖрдХрд░реНрд╖рдХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдВрдЪ рдкрд░ рдЕрдХреЗрд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпрд╣ рдареАрдХ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдЭрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рднреНрд░рдо рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдХрд╛ рдХрд╛рдо рдорд┐рдЯрд╛ рд╕рдХрддрд╛ рд╣реИред
git push --force рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ
рдЖрдо рддреМрд░ рдкрд░, Git рдХреЗрд╡рд▓ рддрднреА рдЖрдкрдХреЛ рдмрджрд▓рд╛рд╡ рдкреБрд╢ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреА рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рд░рд┐рдореЛрдЯ рдкрд░ рдореМрдЬреВрдж рд╕рдм рдХреБрдЫтАФрдЖрдкрдХреА рдирдИ рдХрдорд┐рдЯреНрд╕ рд╕рд╣рд┐рддтАФрд╢рд╛рдорд┐рд▓ рд╣реЛред рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЖрдк git rebase, squashing рдпрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдЬрд░рд┐рдП рдЕрдкрдиреА рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдкрд░ рдЖрдкрдХреА рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪ рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рдПрдЧреАред рддрдм рдЬрдм рдЖрдк рдирдИ рдХрдорд┐рдЯ рдкреБрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, Git рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдХрд╛рдо рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред
git push --force рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдкрд░ рдЖрдк Git рд╕реЗ рд╕реЗрдлреНрдЯреА рдЪреЗрдХ рдЫреЛрдбрд╝рдХрд░ рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдЕрдкрдиреА рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред┬а
рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
git push --force origin mainрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрд╣ рд░рд┐рдореЛрдЯ рдХреА main рдмреНрд░рд╛рдВрдЪ рдХреЛ рдЖрдкрдХреА рд▓реЛрдХрд▓ main рд╕реЗ рдореИрдЪ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЗ рд▓реЛрдХрд▓ рдореЗрдВ рди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрдорд┐рдЯреНрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред┬а
рдЕрдм рдЕрдкрдиреА Git рдмреНрд░рд╛рдВрдЪ рдХреЛ рдЙрд╕ рд╕рд╛рдЭрд╛ рдХрд┐рддрд╛рдм рдХреЗ рдПрдХ рдЕрдзреНрдпрд╛рдп рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВ рдЬрд┐рд╕реЗ рдЖрдкрдХреА рдЯреАрдо рд╕рд╛рде рдореЗрдВ рд▓рд┐рдЦ рд░рд╣реА рд╣реИред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреБрд╢ рдЕрдзреНрдпрд╛рдп рдХреЗ рдЕрдВрдд рдореЗрдВ рдирдП рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдЬреЛрдбрд╝рдиреЗ рдЬреИрд╕рд╛ рд╣реИред рдЬрдмрдХрд┐ git push --force рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИтАФрдпрд╣ рдореМрдЬреВрджрд╛ рдЕрдзреНрдпрд╛рдп рдХреЛ рдлрд╛рдбрд╝рдХрд░ рдЖрдкрдХреА рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред┬а
git push --force рдХрд╛ рдЬреЛрдЦрд┐рдо рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рдЕрдкрдиреА рдмрджрд▓рд╛рд╡ рдЙрди рдХрдорд┐рдЯреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд┐рдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдЕрднреА рдорд┐рдЯрд╛ рджрд┐рдпрд╛, рддреЛ рдЙрдирдХрд╛ рдХрд╛рдо рдЦреЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рд╕реЗрдХреНрд╢рди --force рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдмрд░рддрдиреЗ рд╡рд╛рд▓реА рд╕рд╛рд╡рдзрд╛рдирд┐рдпреЛрдВ рдкрд░ рд╣реИред
рдпрд╣ рдЖрдкрдХреА рдЯреАрдо рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдмрд┐рдЧрд╛рдбрд╝ рд╕рдХрддрд╛ рд╣реИ
рдпрджрд┐ рдЖрдк main рдпрд╛ develop рдЬреИрд╕реА рд╕рд╛рдЭрд╛ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдЬрдмрд░рди рдкреБрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧрд╛:
рджреВрд╕рд░реЛрдВ рдХреА рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪреЗрдВ рд╕рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ: рдпрджрд┐ рдЖрдкрдХреЗ рдЯреАрдордореЗрдЯреНрд╕ рдиреЗ рд╡реЗ рдкреБрд░рд╛рдиреЗ рдХрдорд┐рдЯреНрд╕ рдкреБрд▓ рдХрд░ рд▓рд┐рдП рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдЕрдм рд░рд┐рдореЛрдЯ рд╕реЗ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЙрдирдХрд╛ рд▓реЛрдХрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдЕрдм рд╕рд░реНрд╡рд░ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдПрдЧрд╛ред рдЙрдирдХреА рдмреНрд░рд╛рдВрдЪреЗрдВ рдЙрди рдХрдорд┐рдЯреНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдВрдЧреА рдЬреЛ тАЬрдЧрд╛рдпрдмтАЭ рд╣реЛ рдЧрдП рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рднреНрд░рдо рдкреИрджрд╛ рд╣реЛрдЧрд╛ рдФрд░┬а
рдкреБрд▓ рдХрд░рдиреЗ рдкрд░ рдЙрд▓рдЭреЗ рд╣реБрдП рдорд░реНрдЬ рдпрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ: рдЬрдм рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЖрдкрдХреЗ рдлреЛрд░реНрд╕-рдкреБрд╢ рдХреЗ рдмрд╛рдж git pull рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ Git рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдЙрдирдХреА рд▓реЛрдХрд▓ рдХрдорд┐рдЯ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдорд┐рд▓рд╛рдП, рдпрд╣ рд╕рдордЭ рдирд╣реАрдВ рдЖрддрд╛ред рдЗрд╕рд╕реЗ рдЕрдХреНрд╕рд░ рдЕрдЬреАрдм рдорд░реНрдЬ рдХрдорд┐рдЯреНрд╕, рдЙрд▓рдЭрд╛рдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рдпрд╛ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдмрдирддреА рд╣реИрдВ рдЬрд╣рд╛рдВ рдЯреАрдордореЗрдЯреНрд╕ рдХреЛ git fetch, git reset рд╕реЗ рд▓реЗрдХрд░ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреНрд▓реЛрди рдХрд░рдиреЗ рддрдХ рдореИрдиреНрдпреБрдЕрд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреНрд╕ рдлреЗрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ: рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреНрд╕ рдЕрдХреНрд╕рд░ рд╕реБрд╕рдВрдЧрдд рдХрдорд┐рдЯ рд╣реИрд╢реЗрдЬрд╝ рдФрд░ рд▓рд┐рдиреЗрдпрд░ рд╣рд┐рд╕реНрдЯреНрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрддреА рд╣реИрдВред рдПрдХ рдлреЛрд░реНрд╕ рдкреБрд╢ рдЙрдирд╕реЗ рдЯреЗрд╕реНрдЯ рдлреЗрд▓ рдХрд░рд╡рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЧрд▓рдд рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдкреНрд▓реЙрдп рдХрд░рд╡рд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдкреБрд░рд╛рдиреЗ рдХрдорд┐рдЯреНрд╕ рдкрд░ рд░рд┐рдмрд┐рд▓реНрдб рдХрд░рддреЗ рд╕рдордп рдХреНрд░реИрд╢ рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░рд╛ CI/CD for Machine Learning рдХреЛрд░реНрд╕ рджреЗрдЦреЗрдВ рддрд╛рдХрд┐ рдЖрдк CI/CD рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдмрдирд╛рдирд╛ рд╕рдордЭ рд╕рдХреЗрдВред рдореИрдВ рд╣рдорд╛рд░реЗ Introduction to Data Versioning with DVC рдХреЛрд░реНрд╕ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдбреЗрдЯрд╛ рд╡рд░реНрдЬрд╝рдирд┐рдВрдЧ рдФрд░ рдХреЛрдб рд╡рд░реНрдЬрд╝рдирд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╕реАрдЦреЗрдВрдЧреЗред
рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕рдордЭреЗрдВ: рдЖрдк рдФрд░ рдЖрдкрдХрд╛ рдПрдХ рдЯреАрдордореЗрдЯ feature рдмреНрд░рд╛рдВрдЪ рдкрд░ рд╣реИрдВ ред рдЖрдк рдЕрдкрдиреА рд▓реЛрдХрд▓ рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ git push --force рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдХреБрдЫ рдорд┐рдирдЯ рдмрд╛рдж, рдЖрдкрдХрд╛ рдЯреАрдордореЗрдЯ рдЕрдкрдиреЗ рдмрджрд▓рд╛рд╡ рдкреБрд╢ рдХрд░рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ Git рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрддреА рд╣реИрдВред рдЬрдм рд╡реЗ рдкреБрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдФрд░ рдмрд┐рдЧрдбрд╝реА рд╣реБрдИ рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рдорд┐рд▓рддреА рд╣реИред рдЗрд╕ рдмреАрдЪ, рдЖрдкрдХреА CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдорд┐рд╕рд┐рдВрдЧ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдХрд╛рд░рдг рдлреЗрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЕрдм, рдЖрдкрдХрд╛ рдЯреАрдордореЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХреА рдЙрд▓рдЭрди рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рд╕рдордп рдЧрдВрд╡рд╛рддрд╛ рд╣реИ рдФрд░ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдореЗрдВ рджреЗрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдПрдХ рд╣реА рдлреЛрд░реНрд╕ рдкреБрд╢ рдпрд╣ рд╕рдм рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬреНрдпрд╛рджрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк: git push --force-with-lease
рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ git push --force-with-lease рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВред рдпрд╣ рдХрдорд╛рдВрдб рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдкреБрд╢ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕реЗрдлреНрдЯреА рдЪреЗрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдХрдорд┐рдЯреНрд╕ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗред
git push --force-with-lease origin mainрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
--force-with-lease рдХреЛ тАЬрдХреВрджрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрдЦ рд▓реЗрдирд╛ рдХрд┐ рд░рд╛рд╕реНрддрд╛ рд╕рд╛рдл рд╣реИ рдпрд╛ рдирд╣реАрдВтАЭ рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВред рдХреБрдЫ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдФрд░ рдиреЗ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдмрджрд▓рд╛рд╡ рди рдХрд┐рдП рд╣реЛрдВред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рджреЗрдЦрд╛ рдерд╛, рддреЛ рдЖрдкрдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕реА рдирдИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдерд╛, рддреЛ Git рдЖрдкрдХреЛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реНрдерд┐рддрд┐ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЛ рдХрд╣рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдпрд╣ рдХрдорд╛рдВрдб рд╣рдореЗрд╢рд╛ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдЕрдирдЬрд╛рдиреЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред
рдЧрд▓рдд рдлреЛрд░реНрд╕ рдкреБрд╢ рд╕реЗ рдХреИрд╕реЗ рдЙрдмрд░реЗрдВ
рдпрджрд┐ рдХреБрдЫ рдХрдорд┐рдЯреНрд╕ рдЦреЛ рдЬрд╛рдПрдВ, рддреЛ рдШрдмрд░рд╛рдПрдВ рдирд╣реАрдВтАФрдЖрдк рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рднреА рд░рд┐рдХрд╡рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Git рд╡рд░реНрддрдорд╛рди рдХрдорд┐рдЯ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ, рдЬрд┐рд╕рдореЗрдВ рд░реАрд░рд╛рдЗрдЯреНрд╕ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдХрд╛ рд╣рдореЗрд╢рд╛ рд░рд┐рдХреЙрд░реНрдб рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ reflog рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред
рдЦреЛрдИ рд╣реБрдИ рдХрдорд┐рдЯреНрд╕ рдРрд╕реЗ рд░рд┐рдХрд╡рд░ рдХрд░реЗрдВ:
рдЪрд░рдг 1: рдЦреЛрдИ рдХрдорд┐рдЯреНрд╕ рдвреВрдВрдврдиреЗ рдХреЗ рд▓рд┐рдП git reflog рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЕрдкрдиреА рдмреНрд░рд╛рдВрдЪ рд╣рд┐рд╕реНрдЯреНрд░реА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП git reflog рдЪрд▓рд╛рдПрдВред
git reflogрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЖрдкрдХреЛ рдЕрдкрдиреА рдХрдорд┐рдЯреНрд╕ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИрдВ:
abc1234 HEAD@{ 1 } : push: force push
def5678 HEAD@{ 2 } : commit: add new featureрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЪрд░рдг 2: рдЦреЛрдИ рд╣реБрдИ рдХрдорд┐рдЯ рдмрд╣рд╛рд▓ рдХрд░реЗрдВ
рдЬрд┐рд╕ рдХрдорд┐рдЯ рд╣реИрд╢ рдХреЛ рдЖрдк рд░рд┐рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдкрд╣рдЪрд╛рди рд▓реЗрдиреЗ рдкрд░, рдиреАрдЪреЗ рджрд┐рдпрд╛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдХрдорд┐рдЯ рдкрд░ рдЬрд╛рдПрдВред
git checkout def5678рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЪрд░рдг 3: рдирдИ рдмреНрд░рд╛рдВрдЪ рдмрдирд╛рдПрдВ
рдлрд╛рдЗрд▓реЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд░рд┐рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ git рдмреНрд░рд╛рдВрдЪ рдмрдирд╛рдПрдВред
git checkout -b recovery-branchрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЪрд░рдг 4: рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдмрд╣рд╛рд▓ рдХрд░реЗрдВ
рдЕрдм рд░рд┐рдХрд╡рд░ рдХреА рдЧрдИ рдХрдорд┐рдЯреНрд╕ рдХреЛ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдкреБрд╢ рдХрд░реЗрдВ:
git push origin recovery-branchрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ reflog рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рд▓реЛрдХрд▓ рдорд╢реАрдиреЛрдВ рдкрд░ рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдХрд┐рд╕реА рднреА рдЯреАрдордореЗрдЯ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд▓реЛрдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛, рддреЛ рдЖрдк рдЦреЛрдИ рдХрдорд┐рдЯреНрд╕ рд░рд┐рдХрд╡рд░ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
Git рдореЗрдВ рд╕рд╣рдпреЛрдЧ рдФрд░ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╣рдорд╛рд░реЗ Intermediate Git рдХреЛрд░реНрд╕ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВред
git push --force рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдВ
рдЧрд▓рддрд┐рдпрд╛рдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдШрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпреЗ рдХреБрдЫ рдЕрдЪреНрдЫреА рдЖрджрддреЗрдВ рдЕрдкрдирд╛рдПрдВ:
--force рдХреА рдЬрдЧрд╣ --force-with-lease рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ :┬а рдпрд╣ рддрд░реАрдХрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИтАФрдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЖрдЦрд┐рд░реА рдлрд╝реЗрдЪ рдХреЗ рдмрд╛рдж рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдмрджрд▓реА рддреЛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд╕реЗ рдЖрдкрдХреЗ рдЯреАрдордореЗрдЯреНрд╕ рдХреЛ рдЕрдирдЬрд╛рдиреЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╕реЗ рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред
рд╕рд╛рдЭрд╛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдкрд░ рдлреЛрд░реНрд╕-рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ: main, master, develop рдпрд╛ release рдЬреИрд╕реА рд╕рд╛рдЭрд╛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдкрд░ рдХрднреА рдлреЛрд░реНрд╕-рдкреБрд╢ рди рдХрд░реЗрдВред рдмрд╛рдзрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЕрдкрдиреА рдлреАрдЪрд░ рдмреНрд░рд╛рдВрдЪреЛрдВ рдкрд░, рдЬрд╣рд╛рдВ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдЖрдк рд╣реА рд╣реЛрдВ, рдлреЛрд░реНрд╕ рдкреБрд╢ рдХрд░реЗрдВред
рдлреЛрд░реНрд╕-рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯреАрдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ: рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕рд╛рдЭрд╛ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдлреЛрд░реНрд╕-рдкреБрд╢ рдХрд░рдирд╛ рд╣реА рдкрдбрд╝реЗ, рддреЛ рдЕрдкрдиреА рдЯреАрдо рдХреЛ рдкрд╣рд▓реЗ рдмрддрд╛ рджреЗрдВред рдЗрд╕рд╕реЗ рд╡реЗ рдЕрдкрдирд╛ рдХрд╛рдо рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХреЗрдВрдЧреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред
рдкреНрд░реЛрдЯреЗрдХреНрдЯреЗрдб рдмреНрд░рд╛рдВрдЪреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: GitHub, GitLab рдФрд░ Bitbucket рдЬреИрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдореНрд╕ рдкрд░ рдЖрдк рдЕрдкрдиреА рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЗрдХреНрд╢рди рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯ рдПрдбрд┐рдЯреНрд╕ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд░рд╛рдВрдЪреЛрдВ рдкрд░ рдЕрдирдЬрд╛рдиреЗ рдлреЛрд░реНрд╕ рдкреБрд╢ рд╕реЗ рдмрдЪрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдирд┐рдЬреА рд░рд┐рдкреЛрдЬрд╝ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ Introduction to GitHub Concepts рдХреЛрд░реНрд╕ рджреЗрдЦреЗтАФGitHub рдкрд░ рд╕рд╣рдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреБрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдПред
рдирд┐рд╖реНрдХрд░реНрд╖
git push --force рдЖрдкрдХрд╛ рд░рд┐рдкреЛ рдЗрддрд┐рд╣рд╛рд╕ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдпреЛрдЧреА рддрд░реАрдХрд╛ рджреЗрддрд╛ рд╣реИтАФрдЪрд╛рд╣реЗ рдЖрдк рдХрдорд┐рдЯреНрд╕ рд╕рд╛рдл рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ рдпрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдирд╛ред рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдкрдХреА рдЯреАрдо рдХрд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рди рдЯреВрдЯреЗред
рдЬрд╣рд╛рдВ рднреА рд╕рдВрднрд╡ рд╣реЛ, --force-with-lease рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдЖрдкрдХреЛ рдЬреНрдпрд╛рджрд╛ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИ рдмрд┐рдирд╛ рджреВрд╕рд░реЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдбрд╛рд▓реЗред рдереЛрдбрд╝реА рд╕рд╛рд╡рдзрд╛рдиреА рдФрд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд╕рд╛рде, рдЖрдк рдЕрдкрдиреА Git рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рд╛рдл рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рдиреА рдЦрдбрд╝реА рдХрд┐рдПред
Git рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ Git Fundamentals рдФрд░ GitHub Foundations рд╕реНрдХрд┐рд▓ рдЯреНрд░реИрдХреНрд╕ рджреЗрдЦреЗрдВред
рдЖрдкрдиреЗ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛: рдЖрдкрдХреЛ рдЕрднреА рдЕрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЖрдкрдХреА рдкрд┐рдЫрд▓реА рдХрдорд┐рдЯ рдореЗрдВ рдХреЛрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдереАред рдЗрд╕ рдЧрд▓рддреА рдХреЛ рдкрд▓рдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреБрдЫ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рд▓реЛрдХрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рд╕рдм рдХреБрдЫ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
git push --forceрдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдЯреАрдордореЗрдЯреНрд╕ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдХрдорд┐рдЯреНрд╕ рдЧрд╛рдпрдм рд╣реИрдВ рдпрд╛ рдЖрдкрдХреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдмрд┐рд▓реНрдб рдлреЗрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВредрдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐
git push --forceрдЕрд╕рд▓ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдХрдм рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдмрдЪрдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк Git рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╣рдорд╛рд░реЗ Introduction to Git рдХреЛрд░реНрд╕ рдХреЛ рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдк рд╡рд░реНрдЬрд╝рди рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦ рд╕рдХреЗрдВред рд╕рд╛рде рд╣реА, рдореБрдЭреЗ Git Cheat Sheet рдЙрдкрдпреЛрдЧреА рд╕рдВрджрд░реНрдн рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВтАФрдЗрд╕рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо Git рд╢рдмреНрджрд╛рд╡рд▓реА рдФрд░ рдХрдорд╛рдВрдбреНрд╕ рдПрдХ рдЬрдЧрд╣ рд╣реИрдВредрдХрдм рдЖрдкрдХреЛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ git push --force рдХреА рдЬрд░реВрд░рдд рд╣реИ
рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдк рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рд▓реЛрдХрд▓ рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рд╛рдл рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдорд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд┐рд╕реНрдЯреНрд░реА рджреБрд░реБрд╕реНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк
git rebase -i mainрдЪрд▓рд╛рддреЗ рд╣реИрдВред рд▓реЛрдХрд▓ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкрд░рдлреЗрдХреНрдЯ рджрд┐рдЦрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг git push рд╕реЗ рдЕрдкрдиреА рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╕рдлрд▓рддрд╛ рд╕рдВрджреЗрд╢ рдХреА рдЬрдЧрд╣ Git рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛ рджреЗрддрд╛ рд╣реИредрдПрдХ рдФрд░ рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдЖрдк рдЧрд▓рддреА рд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХрдорд┐рдЯ рдХрд░ рджреЗрдВтАФрдЬреИрд╕реЗ рдХреЛрдИ API рдХреБрдВрдЬреА рдпрд╛ рдкрд╛рд╕рд╡рд░реНрдбтАФрдФрд░ рдЙрд╕реЗ рд░рд┐рдореЛрдЯ рдкрд░ рдкреБрд╢ рдХрд░ рджреЗрдВред рд▓реЛрдХрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдХрд░ рдЖрдк рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реА рдХрдорд┐рдЯ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдкреБрд╢ рд░рд┐рдореЛрдЯ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╡рд╣реАрдВ рд░рд╣ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрджрд▓реЗ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИред
рдпрд╣ тАЬnon-fast-forwardтАЭ рддреНрд░реБрдЯрд┐ Git рдХрд╛ рд╕реЗрдлреНрдЯреА рдиреЗрдЯ рд╣реИтАФрдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХрд┐ рдЖрдкрдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреА рдХреЛрдИ рдмрд╛рдд рд╕рд░реНрд╡рд░ рдкрд░ рдореМрдЬреВрдж рдХрдВрдЯреЗрдВрдЯ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреАред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
git push --forceрдЪрд▓рд╛рдирд╛ рдЖрдХрд░реНрд╖рдХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИредрдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдВрдЪ рдкрд░ рдЕрдХреЗрд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпрд╣ рдареАрдХ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдЭрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рднреНрд░рдо рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдХрд╛ рдХрд╛рдо рдорд┐рдЯрд╛ рд╕рдХрддрд╛ рд╣реИред
git push --force рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ
рдЖрдо рддреМрд░ рдкрд░, Git рдХреЗрд╡рд▓ рддрднреА рдЖрдкрдХреЛ рдмрджрд▓рд╛рд╡ рдкреБрд╢ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреА рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рд░рд┐рдореЛрдЯ рдкрд░ рдореМрдЬреВрдж рд╕рдм рдХреБрдЫтАФрдЖрдкрдХреА рдирдИ рдХрдорд┐рдЯреНрд╕ рд╕рд╣рд┐рддтАФрд╢рд╛рдорд┐рд▓ рд╣реЛред рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЖрдк
git rebase, squashing рдпрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдЬрд░рд┐рдП рдЕрдкрдиреА рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдкрд░ рдЖрдкрдХреА рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪ рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рдПрдЧреАред рддрдм рдЬрдм рдЖрдк рдирдИ рдХрдорд┐рдЯ рдкреБрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, Git рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдХрд╛рдо рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИредgit push --forceрдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдкрд░ рдЖрдк Git рд╕реЗ рд╕реЗрдлреНрдЯреА рдЪреЗрдХ рдЫреЛрдбрд╝рдХрд░ рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдЕрдкрдиреА рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред┬ардпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдпрд╣ рд░рд┐рдореЛрдЯ рдХреА main рдмреНрд░рд╛рдВрдЪ рдХреЛ рдЖрдкрдХреА рд▓реЛрдХрд▓ main рд╕реЗ рдореИрдЪ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЗ рд▓реЛрдХрд▓ рдореЗрдВ рди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрдорд┐рдЯреНрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред┬а
рдЕрдм рдЕрдкрдиреА Git рдмреНрд░рд╛рдВрдЪ рдХреЛ рдЙрд╕ рд╕рд╛рдЭрд╛ рдХрд┐рддрд╛рдм рдХреЗ рдПрдХ рдЕрдзреНрдпрд╛рдп рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВ рдЬрд┐рд╕реЗ рдЖрдкрдХреА рдЯреАрдо рд╕рд╛рде рдореЗрдВ рд▓рд┐рдЦ рд░рд╣реА рд╣реИред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреБрд╢ рдЕрдзреНрдпрд╛рдп рдХреЗ рдЕрдВрдд рдореЗрдВ рдирдП рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдЬреЛрдбрд╝рдиреЗ рдЬреИрд╕рд╛ рд╣реИред рдЬрдмрдХрд┐
git push --forceрдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИтАФрдпрд╣ рдореМрдЬреВрджрд╛ рдЕрдзреНрдпрд╛рдп рдХреЛ рдлрд╛рдбрд╝рдХрд░ рдЖрдкрдХреА рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред┬аgit push --forceрдХрд╛ рдЬреЛрдЦрд┐рдо рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рдЕрдкрдиреА рдмрджрд▓рд╛рд╡ рдЙрди рдХрдорд┐рдЯреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд┐рдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдЕрднреА рдорд┐рдЯрд╛ рджрд┐рдпрд╛, рддреЛ рдЙрдирдХрд╛ рдХрд╛рдо рдЦреЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рд╕реЗрдХреНрд╢рди--forceрдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдмрд░рддрдиреЗ рд╡рд╛рд▓реА рд╕рд╛рд╡рдзрд╛рдирд┐рдпреЛрдВ рдкрд░ рд╣реИредрдпрд╣ рдЖрдкрдХреА рдЯреАрдо рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдмрд┐рдЧрд╛рдбрд╝ рд╕рдХрддрд╛ рд╣реИ
рдпрджрд┐ рдЖрдк
mainрдпрд╛developрдЬреИрд╕реА рд╕рд╛рдЭрд╛ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдЬрдмрд░рди рдкреБрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧрд╛:рд╣рдорд╛рд░рд╛ CI/CD for Machine Learning рдХреЛрд░реНрд╕ рджреЗрдЦреЗрдВ рддрд╛рдХрд┐ рдЖрдк CI/CD рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдмрдирд╛рдирд╛ рд╕рдордЭ рд╕рдХреЗрдВред рдореИрдВ рд╣рдорд╛рд░реЗ Introduction to Data Versioning with DVC рдХреЛрд░реНрд╕ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдбреЗрдЯрд╛ рд╡рд░реНрдЬрд╝рдирд┐рдВрдЧ рдФрд░ рдХреЛрдб рд╡рд░реНрдЬрд╝рдирд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╕реАрдЦреЗрдВрдЧреЗред
рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕рдордЭреЗрдВ: рдЖрдк рдФрд░ рдЖрдкрдХрд╛ рдПрдХ рдЯреАрдордореЗрдЯ
featureрдмреНрд░рд╛рдВрдЪ рдкрд░ рд╣реИрдВред рдЖрдк рдЕрдкрдиреА рд▓реЛрдХрд▓ рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░git push --forceрдЪрд▓рд╛рддреЗ рд╣реИрдВред рдХреБрдЫ рдорд┐рдирдЯ рдмрд╛рдж, рдЖрдкрдХрд╛ рдЯреАрдордореЗрдЯ рдЕрдкрдиреЗ рдмрджрд▓рд╛рд╡ рдкреБрд╢ рдХрд░рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ Git рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрддреА рд╣реИрдВред рдЬрдм рд╡реЗ рдкреБрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдФрд░ рдмрд┐рдЧрдбрд╝реА рд╣реБрдИ рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рдорд┐рд▓рддреА рд╣реИред рдЗрд╕ рдмреАрдЪ, рдЖрдкрдХреА CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдорд┐рд╕рд┐рдВрдЧ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдХрд╛рд░рдг рдлреЗрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЕрдм, рдЖрдкрдХрд╛ рдЯреАрдордореЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХреА рдЙрд▓рдЭрди рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рд╕рдордп рдЧрдВрд╡рд╛рддрд╛ рд╣реИ рдФрд░ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдореЗрдВ рджреЗрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИредрдПрдХ рд╣реА рдлреЛрд░реНрд╕ рдкреБрд╢ рдпрд╣ рд╕рдм рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬреНрдпрд╛рджрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк: git push --force-with-lease
рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ
git push --force-with-leaseрдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВред рдпрд╣ рдХрдорд╛рдВрдб рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдкреБрд╢ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕реЗрдлреНрдЯреА рдЪреЗрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдХрдорд┐рдЯреНрд╕ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗред--force-with-leaseрдХреЛ тАЬрдХреВрджрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрдЦ рд▓реЗрдирд╛ рдХрд┐ рд░рд╛рд╕реНрддрд╛ рд╕рд╛рдл рд╣реИ рдпрд╛ рдирд╣реАрдВтАЭ рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВред рдХреБрдЫ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдФрд░ рдиреЗ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдмрджрд▓рд╛рд╡ рди рдХрд┐рдП рд╣реЛрдВред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рджреЗрдЦрд╛ рдерд╛, рддреЛ рдЖрдкрдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕реА рдирдИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдерд╛, рддреЛ Git рдЖрдкрдХреЛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реНрдерд┐рддрд┐ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЛ рдХрд╣рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдпрд╣ рдХрдорд╛рдВрдб рд╣рдореЗрд╢рд╛ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдЕрдирдЬрд╛рдиреЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИредрдЧрд▓рдд рдлреЛрд░реНрд╕ рдкреБрд╢ рд╕реЗ рдХреИрд╕реЗ рдЙрдмрд░реЗрдВ
рдпрджрд┐ рдХреБрдЫ рдХрдорд┐рдЯреНрд╕ рдЦреЛ рдЬрд╛рдПрдВ, рддреЛ рдШрдмрд░рд╛рдПрдВ рдирд╣реАрдВтАФрдЖрдк рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рднреА рд░рд┐рдХрд╡рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Git рд╡рд░реНрддрдорд╛рди рдХрдорд┐рдЯ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ, рдЬрд┐рд╕рдореЗрдВ рд░реАрд░рд╛рдЗрдЯреНрд╕ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдХрд╛ рд╣рдореЗрд╢рд╛ рд░рд┐рдХреЙрд░реНрдб рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ reflog рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред
рдЦреЛрдИ рд╣реБрдИ рдХрдорд┐рдЯреНрд╕ рдРрд╕реЗ рд░рд┐рдХрд╡рд░ рдХрд░реЗрдВ:
рдЪрд░рдг 1: рдЦреЛрдИ рдХрдорд┐рдЯреНрд╕ рдвреВрдВрдврдиреЗ рдХреЗ рд▓рд┐рдП git reflog рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЕрдкрдиреА рдмреНрд░рд╛рдВрдЪ рд╣рд┐рд╕реНрдЯреНрд░реА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП
git reflogрдЪрд▓рд╛рдПрдВредрдЖрдкрдХреЛ рдЕрдкрдиреА рдХрдорд┐рдЯреНрд╕ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИрдВ:
рдЪрд░рдг 2: рдЦреЛрдИ рд╣реБрдИ рдХрдорд┐рдЯ рдмрд╣рд╛рд▓ рдХрд░реЗрдВ
рдЬрд┐рд╕ рдХрдорд┐рдЯ рд╣реИрд╢ рдХреЛ рдЖрдк рд░рд┐рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдкрд╣рдЪрд╛рди рд▓реЗрдиреЗ рдкрд░, рдиреАрдЪреЗ рджрд┐рдпрд╛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдХрдорд┐рдЯ рдкрд░ рдЬрд╛рдПрдВред
рдЪрд░рдг 3: рдирдИ рдмреНрд░рд╛рдВрдЪ рдмрдирд╛рдПрдВ
рдлрд╛рдЗрд▓реЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд░рд┐рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ git рдмреНрд░рд╛рдВрдЪ рдмрдирд╛рдПрдВред
рдЪрд░рдг 4: рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдмрд╣рд╛рд▓ рдХрд░реЗрдВ
рдЕрдм рд░рд┐рдХрд╡рд░ рдХреА рдЧрдИ рдХрдорд┐рдЯреНрд╕ рдХреЛ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдкреБрд╢ рдХрд░реЗрдВ:
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ reflog рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рд▓реЛрдХрд▓ рдорд╢реАрдиреЛрдВ рдкрд░ рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдХрд┐рд╕реА рднреА рдЯреАрдордореЗрдЯ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд▓реЛрдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛, рддреЛ рдЖрдк рдЦреЛрдИ рдХрдорд┐рдЯреНрд╕ рд░рд┐рдХрд╡рд░ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
Git рдореЗрдВ рд╕рд╣рдпреЛрдЧ рдФрд░ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╣рдорд╛рд░реЗ Intermediate Git рдХреЛрд░реНрд╕ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВред
git push --force рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдВ
рдЧрд▓рддрд┐рдпрд╛рдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдШрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпреЗ рдХреБрдЫ рдЕрдЪреНрдЫреА рдЖрджрддреЗрдВ рдЕрдкрдирд╛рдПрдВ:
--force рдХреА рдЬрдЧрд╣ --force-with-lease рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ:┬а рдпрд╣ рддрд░реАрдХрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИтАФрдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЖрдЦрд┐рд░реА рдлрд╝реЗрдЪ рдХреЗ рдмрд╛рдж рд░рд┐рдореЛрдЯ рдмреНрд░рд╛рдВрдЪ рдмрджрд▓реА рддреЛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд╕реЗ рдЖрдкрдХреЗ рдЯреАрдордореЗрдЯреНрд╕ рдХреЛ рдЕрдирдЬрд╛рдиреЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╕реЗ рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред
рд╕рд╛рдЭрд╛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдкрд░ рдлреЛрд░реНрд╕-рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ:
main,master,developрдпрд╛releaseрдЬреИрд╕реА рд╕рд╛рдЭрд╛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдкрд░ рдХрднреА рдлреЛрд░реНрд╕-рдкреБрд╢ рди рдХрд░реЗрдВред рдмрд╛рдзрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЕрдкрдиреА рдлреАрдЪрд░ рдмреНрд░рд╛рдВрдЪреЛрдВ рдкрд░, рдЬрд╣рд╛рдВ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдЖрдк рд╣реА рд╣реЛрдВ, рдлреЛрд░реНрд╕ рдкреБрд╢ рдХрд░реЗрдВредрдлреЛрд░реНрд╕-рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯреАрдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ: рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕рд╛рдЭрд╛ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдлреЛрд░реНрд╕-рдкреБрд╢ рдХрд░рдирд╛ рд╣реА рдкрдбрд╝реЗ, рддреЛ рдЕрдкрдиреА рдЯреАрдо рдХреЛ рдкрд╣рд▓реЗ рдмрддрд╛ рджреЗрдВред рдЗрд╕рд╕реЗ рд╡реЗ рдЕрдкрдирд╛ рдХрд╛рдо рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХреЗрдВрдЧреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред
рдкреНрд░реЛрдЯреЗрдХреНрдЯреЗрдб рдмреНрд░рд╛рдВрдЪреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: GitHub, GitLab рдФрд░ Bitbucket рдЬреИрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдореНрд╕ рдкрд░ рдЖрдк рдЕрдкрдиреА рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЗрдХреНрд╢рди рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯ рдПрдбрд┐рдЯреНрд╕ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреНрд░рд╛рдВрдЪреЛрдВ рдкрд░ рдЕрдирдЬрд╛рдиреЗ рдлреЛрд░реНрд╕ рдкреБрд╢ рд╕реЗ рдмрдЪрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдирд┐рдЬреА рд░рд┐рдкреЛрдЬрд╝ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ Introduction to GitHub Concepts рдХреЛрд░реНрд╕ рджреЗрдЦреЗтАФGitHub рдкрд░ рд╕рд╣рдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреБрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдПред
рдирд┐рд╖реНрдХрд░реНрд╖
git push --forceрдЖрдкрдХрд╛ рд░рд┐рдкреЛ рдЗрддрд┐рд╣рд╛рд╕ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдпреЛрдЧреА рддрд░реАрдХрд╛ рджреЗрддрд╛ рд╣реИтАФрдЪрд╛рд╣реЗ рдЖрдк рдХрдорд┐рдЯреНрд╕ рд╕рд╛рдл рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ рдпрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдирд╛ред рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдкрдХреА рдЯреАрдо рдХрд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рди рдЯреВрдЯреЗредрдЬрд╣рд╛рдВ рднреА рд╕рдВрднрд╡ рд╣реЛ,
--force-with-leaseрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдЖрдкрдХреЛ рдЬреНрдпрд╛рджрд╛ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИ рдмрд┐рдирд╛ рджреВрд╕рд░реЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдбрд╛рд▓реЗред рдереЛрдбрд╝реА рд╕рд╛рд╡рдзрд╛рдиреА рдФрд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд╕рд╛рде, рдЖрдк рдЕрдкрдиреА Git рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рд╛рдл рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рдиреА рдЦрдбрд╝реА рдХрд┐рдПредGit рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ Git Fundamentals рдФрд░ GitHub Foundations рд╕реНрдХрд┐рд▓ рдЯреНрд░реИрдХреНрд╕ рджреЗрдЦреЗрдВред