рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореЗрд░реЗ рд╕рд╣рдХрд░реНрдореА рдЧрд┐рдЯ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рд▓рдЧреЗ рд╣реИрдВред рдФрд░ рдЙрдирдХрд╛ рдПрдХ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╢реЛрдзрди рдореЗрдВ рд╡рд╛рдкрд╕ рдХреИрд╕реЗ рд▓рд╛рдпрд╛ рдЬрд╛рдПред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рд╕рдордЭ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╕рдордЭ рдХреЗ рдмрд┐рдирд╛ рдЧрд┐рдЯ рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдбрд╝ рдкреНрдпрд╛рд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ
git checkout
рдФрд░
git reset
рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ
--soft
рдФрд░
--hard
ред
рддреЛ, рдЪрд▓реЛ git рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЯрд╛рдЗрдо рдорд╢реАрди рдкрд░ рдПрдХ рд▓рдШреБ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдХрд╣рд╛рдиреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:

рдпрд╣рд╛рдБ, рдордВрдбрд▓рд┐рдпрд╛рдВ рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИрдВред рдХрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдирд╛ рдирдпрд╛ рд╣реИ, рдЙрддрдирд╛ рд╣реА рдирдпрд╛ рд╣реИред 6e04e рдХреЗ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдорд┐рдЯ .. рдкрд╣рд▓реА рдХрдорд┐рдЯ рд╣реИред рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬрд┐рд╕реЗ рдиреМрд╕рд┐рдЦрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рдХрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд "рдЙрдкрдирд╛рдо"ред рдЙрдирдХрд╛ рдЕрдВрдзреЗрд░рд╛ рдЕрдВрдзреЗрд░рд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
HEAD, рдорд╛рд╕реНрдЯрд░, FETCH_HEAD, ORIG_HEAD , рдЖрджрд┐ред рдпрд╣ рдореИрдВрдиреЗ рдорд╛рдирдХ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рдПрдХ рдЕрдирд╛рдЬ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ред рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдЖрдЧреЗред
рдЖрдЗрдП рд╣рдо рджреЛ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ:
рдорд╛рд╕реНрдЯрд░ рдФрд░
рд╣реЗрдб ред
рдорд╛рд╕реНрдЯрд░ рдПрдХ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреА рдкреНрд░рддрд┐рдмрджреНрдз рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ
рдорд╛рд╕реНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ рд╢рд╛рдЦрд╛ рддрдм рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЖрд░рдореНрднрд┐рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
HEAD рдорд╛рд╕реНрдЯрд░ рдкреЙрдЗрдВрдЯрд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ (рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрдврд╝реЗрдВ)ред рдкрд╣рд▓реА рдХрдореЗрдЯреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж,
HEAD рдФрд░ рдЙрд╕реА рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП
рдорд╛рд╕реНрдЯрд░ рдкреЙрдЗрдВрдЯред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рд╣рдо рджреВрд╕рд░реА рд╢рд╛рдЦрд╛ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ, рдпрд╛ рджрд╛рдиреЗ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкреВрд░реА рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдХрд╣рд╛рдиреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ
HEAD рдкреЙрдЗрдВрдЯрд░
рдорд╛рд╕реНрдЯрд░ , рдФрд░ d79fb рдХрдорд┐рдЯ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ ... рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рддрд╣рдд рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐
HEAD рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░
HEAD 6e04e .. рдХреЗ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдорд┐рдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрдиреЗ рдореВрд▓ рд░рд╛рдЬреНрдп рдореЗрдВ рд╣реЛрдВрдЧреАред
HEAD рдкреЙрдЗрдВрдЯрд░ рдХреЛ "рдореВрд╡" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рд╣реИ: git checkoutред рдЬреЛ рд▓реЛрдЧ git рд╕реЗ рдереЛрдбрд╝реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдорд╛рдиреНрдпрддрд╛ рджреА рд╣реИред рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рд╣реИ - рдЬрдм рдХрд┐рд╕реА рдЕрдиреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рд╢рд╛рдЦрд╛ рдХреЗ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдз рдореЗрдВ
HEAD рд╕реВрдЪрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ HEAD рдкреЙрдЗрдВрдЯрд░ ( git checkout
) рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛
рд░реЛрд▓рдмреИрдХ рдСрди рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА:

