рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

Git рдореЗрдВ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ: рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓

Git рдореЗрдВ рджреЛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрдорд╛рдВрдб рдФрд░ рдЯреВрд▓ рд╕реАрдЦреЗрдВтАФрдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрдЯрд┐рд╕реНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдХреМрд╢рд▓ред
┬╖ 10 рдорд┐ре░ рдкрдврд╝реЗрдВ

AI рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ

Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреНрдпрд╛ рд╣реИ?

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

Git Merge Conflicts Graphic
Git рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХрд╛ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг

рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдбрд╛рдпрдЧреНрд░рд╛рдо рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдпрддрдГ Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдореБрдЦреНрдп рдмреНрд░рд╛рдВрдЪ рдореЗрдВ тАЬHELLO, WORLD!тАЭ рдЯреЗрдХреНрд╕реНрдЯ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рд╣реИред рдпреВрдЬрд╝рд░рдиреЗрдо abid рдореБрдЦреНрдп рдмреНрд░рд╛рдВрдЪ рдХреЛ рдлреЛрд░реНрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ тАЬHELLO, CAT!тАЭ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред рдЬрдм abid рдмрджрд▓рд╛рд╡ рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рдореВрд▓ main рдмреНрд░рд╛рдВрдЪ рднреА тАЬHELLO, DOG!тАЭ рдореЗрдВ рдмрджрд▓реА рдЬрд╛ рд░рд╣реА рд╣реЛрддреА рд╣реИред рдЗрди рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдкрд░ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреА рд╕рдорд╕реНрдпрд╛ рдЖрдПрдЧреА рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░реБрдХ рдЬрд╛рдПрдЧреАред┬а┬а

git merge рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рдо рджреЛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдирд╛ рдФрд░ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рд╕реБрд▓рдЭрд╛рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдордп-рд╕рдордп рдкрд░ рдРрд╕реЗ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рджреЛ рд▓реЛрдЧреЛрдВ рдиреЗ рдПрдХ рд╣реА рдХреЛрдб рд▓рд╛рдЗрди рдмрджрд▓ рджреА рд╣реЛ рдпрд╛ рдХрд┐рд╕реА рдиреЗ рд╡реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣рдЯрд╛ рджреА рд╣реЛрдВ рдЬрд┐рди рдкрд░ рдХреЛрдИ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред Git рдЗрди рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдорд╛рд░реНрдХ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдорд░реНрдЬрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдЕрдкрдиреЗ рдЖрдк рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛; рдмрд▓реНрдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓реА рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред

рдорд░реНрдЬ рдХреЗ рдкреНрд░рдХрд╛рд░

Git merge рдФрд░ rebase рд╡реЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЗ рдХрдорд┐рдЯреНрд╕ рдХреЛ рд╕реЛрд░реНрд╕ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЧреЗ, Git merge рдпрд╛ рддреЛ fast-forward рдХрд░рддрд╛ рд╣реИ рдпрд╛ no-fast-forward merge рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХрд╛ head рд╕реЛрд░реНрд╕ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдорд░реНрдЬ рдЯрд╛рдЗрдк fast-forward рд╣реЛрдЧрд╛, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ no-fast-forward рд╣реЛрдЧрд╛ред Git rebase рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд░реНрдЬ рд╣реИ рдЬреЛ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЗ рдХрдорд┐рдЯ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдХреНрд░рдо рдмрджрд▓ рджреЗрддрд╛ рд╣реИред┬а

рдлрд╛рд╕реНрдЯ-рдлрд╝реЙрд░рд╡рд░реНрдб рдорд░реНрдЬ

Git Fast Forward Merge

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Git merge рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдореМрдЬреВрдж рди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрдорд┐рдЯреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП fast-forward рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, pull рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ред Fast-forward рдореЗрдВ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдЖрддреА рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХрд╛ head рд╕реЛрд░реНрд╕ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рддреЛ Git рдЗрд╕реЗ рд▓рд╛рдЧреВ рд╣реА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред┬а

рдиреЛ-рдлрд╛рд╕реНрдЯ-рдлрд╝реЙрд░рд╡рд░реНрдб рдорд░реНрдЬ

Git No-fast-forward Merge

No-fast-forward рдорд░реНрдЬ рдХреЛ three-way рдпрд╛ true merge рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реЛрд░реНрд╕ рдФрд░ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рджреЛрдиреЛрдВ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдПрдХ рдирдпрд╛ рдХрдорд┐рдЯ рдмрдирд╛рддрд╛ рд╣реИред рдмрджрд▓рд╛рд╡ рджреЛрдиреЛрдВ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рдЕрдВрддрд┐рдо рдХреЙрдорди рдХрдорд┐рдЯ рдХреЗ рдмрд╛рдж рдорд┐рд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ C рдХреЗ рдмрд╛рдж рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд░реНрдЬ рддрдм Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рджрд┐рдЦрд╛рдПрдЧрд╛ рдЬрдм рд╕реЛрд░реНрд╕ рдмреНрд░рд╛рдВрдЪ рдФрд░ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдЯрдХрд░рд╛рд╡ рд╣реЛред рдКрдкрд░ рджрд┐рдП рдЧрдП рдбрд╛рдпрдЧреНрд░рд╛рдо рдореЗрдВ, рдорд░реНрдЬ рдХрдорд┐рдЯ (X) рд╕реЛрд░реНрд╕ рдФрд░ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдБ K рдФрд░ E рдорд░реНрдЬ рдХрдорд┐рдЯ рдХреЗ рдкреИрд░реЗрдВрдЯреНрд╕ рд╣реИрдВред┬а

