рдореЗрд░реЗ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд▓рд┐рдП, рдкреВрд░реЗ рд╣рдм рдкрд░ рдПрдХ рднреА рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 3 рдкреНрд░рдХрд╛рд░ рдХреЗ
git reset
рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╡реЗрд░реА "рдЧрд┐рдЯ рд░реАрд╕реЗрдЯ" рдХреЗ рд▓рд┐рдП
рджреВрд╕рд░реЗ рд╕рдмрд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓реЗрдЦ рдореЗрдВ , рд▓реЗрдЦрдХ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ "рдпрд╣ рдХреНрд░рд┐рдпрд╛ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИ: рдирд░рдо (рд╕реЙрдлреНрдЯ рд░реАрд╕реЗрдЯ) рдФрд░ рд╣рд╛рд░реНрдб (рд╣рд╛рд░реНрдб рд░реАрд╕реЗрдЯ)"ред - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореЛрдб, рдЙрд▓реНрд▓реЗрдЦ рдХреЗ
--mixed
рдирд╣реАрдВ рдерд╛ред
рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЕрдХреНрд╕рд░ рдЗрд╕ рдЯреАрдо рдХреЗ рдХрд╛рдо рдХреА рдЧрд▓рддрдлрд╣рдореА рджреЗрдЦрддреЗ рд╣реИрдВред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рднреА рддреАрди
git reset
рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдирд╣реАрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╕реНрдерд┐рд░ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛрдбрд╝рдХрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬрдм рдЖрдк рдПрдХ
git commit
, рддреЛ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдЧрд╛ред
git рд░реАрд╕реЗрдЯ --soft
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдЦрд╛ рд▓реЗрдВ:
- A - B - C (master)
рд╣реЗрдб рд╕реА рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛
рд╣реИ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕
рд╕реА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
редрдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
git reset --soft B
HEAD B рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдкреНрд░рддрд┐рдмрджреНрдз
C рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╣реЛрдВрдЧреЗ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ
git add
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдЕрдм
git commit
рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдПрдХ рдХрдорд┐рдЯ рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рдХрд┐
C рдХреЗ рд╕рдорд╛рди рд╣реИ
редgit рд░реАрд╕реЗрдЯ --mixed (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)
--mixed
рдореЛрдб
--mixed
рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк
--mixed
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд
git reset --mixed = git reset
рдЖрдЗрдП рдЙрдиреНрд╣реАрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд▓реМрдЯрддреЗ рд╣реИрдВ:
- A - B - C (master)
рдкреВрд░рд╛ рдХрд░рдХреЗ
git reset --mixed B
рдпрд╛
git reset B
HEAD рдлрд┐рд░ рд╕реЗ
B рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░
C рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдпрджрд┐ рдЖрдк
git commit
рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕
C рд╕реЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк
git status
рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдордВрдЪрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ
git add
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ
git add
рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА
git commit
ред
git рд░реАрд╕реЗрдЯ --рд╣рд╛рд░реНрдб
рд╡рд╣реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢рд░реНрддреЗрдВ:
- A - B - C (master)
рдЕрдВрддрд┐рдо
--mixed
рдореЛрдб, рдЬреИрд╕реЗ
--mixed
HEAD рдХреЛ
B рдореЗрдВ рд▓реЗ
--mixed
рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдХреНрд▓рд┐рдпрд░ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди
--mixed
рд╡рд┐рдкрд░реАрдд
--mixed
рд╣рд╛рд░реНрдб рд░реАрд╕реЗрдЯ
рдЖрдкрдХреЗ рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ ред рдЕрдЧрд░ рдЕрдорд▓ рдХрд░рдирд╛ рд╣реИ
git reset --hard B
рдлрд┐рд░
C рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди, рд╕рд╛рде рд╣реА рдЧреИрд░-рдкреНрд░рддрд┐рдмрджреНрдз рдкрд░рд┐рд╡рд░реНрддрди, рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ
B рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдВрдЧреА
ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдореЛрдб рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдб рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
рд╣рдореЗрд╢рд╛ git status
рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ (рдпрд╛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред
git reset
рдореЛрдб рдХреА рддреБрд▓рдирд╛ рддрд╛рд▓рд┐рдХрд╛:
| рд╕реВрдЪрдХрд╛рдВрдХ рдмрджрд▓рддрд╛ рд╣реИ | рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ | рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд╕рдЪреЗрдд |
---|
reset --soft | рдирд╣реАрдВ | рдирд╣реАрдВ | рдирд╣реАрдВ |
reset [--mixed] | рд╣рд╛рдВ | рдирд╣реАрдВ | рдирд╣реАрдВ |
reset --hard | рд╣рд╛рдВ | рд╣рд╛рдВ | рд╣рд╛рдВ |
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЪрд┐рддреНрд░: (
VBauer рдХреЗ рд▓рд┐рдП )