рдЪреЗрдХрдЖрдЙрдЯ рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рджреЛ рдХрдорд┐рдЯ рдереЗред рдпрд╣ рд╕рдм рдЕрджреНрднреБрдд рд╣реИ - рд╣рдордиреЗ рдЕрддреАрдд рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдХрджрдо рдЙрдард╛рдпрд╛, рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рдЬрд╛рд╕реВрд╕реА рдХреА, рд▓реЗрдХрд┐рди рд╡рд╛рдкрд╕ рдХреИрд╕реЗ рдЬрд╛рдПрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реБрдкрд░-рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдкреНрд░рддрд┐рдмрджреНрдз (рд╕рд╣реА рдкрд░ d79fb ..) рдХрд╛ рд╣реИрд╢ рдпрд╛рдж рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рд╣рдо
git log
рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рдХрд╣рд╛рдиреА рджреЗрдЦреЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рддреАрди рдХрдорд┐рдЯ рд╣реЛрдВрдЧреЗ:
[user@localhost project]$ git log --pretty=oneline 6741a69bd121c295413be95d7597cd7409e713a0 add unit test b3e74f50c3cc48e6b335014b6dc7e301b382a903 add readme 6e04e39d0952a2d6022502d56aaa05d5a064bea Initial commit
рдХреНрдпрд╛ рд╣рдордиреЗ рдкреВрд░реА рдХрд╣рд╛рдиреА рдЦреЛ рджреА рд╣реИ? рд╕рдмрд╕реЗ "рдирдпрд╛" рдХрдорд┐рдЯрдореЗрдВрдЯ рдХреИрд╕реЗ рдкрддрд╛ рдХрд░реЗрдВ? рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ - рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рдФрд░ рдХрдИ рд╣реИрдВ:
git log --all
рдХрдорд╛рдВрдб рд▓рд┐рдЦреЗрдВред рдпрд╣ рдХрдорд╛рдВрдб рд╣рдореЗрдВ рдкреВрд░реА рдХрд╣рд╛рдиреА, рд╡рд░реНрддрдорд╛рди рддрдХ, рдЕрд░реНрдерд╛рдд рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╛рдБрдЪ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕:
[user@localhost project]$ git log --pretty=oneline --all d79fb5688af71b4577f450919535e7177e9d74e8 fix bug 478927e3a088d3cec489ca8810eaaca97c6ce0ff documentation 6741a69bd121c295413be95d7597cd7409e713a0 add unit test b3e74f50c3cc48e6b335014b6dc7e301b382a903 add readme 6e04ee39d0952a2d6022502d56aaa05d5a064bea Initial commit
рддрдм рдпрд╣ рд╣реИрд╢ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рд╕рдордп рдорд╢реАрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд░рд╣рддреА рд╣реИ: git checkout
ред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред- Git рдЖрдкрдХреЛ HEAD рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣
git reflog
рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рд╕рдХреНрд╖рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рдирд╛ рд╣реИ: - рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдкреЙрдЗрдВрдЯрд░ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХрдорд┐рдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдПрдХ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
git checkout master
ред рд╡реЛрдЗрд▓рд╛ рд▓рд╛:

git checkout
рддрдВрддреНрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ devel рд╢рд╛рдЦрд╛ рдмрдирд╛рдПрдВ:
[user@localhost project]$ git checkout -b devel
* -b рдлреНрд▓реИрдЧ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╢рд╛рдЦрд╛ рдмрдирд╛рдиреЗ рдФрд░ рддреБрд░рдВрдд рдЗрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдЕрдкрдиреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
HEAD рдкреЙрдЗрдВрдЯрд░,
devel рд╢рд╛рдЦрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЖрдЗрдП рдирдИ рд╢рд╛рдЦрд╛ рдореЗрдВ рдХрдИ рдЖрд╡рд╛рдЧрдорди рдХрд░реЗрдВред рднрдВрдбрд╛рд░ рдЗрддрд┐рд╣рд╛рд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рд▓реМрдЯрдирд╛ рднреА рджрд░реНрдж рд░рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
[user@localhost project]$ git checkout master