рд░реАрдмреЗрд╕┬а

Git Rebase

Git rebase рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рднрд┐рдиреНрди рд╣реИред рдпрд╣ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЗ рдХрдорд┐рдЯ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред Rebase рд╕реЛрд░реНрд╕ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЛрд░реНрд╕ рдмреНрд░рд╛рдВрдЪ рдХреЗ рд╕рд╛рд░реЗ рдмрджрд▓рд╛рд╡ рд╣реЛрдВ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЕрдВрддрд┐рдо рдХреЙрдорди рдХрдорд┐рдЯ рдХреЗ рдмрд╛рдж рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдХреЗ рд╕рднреА рдХрдорд┐рдЯреНрд╕ред рд╣рдорд╛рд░реЗ рдХреЗрд╕ рдореЗрдВ рдЕрдВрддрд┐рдо рдХреЙрдорди рдХрдорд┐рдЯ C рд╣реИ, рдЬрдмрдХрд┐ D рдФрд░ E рд╕реЛрд░реНрд╕ рдмреНрд░рд╛рдВрдЪ рд╕реЗ рд╣реИрдВред K* рдХрдорд┐рдЯ K рдЬреИрд╕рд╛ рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рдХрдорд┐рдЯ ID рдЕрд▓рдЧ рд╣реИред рдпрд╣ C рд╕реЗ рд▓рд┐рдВрдХ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп E рд╕реЗ рд▓рд┐рдВрдХ рд╣реЛрдЧрд╛ред No-fast-forward рдорд░реНрдЬ рдХреА рддрд░рд╣ рд╣реА, рдпрджрд┐ рд╕реЛрд░реНрд╕ рдФрд░ рдЯрд╛рд░реНрдЧреЗрдЯ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдЕрдиреБрдХреВрд▓рддрд╛ рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ, рддреЛ Git рд░реАрдмреЗрд╕ рдХреЛ рдлрд╛рдЗрдирд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛ред┬а

Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░

Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ: рд╢реБрд░реБрдЖрдд рдореЗрдВ рдФрд░ рдорд░реНрдЬрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди - Atlassianред рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗред┬а

рдорд░реНрдЬ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ

рдпрджрд┐ рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдпрд╛ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реИрдВ рддреЛ Git merge рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд░реНрдЬ рдХрдорд┐рдЯреНрд╕ рдЖрдкрдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рди рдХрд░ рджреЗрдВред рдпрд╣ рдЯрдХрд░рд╛рд╡ рдЕрдиреНрдп рдмреНрд░рд╛рдВрдЪреЛрдВ рдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд▓реЛрдХрд▓ рдмрджрд▓рд╛рд╡реЛрдВ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рд▓реЛрдХрд▓ рд╕реНрдЯреЗрдЯ рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк git stash, git commit, git checkout, рдпрд╛ git reset рдЬреИрд╕реЗ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдорд░реНрдЬ рдХреЗ рджреМрд░рд╛рди

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

Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рдХрдорд╛рдВрдб

рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝ рдФрд░ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдиреЗрдЯрд┐рд╡ рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦреЗрдВрдЧреЗред┬а

рдХреЙрдорди рдХрдорд╛рдВрдбреНрд╕

Git status рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдореЙрдбрд┐рдлрд╝рд╛рдЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ, рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдФрд░ рдХрдорд┐рдЯреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдорд░реНрдЬрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдо рдЖрддрд╛ рд╣реИред┬а┬а

git status

--merge рдЖрд░реНрдЧреБрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде Git log рд╕реЛрд░реНрд╕ рдмреНрд░рд╛рдВрдЪ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрдорд┐рдЯреНрд╕ рдХреА рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИред┬а

git log --merge

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, git diff рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЛ рдЕрдирдХрдореАрдЯреЗрдб рдмрджрд▓рд╛рд╡реЛрдВ рдФрд░ рдкрд┐рдЫрд▓реЗ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рджрд┐рдЦрд╛рдПрдЧрд╛ред Git diff рдмреНрд░рд╛рдВрдЪреЛрдВ, рдХрдорд┐рдЯреНрд╕ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдХреЛ рд░реЛрдХрдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реИред┬а

git diff 

рдЬрдм рдорд░реНрдЬ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ

Checkout рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рдпрд╛ рдирдИ/рдкреБрд░рд╛рдиреА рдмреНрд░рд╛рдВрдЪ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред┬а

git checkout

Git reset рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдФрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдореЗрдВ рдХрд┐рдП рдЧрдП рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд░рд┐рд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред┬а

git reset --mixed

рдЬрдм рдорд░реНрдЬ рдХреЗ рджреМрд░рд╛рди рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╣реЛ

--abort рдЖрд░реНрдЧреБрдореЗрдВрдЯ рдорд░реНрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ рдФрд░ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЙрд╕ рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реМрдЯрд╛ рджреЗрдЧрд╛ рдЬреЛ рдорд░реНрдЬ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдереАред┬а

git merge --abort

рдорд░реНрдЬрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди Git reset рдЖрдорддреМрд░ рдкрд░ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдирдХреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред

git reset

deleted-modified рдлрд╝рд╛рдЗрд▓ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛рдПрдБ

Git рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рддрдм рд╣реЛрдЧрд╛ рдЬрдм рдЖрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд▓реАрдЯ рдХрд░ рджреА рд╣реЛ рдФрд░ рдХрд┐рд╕реА рдФрд░ рдиреЗ рджреВрд╕рд░реА рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдЙрд╕реЗ рдореЙрдбрд┐рдлрд╝рд╛рдИ рдХрд┐рдпрд╛ рд╣реЛред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдпрд╛ рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдРрдб рдХрд░рдХреЗ рдХрдорд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,

