Git рд╣реЛрддрд╛ рд╣реИ! 6 рдЖрдо Git рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ



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

рд╣рдо рд╕рднреА рдЧрд▓рддрд┐рдпрд╛рдБ рдХрд░рддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЬрдЯрд┐рд▓ рд╕рд┐рд╕реНрдЯрдо рдЬреИрд╕реЗ Git рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦрдирд╛: Git рд╣реЛрддрд╛ рд╣реИ!

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

1. рдЙрдлрд╝ ... рдореБрдЭреЗ рдЖрдЦрд┐рд░реА рдореЗрд╕реЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрд╕реЗрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛


рдХрдИ рдШрдВрдЯреЛрдВ рдХреА рдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдХрдорд┐рдЯ рдореИрд╕реЗрдЬ рдореЗрдВ рдЧрд▓рддреА рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рддрдп рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:

git commit --amend 

рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде, рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЖрдЦрд┐рд░реА рдореЗрд╕реЗрдЬ рдореЗрдВ рдореИрд╕реЗрдЬ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдФрд░ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдЖрдкрдиреЗ рддреАрди "рдбреАрдПрд╕" рдХреЗ рд╕рд╛рде "рдПрдбреЗрдб" рд▓рд┐рдЦрд╛ рд╣реИред

2. рдЙрдлрд╝ ... рдореИрдВ рдЖрдЦрд┐рд░реА рдХрдореЗрдЯ рдореЗрдВ рдлрд╛рдЗрд▓ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдпрд╛


Git рдореЗрдВ рдПрдХ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдмрдЧ рдмрд╣реБрдд рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИред рдХреНрдпрд╛ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдП рд╣реИрдВ, рдЗрд╕реЗ рд╕рд╣реЗрдЬрдирд╛ рднреВрд▓ рдЧрдП рд╣реИрдВ, рдпрд╛ рдЖрдкрдХреЛ рдХрдорд┐рдЯрдореЗрдВрдЯ рдХреЛ рд╕рд╛рд░реНрдердХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЖрдкрдХрд╛ рджреЛрд╕реНрдд рд╣реЛрдЧрд╛ --amend рдлрд┐рд░ рд╕реЗ --amend ред

рдЕрдиреБрдкрд▓рдмреНрдз рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдпрд╣ рд╕рд╣реА рдЖрджреЗрд╢ рдЪрд▓рд╛рдПрдБ:

 git add missed-file.txt git commit --amend 

рдЕрдм рдЖрдк рдпрд╛ рддреЛ рд╕рдВрджреЗрд╢ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдмрд╕ рдЗрд╕реЗ рдЕрдкрдиреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛрдбрд╝реА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде)ред

3. рдЙрдлрд╝ ... рдореИрдВрдиреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реА рдЬреЛ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП


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

рдпрджрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЪрд░рдг рд╣реА рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдЗрд╕реЗ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд░рд▓ рд░реАрд╕реЗрдЯ (рдЪрд░рдг рдореЗрдВ рд╕реНрдерд┐рдд) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 git reset /assets/img/misty-and-pepper.jpg 

рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрджрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 git reset --soft HEAD~1 git reset /assets/img/misty-and-pepper.jpg rm /assets/img/misty-and-pepper.jpg git commit 

рдХрдорд┐рдЯ рд╡рд╛рдкрд╕ рд▓реЗ рд▓реА рдЬрд╛рдПрдЧреА, рдЪрд┐рддреНрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдлрд┐рд░ рдПрдХ рдирдИ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред

рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред : рдЬреИрд╕рд╛ рдХрд┐ рдореВрд▓ рд▓реЗрдЦ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦрд┐рдд --amend рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рд╕рд╛рде, рд▓реЗрдЦрдХ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдмрджрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдФрд░ рдХреНрдпрд╛ рд╣реИрдВред

4. рдЙрдлрд╝ ... рдореИрдВрдиреЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдП


рддреЛ, рдЖрдк рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрд▓реНрджреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдмрдирд╛рдирд╛ рднреВрд▓ рдЧрдП рд╣реИрдВред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмрдирд╛ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдпреЗ рд╕рднреА рдХрдорд┐рдЯ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, GitLab рд╕реАрдзреЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ push'y рдХреЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреАрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдиреЛрдЯ : рдЕрдкрдиреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЬрд╝реАрд░реЛ рдХреЛ рдХрдорд┐рдЯ рдпрд╛ рд╕реНрдЯреЗрд╢ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ - рдЕрдиреНрдпрдерд╛ рд╡реЗ рд╕рднреА рдЦреЛ рдЬрд╛рдПрдВрдЧреЗ!

 git branch future-brunch git reset HEAD~ --hard git checkout future-brunch 

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

5. рдЙрдлрд╝тАж рдореИрдВрдиреЗ рд╢рд╛рдЦрд╛ рдХреЗ рдирд╛рдо рдкрд░ рдЧрд▓рддреА рдХреА


рд╕рдмрд╕реЗ рдЪреМрдХрд╕ рд▓реЛрдЧ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╢рд╛рдЦрд╛ рдХреЗ рдирд╛рдо рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд▓рдЧрднрдЧ 3 рдмрдЬреЗ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЕрднреА рднреА рд░рд╛рдд рдХрд╛ рдЦрд╛рдирд╛ рдирд╣реАрдВ рдЦрд╛рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реА рднреВрдЦ рдиреЗ рдирдИ рд╢рд╛рдЦрд╛ ( br a nch ) рдХреЛ рднрд╡рд┐рд╖реНрдп рдХреА br u nch рдХрд╣рд╛ рд╣реИ ред рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ!



рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдирд╛рдо рджреЗрдВ рдЬреЛ mv рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрд░реНрдерд╛рдд рдЗрд╕реЗ рд╕рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдП рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдирд╛:

 git branch -m future-brunch feature-branch 

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣рдо рдкреБрд░рд╛рдиреА рд╢рд╛рдЦрд╛ рдХреЛ рд░рд┐рдореЛрдЯ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ рдФрд░ рдирдП рдХреЛ рдзрдХреНрдХрд╛ рджреЗрдВрдЧреЗ:

 git push origin --delete future-brunch git push origin feature-branch 

рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред : рдЖрдк рдЕрднреА рднреА рд░рд┐рдореЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╢рд╛рдЦрд╛ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

 git push origin :future-brunch 

6. рдЙрдлрд╝тАж рдореИрдВрдиреЗ рдлрд┐рд░ рдХрд┐рдпрд╛!


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

git reflog рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕рднреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдпрд╣ рдЖрдкрдХреЛ Git рдХреА рдЬрд╛рджреБрдИ рд╕рдордп рдпрд╛рддреНрд░рд╛ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЕрддреАрдд рд╕реЗ рдХрд┐рд╕реА рднреА рдХреНрд╖рдг рдореЗрдВ рд▓реМрдЯреЗрдВред рдореБрдЭреЗ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдЖрдЦрд┐рд░реА рдЙрдореНрдореАрдж рд╣реИ - рдЖрдкрдХреЛ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рд╣рд╛рд░рд╛ рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд░реЗрдВ:

 git reflog 

рд╣рдорд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрджрдо Git рдХреА рдЪреМрдХрд╕ рдирд┐рдЧрд╛рд╣ рдХреЗ рдиреАрдЪреЗ рд╣реИред рдКрдкрд░ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЯреАрдо рдЪрд▓рд╛рдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:

 3ff8691 (HEAD -> feature-branch) HEAD@{0}: Branch: renamed refs/heads/future-brunch to refs/heads/feature-branch 3ff8691 (HEAD -> feature-branch) HEAD@{2}: checkout: moving from master to future-brunch 2b7e508 (master) HEAD@{3}: reset: moving to HEAD~ 3ff8691 (HEAD -> feature-branch) HEAD@{4}: commit: Adds the client logo 2b7e508 (master) HEAD@{5}: reset: moving to HEAD~1 37a632d HEAD@{6}: commit: Adds the client logo to the project 2b7e508 (master) HEAD@{7}: reset: moving to HEAD 2b7e508 (master) HEAD@{8}: commit (amend): Added contributing info to the site dfa27a2 HEAD@{9}: reset: moving to HEAD dfa27a2 HEAD@{10}: commit (amend): Added contributing info to the site 700d0b5 HEAD@{11}: commit: Addded contributing info to the site efba795 HEAD@{12}: commit (initial): Initial commit 

рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдХреЙрд▓рдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдпрд╣ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдЪрд┐рдд рдореВрд▓реНрдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, dfa27a2 ) рдХреЗ рд╕рд╛рде {index} рдЬрдЧрд╣, рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

 git reset HEAD@{index} 

рддреЛ, рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЧрд┐рдЯреНрд▓реНрд╕ рд╕реЗ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдЫрд╣ рддрд░реАрдХреЗ рд╣реИрдВ (рд╡рд╛рдХреНрдп: рдкреЙрдЯрдлреЙрд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж "рдЯреНрд░реИрдк, рдЧрд▓рддреА" рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ - рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рдиред ) ред

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдмреЛрдирд╕


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдКрдкрд░ рд▓рд┐рдЦреА рдЧрдИ рдкреНрд░рддреНрдпреЗрдХ рдЪреАрдЬ рдкрд░ рдПрдХ рдореВрд▓реНрдпрд╡рд╛рди рдЯрд┐рдкреНрдкрдгреА (рдкреИрд░рд╛рдЧреНрд░рд╛рдл 5 рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпреЗ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрдорд┐рдЯ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рддрднреА рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдкрд░рд┐рд╡рд░реНрддрди рд░рд┐рдореЛрдЯ (рдкреБрд╢'рдирдЯ) рдХреЛ рдирд╣реАрдВ рднреЗрдЬреЗ рдЧрдП рд╣реЛрдВред рдЕрдиреНрдпрдерд╛, рдкреБрд░рд╛рдиреА рдЦрд░рд╛рдм рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреВрд░рд╕реНрде рд╢рд╛рдЦрд╛ рдкрд░ рд╣реЛрдЧреА рдФрд░ рдЖрдкрдХреЛ рдпрд╛ рддреЛ git pull рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЬреЛ рдорд░реНрдЬ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдлрд┐рд░ "рд╕реНрдкрд╖реНрдЯ" рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЗрддрд┐рд╣рд╛рд╕ рдЦрд░рд╛рдм рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛), рдпрд╛ git push --force , рдЬреЛ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреЗ рд╕рд╛рде рднрд░ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рд▓реЛрдЧреЛрдВ рдХреА рдПрдХ рд╢рд╛рдЦрд╛ ...



рдЕрдм - рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ рдЫреЛрдЯреЗ рдЙрдкрдпреЛрдЧреА рдЬреЛрдбрд╝:

  • рдпрджрд┐ рдЖрдкрдиреЗ (рдЧрд▓рддреА рд╕реЗ рдпрд╛ рдирд╣реАрдВ) рд╢рд╛рдЦрд╛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ рдПрдХ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ git checkout - рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ git checkout - ред
  • рдЕрдЧрд░ рдЖрдкрдиреЗ рдЧрд▓рддреА рд╕реЗ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝ рджреА рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ git reset HEAD path/to/file ред рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдЕрдиреБрдЪреНрдЫреЗрдж 3 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрджрд▓рд╛рд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ (рди рдХреЗрд╡рд▓ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдорд╛рдорд▓рд╛)ред
  • рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдорд┐рдЯ ( git add -p ) рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, the -p рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдХрдорд┐рдЯ рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрджрд▓рд╛рд╡ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдЕрдирдХрд╣реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • 2014 рдХреЗ рд▓реЗрдЦ " рдЧрд┐рдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: 10 рдХреЙрдорди рдЧреЗрдЯ рдкреНрд░реЙрдмреНрд▓рдо рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ " рдореЗрдВ рдХрдИ рдЕрдЪреНрдЫреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ (рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд╛рд▓реЗ рд╕рд╣рд┐рдд) рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, git rebase -i рдФрд░ git rebase -i рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдкреА.рдПрд╕.


рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ:

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


All Articles