рддреЛ, рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ:
- Git рдЪреЗрдХрдЖрдЙрдЯ рд░реВрдо HEAD рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдореВрд╡ рдХрд░рддрд╛ рд╣реИ
рд╢рд╛рдЦрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╕реВрдЪрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ ( git reset ...
)
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, git рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓
HEAD рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рднреА
рдорд╣рд╛рджреНрд╡реАрдк рдХрд░рддрд╛ рд╣реИ ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рддреЛ
--soft
рдпрд╛
--hard
рд╕рд╛рде
git reset
рдХрдорд╛рдВрдб рд╣реИред
--hard
рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред--soft
рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд╣реАрдВ рдЦреЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реВрдЪрдХ рдХреЛ рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред git рд╕реНрдЯреЗрдЯрд╕ рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ (рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╣рдо рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рдЬрд┐рд╕ рдкрд░ рд╣рдо рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рджреЗрдВрдЧреЗред
рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ "рдЙрдкрдирд╛рдо" рдЙрд╕ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ -
ORIG_HEAD ред
git reset --hard HEAD~2
:

git reset --soft HEAD~2
:
ORIG_HEAD рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди (!) рдкрд░ рдЕрдорд╛рдиреНрдп рдХрдорд┐рдЯреНрд╕ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдкрд┐рдЫрд▓реЗ рджреЛ рдХрдорд┐рдЯреНрд╕ рдХреЛ рдПрдХ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рджреЛ рдмрд╛рд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдкрд░ рдорд╛рд╕реНрдЯрд░ рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ:
[user@localhost project]$ git reset --soft HEAD~2
рдЖрдЗрдП рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:
[user@localhost project]$ git status
рдареАрдХ рд╣реИ, рдЕрдм рдЪрд▓реЛ рдЯреНрд░рд┐рдХ - рдХрдорд┐рдЯреНрд╕ рдХреЛ рдорд┐рд▓рд╛рдПрдВ
[user@localhost project]$ git commit -c ORIG_HEAD
рд╕рдВрджреЗрд╢ рджрд░реНрдЬ рдХрд░реЗрдВ, рд╕рд╣реЗрдЬреЗрдВред рдЕрдм рд╣рдорд╛рд░реА рдХрд╣рд╛рдиреА рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ -
ORIG_HEAD рдЕрднреА рднреА d79fb рдХрдорд┐рдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ ... рдЕрдЧрд░ рд╣рдо рдЕрдм git рдЪреЗрдХрдЖрдЙрдЯ
ORIG_HEAD рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо
рддрдерд╛рдХрдерд┐рдд detach HEAD рд╕реНрдЯреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐
HEAD рд╢рд╛рдЦрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╣реЗрдб рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!

рдЕрд▓рдЧ рд░рд╛рдЬреНрдп рдХреЛ "рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ" рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдХ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдпрд╛
git checkout -b new_branch_name
рд╕рд╛рде рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдмрдирд╛рдПрдВ
git checkout -b new_branch_name
рддреЛ, рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ рдпрд╛рдж рд░рдЦреЗрдВ:
- рдЪрд╛рдмрд┐рдпрд╛рдБ рдХреЗ рд╕рд╛рде
git reset
--soft
рдпрд╛ --hard
рд╕реВрдЪрдХ рдХреЛ рд╢рд╛рдЦрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде HEAD рдкреЙрдЗрдВрдЯрд░ред
рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд! рдКрдкрд░ рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рдСрдкрд░реЗрд╢рди рдЬрдм git рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рддреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдмрджрд▓ рд░рд╣рд╛ рд╣реИред рдорд╛рдирд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЗ рджреБрд░реНрд▓рдн рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЬрдм рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рд╕рдм рдХреБрдЫ рд╕рдордЭ рдореЗрдВ рдЖрдП!
рдЕрдкрдиреЗ рднрдВрдбрд╛рд░ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЕрдЪреНрдЫреА рдпрд╛рддреНрд░рд╛ рдХрд░реЗрдВ!
рд╕рд╛рдордЧреНрд░реА рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдиреБрдЕрд▓ - рдкреБрд╕реНрддрдХ:
ProGitGit рд╡рд┐рдЬрд╝реБрдЕрд▓ рдПрдб:
рдПрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓ Git рд╕рдВрджрд░реНрдн (
рд░реВрд╕реА рд╕рдВрд╕реНрдХрд░рдг )
рдпреБрдкреАрдбреА:
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, git рдкрд░ рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рд╕рдВрд╕рд╛рдзрди рдХреА рд╕рд▓рд╛рд╣ рджреА рдЧрдИ рдереА:
githowtoрдкреБрдирд╢реНрдЪ рдирд┐рдордВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдореИрдВ рд╕рднреА рдХреЛ рд╕реБрдЦрдж рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдХреА рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрддрд╛ рд╣реВрдВ!