git add <filename>

рдпрд╛ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛ рдХрд░ рдХрдорд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред┬а

git rm <filename>

ЁЯУМ Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд░реЗрдЬрд╝реЛрд▓реНрдпреВрд╢рди рдЪреАрдЯ рд╢реАрдЯ

рдХрдорд╛рдВрдбрд╡рд┐рд╡рд░рдгрдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧ
git statusрдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИgit status
git diffрдХрдорд┐рдЯреНрд╕ рдпрд╛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИgit diff HEAD
git log --mergeрдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрдорд┐рдЯреНрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИgit log --merge
git merge --abortрдорд░реНрдЬ рд░рджреНрдж рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рдмрд╣рд╛рд▓ рдХрд░рддрд╛ рд╣реИgit merge --abort
git reset --hard HEADрдмреНрд░рд╛рдВрдЪ рдХреЛ рдЕрдВрддрд┐рдо рдХрдорд┐рдЯреЗрдб рд╕реНрдерд┐рддрд┐ рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИgit reset --hard HEAD
git checkout -- <filename>рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рдП рдмрджрд▓рд╛рд╡ рддреНрдпрд╛рдЧрддрд╛ рд╣реИgit checkout -- README.md
git mergetoolрдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд░реЗрдЬрд╝реЛрд▓реНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реНрдб рдорд░реНрдЬ рдЯреВрд▓ рдЦреЛрд▓рддрд╛ рд╣реИgit mergetool
git add <filename>рдПрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреЛ resolved рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИgit add README.md
git commit -m "<message>"рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдмрджрд▓рд╛рд╡ рд╕реЗрд╡ рдХрд░рддрд╛ рд╣реИgit commit -m "Resolved merge conflict"
git rebase --continueрдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд░реБрдХреЗ рд╣реБрдП рд░реАрдмреЗрд╕ рдХреЛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИgit rebase --continue
git rm <filename>рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рд╣рдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдбрд┐рд▓реАрдЯ рдФрд░ рджреВрд╕рд░реА рдореЗрдВ рдореЙрдбрд┐рдлрд╝рд╛рдИ рд╣реБрдИ рд╣реЛgit rm README.md
git pushрдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдмрджрд▓рд╛рд╡ рдкреБрд╢ рдХрд░рддрд╛ рд╣реИgit push origin main

рд╡рд┐рдЬрд╝реБрдЕрд▓ рдорд░реНрдЬ рдЯреВрд▓реНрд╕

рдорд░реНрдЬ рдЯреВрд▓реНрд╕ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдЯреВрд▓реНрд╕ рд╣реИрдВред рдХреБрдЫ рдЯреВрд▓реНрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖рдорддрд╛рдПрдБ рднреА рджреЗрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рддреБрд▓рдирд╛, Git рдСрдкрд░реЗрд╢рдиреНрд╕, рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреНрд░рдмрдВрдзрдиред Git рдорд░реНрдЬ рдЯреВрд▓реНрд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ: рдХреЗрд╡рд▓ рдЯрд░реНрдорд┐рдирд▓ рдФрд░ GUI-рдЖрдзрд╛рд░рд┐рддред рдЯрд░реНрдорд┐рдирд▓-рдЖрдзрд╛рд░рд┐рдд рдЯреВрд▓ PowerShell рдпрд╛ Bash рдореЗрдВ рдЦреБрд▓рддреЗ рд╣реИрдВ, рдФрд░ GUI-рдЖрдзрд╛рд░рд┐рдд рдЯреВрд▓ рд╡рд┐рдВрдбреЛ рд╡рд╛рд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЦреБрд▓рддреЗ рд╣реИрдВред┬а

рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдФрд░ рд╡реИрдз рдЯреВрд▓реНрд╕ рдХреА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

git mergetool --tool-help 

рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╡реЗ рд╕рднреА рд╡реИрдз рдЯреВрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ git рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ vim рдФрд░ nvim рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдЕрдирдХрдореАрдЯреЗрдб рдлрд╝рд╛рдЗрд▓ рдФрд░ рдкрд┐рдЫрд▓реЗ рдХрдорд┐рдЯ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд▓рд┐рдЦреЗрдВ:

git difftool --tool=vimdiff3

vimdiff3 рдЯреВрд▓ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рднреАрддрд░ рдХрдорд┐рдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред┬а

Difference between two versions of the same file in Vimdiff3

рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ (vimdiff3)

Meld

Meld рдПрдХ рдореБрдлрд╝реНрдд рдФрд░ рдУрдкрди-рд╕реЛрд░реНрд╕ рдЯреВрд▓ рд╣реИ рдЬреЛ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред Git рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рд╕реЗрдЯрдЕрдк рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдЕрдЧрд▓рд╛, рдЗрд╕реЗ рдЧреНрд▓реЛрдмрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Git рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Meld рд▓реЙрдиреНрдЪ рдХрд░реЗред┬а┬а

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХрдорд╛рдВрдбреНрд╕ рдХреЗрд╡рд▓ Windows рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред Mac рдпрд╛ Linux рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ Meld рдХреА рдЗрдВрд╕реНрдЯреЙрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрд╛рде рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред┬а

git config --global merge.tool meld 

git config --global mergetool.meld.path "C:/Program Files (x86)/Meld/Meld.exe" 

git config --global diff.tool meld

git config --global difftool.meld.path "C:/Program Files (x86)/Meld/Meld.exe"

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрдЕрдк рдХреЗ рдмрд╛рдж, рдЖрдк Git рдХреА рд▓реЛрдХрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ git difftool рдЯрд╛рдЗрдк рдХрд░рдХреЗ Windows рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ Meld рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ git mergetool рдЪрд▓рд╛рдХрд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛ рд╕рдХрддреЗ рд╣реИрдВред

Resolving a Merge Conflict with Meld in Git

Meld рдХреЗ рд╕рд╛рде рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдирд╛

VSCode

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

Resolving a Git Merge Conflict with VSCode

VSCode рдХреЗ рд╕рд╛рде рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдирд╛

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ Git рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ GitKraken рдЖрдЬрд╝рдорд╛рдПрдБред рдпрд╣ рдПрдХ рдореБрдлрд╝реНрдд рдХреНрд▓рд╛рдЗрдВрдЯ, VSCode рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдФрд░ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рдЯреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред┬а┬а

Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреИрд╕реЗ рд╕реБрд▓рдЭрд╛рдПрдБ

рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреИрд╕реЗ рдмрдирд╛рдПрдБ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕реБрд▓рдЭрд╛рдПрдБред рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рд▓реЛрдХрд▓ рд░реВрдк рд╕реЗ Git рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗ; рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ (GitHub) рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреА рдмрд╛рдд рд╣реЛрдЧреАред

рд▓реЛрдХрд▓ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ

рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдмрдирд╛рдирд╛ рд╣рдореЗрдВ рдпрд╣ рд╕реАрдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдпреЗ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкрд╣рд▓реА рдЬрдЧрд╣ рдкрд░ рдХреИрд╕реЗ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдЗрдиреНрд╣реЗрдВ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд░рдЪрдирд╛рддреНрдордХ рддрд░реАрдХреЗ рдЕрдкрдирд╛рдПрдВрдЧреЗ рдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрдирд╕реЗ рдмрдЪреЗрдВрдЧреЗред┬а

рдЕрдм рд╣рдо рдПрдХ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдБрдЧреЗ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдХрдорд┐рдЯ рдХрд░реЗрдВрдЧреЗред┬а

  1. datacamp рдирд╛рдо рдХрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБред
  2. рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрджрд▓рдХрд░ datacamp рдкрд░ рдЬрд╛рдПрдБред
  3. Git рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВред
  4. README.md рдлрд╝рд╛рдЗрд▓ рджрд┐рдП рдЧрдП рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдБред
  5. рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╕реНрдЯреЗрдЬ рдХрд░реЗрдВ рдФрд░ рдХрдорд┐рдЯ рдХрд░реЗрдВред
mkdir datacamp
cd datacamp
git init
echo "# How to Resolve Git Merge Conflict" > README.md
git add README.md
git commit -m "first commit"

>>> [main (root-commit) 8199ea2] first commit
>>>  1 file changed, 1 insertion(+)
>>> create mode 100644 README.md

рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдо readme рдирд╛рдо рдХреА рдирдИ рдмреНрд░рд╛рдВрдЪ рдмрдирд╛рдПрдБрдЧреЗ рдФрд░ рд╢реАрд░реНрд╖рдХ рдХреЛ тАЬ..Git Merge..тАЭ рд╕реЗ тАЬ..Git..тАЭ рдореЗрдВ рдмрджрд▓реЗрдВрдЧреЗред рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ рдФрд░ -am рдЖрд░реНрдЧреБрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдорд┐рдЯ рдмрдирд╛рдПрдБред

git checkout -b readme
echo "# How to Resolve Git Conflict" > README.md
git commit -am "new branch conflict added"

>>> [readme 155f694] new branch conflict added
>>> 1 file changed, 1 insertion(+), 1 deletion(-)

рдореБрдЦреНрдп рдмреНрд░рд╛рдВрдЪ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБ рдФрд░ README.md рдлрд╝рд╛рдЗрд▓ рдореЗрдВ >> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВред рдмрджрд▓рд╛рд╡ рд╕реЗрд╡ рдХрд░ рдХреЗ рдХрдорд┐рдЯ рдмрдирд╛рдиреЗ рд╕реЗ, рд╣рдордиреЗ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдмрдирд╛ рд▓рд┐рдпрд╛ рд╣реИред┬а

git checkout main
echo "New change in base branch" >> README.md
git commit -am " a line added to base branch Readme file"

>>> [main f1f1874]  a line added to base branch Readme file
>>> 1 file changed, 1 insertion(+)

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, readme рдмреНрд░рд╛рдВрдЪ рдХреЛ рдорд░реНрдЬ рдХрд░рддреЗ рд╕рдордп Git рдиреЗ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдСрдЯреЛрдореЗрдЯрд┐рдХ рдорд░реНрдЬ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓реА рдмрджрд▓рд╛рд╡ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХрдорд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред┬а

git merge readme

>>> Auto-merging README.md
>>> CONFLICT (content): Merge conflict in README.md
>>> Automatic merge failed; fix conflicts and then commit the result.

рд╣рдо Notepad рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдХрд░ рдФрд░ рдПрдбрд┐рдЯ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓реА рд╕реБрд▓рдЭрд╛рдПрдБрдЧреЗред рдиреАрдЪреЗ рдХреА рдЫрд╡рд┐ рдореЗрдВ HEAD рдХреЗ рд╕рд╛рде рддреАрд░, рдПрдХ рдбрд┐рд╡рд╛рдЗрдбрд░, рдФрд░ рджреВрд╕рд░реА рджрд┐рд╢рд╛ рдореЗрдВ readme рдХреЗ рд╕рд╛рде рддреАрд░ рджрд┐рдЦрддрд╛ рд╣реИред HEAD рднрд╛рдЧ рдореБрдЦреНрдп рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдореМрдЬреВрдж рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ readme рд╡рд╣ рдмреНрд░рд╛рдВрдЪ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдорд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЕрд▓рдЧ рд╣реЗрдбрд┐рдВрдЧ рд╣реИред┬а

Resolving a Merge Conflict ManuallyрдореИрдиреНрдпреБрдЕрд▓реА рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдирд╛┬а

рд╕рдорд╕реНрдпрд╛ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо readme рдмреНрд░рд╛рдВрдЪ рдХрд╛ рднрд╛рдЧ, рддреАрд░ рдФрд░ рдбрд┐рд╡рд╛рдЗрдбрд░ рд╣рдЯрд╛ рджреЗрдВрдЧреЗред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рд╕рд╛рдлрд╝ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред┬а

рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭ рдЧрдпрд╛┬а

рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдХрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рдФрд░ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИред рдЖрдк рдХреЛрдИ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯреЗрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдПрдВрд╡рд╛рдпрд░рдирдореЗрдВрдЯ (IDE) рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рдорд╕реНрдпрд╛рдПрдБ рддреЗрдЬрд╝реА рд╕реЗ рд╕реБрд▓рдЭреЗрдВред

git commit -am "conflict resolved in file README.md"
>>> [main 9994a29] conflict resolved in file README.md

рд░рд┐рдореЛрдЯ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ

рд░рд┐рдореЛрдЯ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ GitHub рдкрд░ рдПрдХ рдирдпрд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

Creating a New Repository on GitHub

GitHub рдкрд░ рдирдпрд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рдирд╛

рдЗрд╕рдХреЗ рдмрд╛рдж, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдкрддреЗ рдХреЗ рд╕рд╛рде рд░рд┐рдореЛрдЯ рдирд╛рдо (origin) рдЬреЛрдбрд╝реЗрдВ рдФрд░ upstream рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдХрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд░рд┐рдореЛрдЯ main рдмреНрд░рд╛рдВрдЪ рдкрд░ рд╕рднреА рдмрджрд▓рд╛рд╡ рдкреБрд╢ рдХрд░реЗрдВред

git remote add origin https://github.com/kingabzpro/DataCamp-Git-Merge-Guide.git
git push --set-upstream origin main


>>> Enumerating objects: 12, done.
>>> Counting objects: 100% (12/12), done.
>>> Delta compression using up to 4 threads
>>> Compressing objects: 100% (6/6), done.
>>> Writing objects: 100% (12/12), 998 bytes | 499.00 KiB/s, done.
>>> Total 12 (delta 2), reused 0 (delta 0), pack-reused 0
>>> remote: Resolving deltas: 100% (2/2), done.
>>> To https://github.com/kingabzpro/DataCamp-Git-Merge-Guide.git
>>>  * [new branch]      main -> main
>>> branch 'main' set up to track 'origin/main'.

рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд░рд┐рдореЛрдЯ рдФрд░ рд▓реЛрдХрд▓ рджреЛрдиреЛрдВ README.md рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рдЖрдк GitHub рдлрд╝рд╛рдЗрд▓ рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ тАЬ..Git merge..тАЭ рдХреЛ тАЬ..Sit-Merge..тАЭ рдореЗрдВ рдмрджрд▓реЗрдВ рдФрд░ рдлрд┐рд░ рдмрджрд▓рд╛рд╡ рдХрдорд┐рдЯ рдХрд░реЗрдВред┬а

Making Changes in GitHub Editor

GitHub рдПрдбрд┐рдЯрд░ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛

рдлрд┐рд░, рд▓реЛрдХрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ, README.md рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓рдХрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕рд░рд▓ рд╢реАрд░реНрд╖рдХ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдмрджрд▓рд╛рд╡ рдХрдорд┐рдЯ рдХрд░реЗрдВред┬а

echo "# How to Resolve Merge Conflicts in Git Tutorial" > README.md
git commit -am "local branch changes in README.md"

>>> [main c677a13] local branch changes in README.md
>>>  1 file changed, 1 insertion(+), 4 deletions(-)

рдЕрдВрдд рдореЗрдВ, рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рдкреБрд╢ рдХрд░реЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Git рдиреЗ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд╕рдВрдХреЗрдд рджрд┐рдП рд╣реИрдВред┬а

git push


>>> To https://github.com/kingabzpro/DataCamp-Git-Merge-Guide.git
>>>  ! [rejected]        main -> main (fetch first)
>>> error: failed to push some refs to 'https://github.com/kingabzpro/DataCamp-Git-Merge-Guide.git'
>>> hint: Updates were rejected because the remote contains work that you do
>>> hint: not have locally. This is usually caused by another repository pushing
>>> hint: to the same ref. You may want to first integrate the remote changes
>>> hint: (e.g., 'git pull ...') before pushing again.
>>> hint: See the 'Note about fast-forwards' in 'git push --help' for details.

рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдВрдХреЗрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗ, рдпрд╛рдиреА рдкреБрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ pull рдХрд░реЗрдВрдЧреЗред┬а

Pull рдХрд░рддреЗ рд╕рдордп README.md рдореЗрдВ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓рддрд╛ рд╣реБрдИред рд╣рдо Notepad рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓реА рдареАрдХ рдХрд░ рд╕рдХрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬрд╝реБрдЕрд▓ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред┬а

git pull


>>> remote: Enumerating objects: 5, done.
>>> remote: Counting objects: 100% (5/5), done.
>>> remote: Compressing objects: 100% (2/2), done.
>>> remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
>>> Unpacking objects: 100% (3/3), 681 bytes | 75.00 KiB/s, done.
>>> From https://github.com/kingabzpro/DataCamp-Git-Merge-Guide
>>>    aaf149d..49b7d14  main       -> origin/main
>>> Auto-merging README.md
>>> CONFLICT (content): Merge conflict in README.md
>>> Automatic merge failed; fix conflicts and then commit the result.

Merge рдЯреВрд▓ Meld рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ Meld GUI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рджрд┐рдЦрд╛рдПрдЧрд╛ред┬а┬а┬а

git mergetool

>>> Merging:
>>> README.md

>>> Normal merge conflict for 'README.md':
>>>   {local}: modified file
>>>   {remote}: modified file

рддреАрди рдХреЙрд▓рдо рд╣реЛрддреЗ рд╣реИрдВ: README_LOCAL_473.md, README.md, рдФрд░ README_LOCAL_473.mdред рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдореЛрдЯ рдмрджрд▓рд╛рд╡ рд╕рд╣реА рд╣реИрдВ, рддреЛ рд░рд┐рдореЛрдЯ рдХреЙрд▓рдо рдореЗрдВ рдХрд╛рд▓реЗ рддреАрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ; рдФрд░ рдпрджрд┐ рдЖрдк рд▓реЛрдХрд▓ рдмрджрд▓рд╛рд╡ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдХрд▓ рдХреЙрд▓рдо рдореЗрдВ рдХрд╛рд▓реЗ рддреАрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЗрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реИред┬а

Git: Conflict Resolved Using mergetool Meld

Merge рдЯреВрд▓ Meld рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдирд╛

рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓ рд╕реЗрд╡ рдХрд░реЗрдВ рдФрд░ рдХрдорд┐рдЯ рдХрд░реЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдкреБрд╢ рдХрд░рддреЗ рд╕рдордп рдЕрдм рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдЖрддреАред

git commit -am "remote main branch conflict resolved"
git push

>>> Enumerating objects: 16, done.
>>> Counting objects: 100% (16/16), done.
>>> Delta compression using up to 4 threads
>>> Compressing objects: 100% (6/6), done.
>>> Writing objects: 100% (10/10), 1.08 KiB | 550.00 KiB/s, done.
>>> Total 10 (delta 2), reused 0 (delta 0), pack-reused 0
>>> remote: Resolving deltas: 100% (2/2), completed with 1 local object.
>>> To https://github.com/kingabzpro/DataCamp-Git-Merge-Guide.git
>>>    49b7d14..8f5c3aa  main -> main

рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЛрдХрд▓ рдФрд░ рд░рд┐рдореЛрдЯ рджреЛрдиреЛрдВ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдП рд╣реИрдВред рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрдЯрд┐рд╕реНрдЯреНрд╕ рдФрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдЗрдВрдЬреАрдирд┐рдпрд░реНрд╕ рд░реЛрдЬрд╝рд╛рдирд╛ рдЗрди рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред Git рдСрдкрд░реЗрд╢рдиреНрд╕ рдореЗрдВ рдЕрдкрдиреА рджрдХреНрд╖рддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Introduction to Git рдХреЛрд░реНрд╕ рдХрд░реЗрдВред┬а

рдирд┐рд╖реНрдХрд░реНрд╖

Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛рдирд╛ рдПрдХ рдЬрдЯрд┐рд▓ рдФрд░ рдЬреЛрдЦрд┐рдорднрд░рд╛ рдХрд╛рд░реНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреЛрд╖рдкреВрд░реНрдг рдХреЛрдб рдорд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред рдорд░реНрдЬ рдЯреВрд▓реНрд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рджреЗрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдФрд░ рд╕реБрд▓рдЭрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ Git рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдХреНрдпреЛрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕реБрд▓рдЭрд╛рдпрд╛ рдЬрд╛рдПред рд╣рдордиреЗ рд╡рд┐рднрд┐рдиреНрди рдорд░реНрдЬ рдФрд░ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧреА Git рдХрдорд╛рдВрдбреНрд╕, рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдЯреВрд▓реНрд╕ рднреА рдХрд╡рд░ рдХрд┐рдПред рдЕрдВрддрд┐рдо рдЦрдВрдб рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдмрдирд╛рдпрд╛ рдФрд░ рдЙрд╕реЗ рд▓реЛрдХрд▓ рд╡ рд░рд┐рдореЛрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реБрд▓рдЭрд╛рдпрд╛ред┬а

рдпрджрд┐ рдЖрдк Git рдореЗрдВ рдирдП рд╣реИрдВ рдФрд░ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкрдврд╝реЗрдВ: Intro to Git and GitHub Tutorialред┬а

Abid Ali Awan

рд▓реЗрдЦрдХ

Abid Ali Awan

рдПрдХ рдкреНрд░рдорд╛рдгрд┐рдд рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрдЯрд┐рд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд╡рд╛рдЪрд╛рд░реА рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд░рд╣рддрд╛/рд░рд╣рддреА рд╣реВрдБред рд╕реНрдкреАрдЪ рд░рд┐рдХреЙрдЧреНрдирд┐рд╢рди, рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ, MLOps, рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ AI рдФрд░ NLP рдореЗрдВ рдордЬрдмреВрдд рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдРрд╕реЗ рдмреБрджреНрдзрд┐рдорд╛рди рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдирд┐рдЦрд╛рд░реА рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓ рд╕рдХреЗрдВред рддрдХрдиреАрдХреА рджрдХреНрд╖рддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЬрдЯрд┐рд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рднреА рдирд┐рдкреБрдг рд╣реВрдБред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВ рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕ рдкрд░ рдПрдХ рдорд╛рдВрдЧ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓рд╛/рд╡рд╛рд▓реА рдмреНрд▓реЙрдЧрд░ рдмрди рдЧрдпрд╛/рдЧрдИ рд╣реВрдБ, рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░реЛрдлреЗрд╢рдирд▓реЛрдВ рдХреЗ рдмрдврд╝рддреЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдФрд░ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛/рдХрд░рддреА рд╣реВрдБред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореИрдВ рдХрдВрдЯреЗрдВрдЯ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕рдВрдкрд╛рджрди рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реВрдБ, рдмрдбрд╝реЗ рднрд╛рд╖рд╛ рдореЙрдбрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдРрд╕рд╛ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдФрд░ рдЖрдХрд░реНрд╖рдХ рдХрдВрдЯреЗрдВрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛/рд░рд╣реА рд╣реВрдБ рдЬреЛ рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рджреЛрдиреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдн рдЙрдард╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗред

FAQs

Git рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд░реНрд╡реЛрддреНрддрдо рдЙрдкрд╛рдп рдХреНрдпрд╛ рд╣реИрдВ?

рдЬреЛрдЦрд┐рдо рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  • рдирдП рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрд╢рд╛ рддрд╛рдЬрд╝рд╛ рдмрджрд▓рд╛рд╡ pull рдХрд░реЗрдВ (git pull origin main)ред
  • рдЕрдкрдиреА рдЯреАрдо рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВ рддрд╛рдХрд┐ рдПрдХ рд╣реА рдХреЛрдб рдХреА рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред
  • рдЫреЛрдЯреЗ, рдмрд╛рд░-рдмрд╛рд░ рдХрдорд┐рдЯ рдХрд░реЗрдВтАФрдмрдбрд╝реЗ, рдЬрдЯрд┐рд▓ рдХрдорд┐рдЯреНрд╕ рд╕реЗ рдмреЗрд╣рддрд░ред
  • рдлрд╝реАрдЪрд░ рдмреНрд░рд╛рдВрдЪреЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд╕реАрдзреЗ main рдкрд░ рдХрдорд┐рдЯ рди рдХрд░реЗрдВред
  • рдорд░реНрдЬ рд╕реЗ рдкрд╣рд▓реЗ git diff рдЪрд▓рд╛рдПрдБ рддрд╛рдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдЬрд▓реНрдж рджрд┐рдЦ рдЬрд╛рдПрдБред
рдХреНрдпрд╛ рдореИрдВ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рдмрд┐рдирд╛ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛ рд╕рдХрддрд╛/рд╕рдХрддреА рд╣реВрдБ?

рд╣рд╛рдБ! рдХрдИ GUI-рдЖрдзрд╛рд░рд┐рдд Git рдЯреВрд▓реНрд╕ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд░реЗрдЬрд╝реЛрд▓реНрдпреВрд╢рди рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ:

  • VS Code: рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдХреЛ "Accept Incoming" рдФрд░ "Accept Current" рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред
  • GitKraken: рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬрд╝реБрдЕрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреЗрддрд╛ рд╣реИред
  • Meld / Beyond Compare: рд╡рд┐рдЬрд╝реБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдВрддрд░ рддреБрд▓рдирд╛ рдФрд░ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдорд░реНрдЬ рдЯреВрд▓реНрд╕ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реНрдб рд╡рд┐рдЬрд╝реБрдЕрд▓ рдЯреВрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП git mergetool рдЪрд▓рд╛рдПрдБред
рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдореБрдЭреЗ рдмрд╛рд░-рдмрд╛рд░ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреНрдпреЛрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ?

рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг:

  • рдЖрдк рд╕реНрдЯреЗрдЬ (git add) рдФрд░ рдХрдорд┐рдЯ (git commit -m "Resolved conflict") рдХрд░рдирд╛ рднреВрд▓ рдЧрдПред
  • рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рд╕рд╣рдпреЛрдЧреА рдиреЗ рдирдП рдЯрдХрд░рд╛рддреЗ рдмрджрд▓рд╛рд╡ рдкреБрд╢ рдХрд░ рджрд┐рдПред git pull --rebase рдЖрдЬрд╝рдорд╛рдПрдБред
  • рдЖрдкрдиреЗ рдкреБрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдорд░реНрдЬ рдХрд░рдиреЗ рд▓рдЧреЗред рд╣рдореЗрд╢рд╛ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рдмрд╛рдж git push рдЪрд▓рд╛рдПрдБред
рдпрджрд┐ рдореИрдВ рдЧрд▓рддреА рд╕реЗ git merge --abort рдЪрд▓рд╛ рджреВрдБ рддреЛ рдХреНрдпрд╛ рдХрд░реВрдБ?

рдпрджрд┐ рдЖрдкрдиреЗ рдорд░реНрдЬ рдЕрдмреЙрд░реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рджреЛрдмрд╛рд░рд╛ рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк:

  • рд╕реАрдзреЗ рдорд░реНрдЬ рдХрдорд╛рдВрдб рдлрд┐рд░ рдЪрд▓рд╛рдПрдБ (git merge <branch-name>)ред
  • git reflog рд╕реЗ рдЕрдмреЙрд░реНрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗрдВ рдФрд░ рдЬрд╝рд░реВрд░рдд рд╣реЛ рддреЛ рдЙрд╕реЗ рдмрд╣рд╛рд▓ рдХрд░реЗрдВред
рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд╕реБрд▓рдЭрд╛рддреЗ рд╕рдордп рдХреА рдЧрдИ рдЧрд▓рддреА рдХреИрд╕реЗ рдЙрд▓рдЯреЗрдВ?

рдпрджрд┐ рдЖрдкрдиреЗ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рд░реЗрдЬрд╝реЛрд▓реНрдпреВрд╢рди рдореЗрдВ рдЧрд▓рддреА рдХрд░ рджреА:

  • git reset --hard HEAD рдЪрд▓рд╛рдХрд░ рд╕рднреА рдмрджрд▓рд╛рд╡ рдЫреЛрдбрд╝реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред
  • git checkout -- <filename> рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реМрдЯрд╛рдПрдБред
  • рдпрджрд┐ рдЧрд▓рддреА рдкрд╣рд▓реЗ рд╣реА рдХрдорд┐рдЯ рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ git revert <commit-hash> рд╕реЗ рдмрджрд▓рд╛рд╡ рдЙрд▓рдЯрдиреЗ рд╡рд╛рд▓рд╛ рдирдпрд╛ рдХрдорд┐рдЯ рдмрдирд╛рдПрдБред
рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреИрд╕реЗ рд╕реБрд▓рдЭрд╛рдПрдБ?

Git рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдорд░реНрдЬ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдЬреИрд╕реЗ, рдЗрдореЗрдЬ, PDFs)ред рд╕рдорд╛рдзрд╛рди:

  • рдореИрдиреНрдпреБрдЕрд▓реА рддрдп рдХрд░реЗрдВ рдХрд┐ рдХреМрди-рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рд░рдЦрдирд╛ рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдмрджрд▓реЗрдВред
  • git checkout --theirs <filename> рдпрд╛ git checkout --ours <filename> рд╕реЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд░рдЦреЗрдВред
  • рд░рд┐рдЬрд╝реЙрд▓реНрд╡реНрдб рдлрд╝рд╛рдЗрд▓ рдХрдорд┐рдЯ рдХрд░реЗрдВ (git add <filename> && git commit -m "Resolved binary file conflict")ред
git merge --abort рдФрд░ git reset --merge рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  • git merge --abort: рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдорд░реНрдЬ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдорд░реНрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • git reset --merge: рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рд╕реНрдЯреЗрдЬреНрдб рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рдЦрддрд╛ рд╣реИтАФрдпрджрд┐ рдЖрдк рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
GitHub рдкрд░ рдкреБрд╢ рдХрд░рддреЗ рд╕рдордп рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреИрд╕реЗ рд╕реБрд▓рдЭрд╛рдПрдБ?

рдпрджрд┐ git push рдкрд░ рдорд░реНрдЬ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рддреНрд░реБрдЯрд┐ рдЖрддреА рд╣реИ, рддреЛ рдпреЗ рдХрд░реЗрдВ:

  • рддрд╛рдЬрд╝рд╛ рдмрджрд▓рд╛рд╡ pull рдХрд░реЗрдВ: git pull origin main --rebase
  • рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдореИрдиреНрдпреБрдЕрд▓реА рд╕реБрд▓рдЭрд╛рдПрдБ рдЕрдкрдиреА рд▓реЛрдХрд▓ рдмреНрд░рд╛рдВрдЪ рдореЗрдВред
  • рд╕реНрдЯреЗрдЬ рдФрд░ рдХрдорд┐рдЯ рдХрд░реЗрдВ рд░рд┐рдЬрд╝реЙрд▓реНрд╡реНрдб рдлрд╝рд╛рдЗрд▓реЗрдВ:
git add <conflicted-file>
git commit -m "Resolved merge conflict"
  • рдлрд┐рд░ рд╕реЗ рдкреБрд╢ рдХрд░реЗрдВ: git push origin main
рд░реАрдмреЗрд╕ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ?

рд░реАрдмреЗрд╕ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк git rebase <branch> рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрджрд▓рд╛рд╡ рд╕рд╛рдлрд╝-рд╕реБрдерд░реЗ рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛ рдкрд╛рддреЗред рд╕рдорд╛рдзрд╛рди:

  • рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреНрд╕ рдореИрдиреНрдпреБрдЕрд▓реА рд╕реБрд▓рдЭрд╛рдПрдБ, рдлрд┐рд░ git rebase --continue рдЪрд▓рд╛рдПрдБред
  • рдпрджрд┐ рдЖрдк рд░реАрдмреЗрд╕ рд░рджреНрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ git rebase --abort рдЪрд▓рд╛рдПрдБред
  • рдпрджрд┐ рдЖрдк рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯреЗрдб рдХрдорд┐рдЯ рдХреЛ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ git rebase --skip рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХреНрдпрд╛ Git рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдмрд┐рдирд╛ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ рдХреЗ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

Git рдореЗрдВ рдПрдХ рдСрдЯреЛ-рдорд░реНрдЬ рд╕реНрдЯреНрд░реИрдЯреЗрдЬреА рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрднреА-рдХрднреА рдорджрдж рдХрд░рддреА рд╣реИ:

  • git merge -X theirs <branch> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдореЗрд╢рд╛ рджреВрд╕рд░реА рдмреНрд░рд╛рдВрдЪ рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реНрд╡реАрдХрд╛рд░ рд╣реЛрдВред
  • git merge -X ours <branch> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреА рдмреНрд░рд╛рдВрдЪ рдХреЗ рдмрджрд▓рд╛рд╡ рдмрдиреЗ рд░рд╣реЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдкреВрд░реНрдгрдд: рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИтАФрд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╡рд┐рд╖рдп