
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЛ рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд░рд┐рдорд╛рдг рдХреЗ рдПрдХ рдХреНрд░рдо рд╕реЗ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред рдЖрдк рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрднреНрдпрд╕реНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЖрд╕рд╛рди рд░реЛрд▓рдмреИрдХ рдХреА рдЖрджрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рд╕рдВрдШрд░реНрд╖ рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЗрддрдирд╛ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реАрд░рддрд╛рдкреВрд░реНрд╡рдХ рдЙрди рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбрд╛рдпрд░реЗрдХреНрдЯрдо рдореЗрдВ рд╣рдорд╛рд░реА рдЯреАрдо рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реА рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ 1C рджреЗрдЦрд╛, рддреЛ рдЖрдк рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╣рдорд╛рд░реЗ "рдЧреНрд░рд╛рд╣рдХреЛрдВ" рдХреЗ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ред рдЗрд╕ рдмрд╣реБрдд рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд╛рдзрд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рд╣рдорд╛рд░реА рдЯреАрдо рдиреЗ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрдХреЛрдВ рдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред рд╣рдо Visual Studio, ReSharper рдФрд░ IDEA рд╕реЗ рдЖрдзреБрдирд┐рдХ рдЪрд┐рдкреНрд╕ рдХреЗ рд╕рд╛рде рдЦрд░рд╛рдм рд╣реЛ рдЧрдП рд╣реИрдВред рдЖрд╡реЗрджрдХреЛрдВ рдиреЗ рдорд╛рдВрдЧ рдХреА рдХрд┐ рд╣рдо рдмреЙрдХреНрд╕ рдХреЛ рдЙрдкрдХрд░рдг рд╕реЗ рдмрд╛рд╣рд░ рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣реА рдХрдард┐рдирд╛рдИ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ (рдЕрдиреБрдмрдВрдз, рд░рд┐рдкреЛрд░реНрдЯ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, рдореЙрдбреНрдпреВрд▓) рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдореЗрдВ, рдПрдХ рддрд╛рд▓рд╛ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдЗрдХрд╛рдИ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рддрдм рддрдХ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд▓реЗрддрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬ рджрд┐рдпрд╛ред рдЗрд╕ рд╕рдордп рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦрддреЗ рд╣реИрдВред рд╡рд┐рдХрд╛рд╕ рдХреБрдЫ рд╣рдж рддрдХ SVN рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдпрд╛ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдб рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рднреЗрдЬрдиреЗ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛ рд░рд╣рд╛ рдерд╛ред рдореИрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдПрдХ рд╣реАред
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдореЗрдВ рдХрдИ рд╣реИрдВрдбрд▓рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЦреЛрд▓рдирд╛, рдмрдЪрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рддреНрдпрд╛рдкрди, рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд▓рд┐рдЦрдирд╛) рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЗрдХрд╛рдИ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрдЯрди рд▓реЙрдХ рдХрд░реЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рдпрд╛ рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдХрд╛рд░реНрдп рдмрдирд╛рдПрдВред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдПрдкреАрдЖрдИ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╕рднреА рдХреЛрдбред рд╣реИрдВрдбрд▓рд░ рдРрд╕реА рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрдИ рд╡рд┐рдзрд┐рдпрд╛рдВ рдирд┐рд╣рд┐рдд рд╣реИрдВред рдЬрдм рджреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЗ рдЖрд╢реНрд░рд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ рдерд╛ред
рд╣рдорд╛рд░реЗ рдкреНрд░реИрдХреНрдЯрд┐рд╢рдирд░ рдкреВрд░реЗ рд░рд╛рд╕реНрддреЗ рдЧрдПред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЪреБрдкрдЪрд╛рдк рдЦреБрдж рдХреЛ рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреА "рдЕрд╡реИрдз" рдирдХрд▓ рдмрддрд╛рдпрд╛, рдЕрд╡рд░реБрджреНрдз рднрд╛рдЧ рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреА рдФрд░ рд╣рдорд╛рд░реЗ рдХрдорд┐рдЯреНрд╕ рдХреЛ рдЦреБрдж рдореЗрдВ рдорд┐рд▓рд╛ рд▓рд┐рдпрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ git рдХреЗ рддрд╣рдд рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдЯреВрд▓реНрд╕ (git bash, SourceTree рдФрд░ рдЕрдиреНрдп) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддрд┐рдмрджреНрдз рдерд╛ред рд╣рдордиреЗ рдЕрдкрдирд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рджрд┐рдпрд╛:
- рд╣рдорд╛рд░реА рдЯреАрдо рдиреЗ рдордВрдЪ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЛ рдХрдо рдХрд░рдХреЗ рдЖрдВрдХрд╛ред рдмрдбрд╝рд╛ рд╕рдореНрдорд╛рди рдФрд░ рд╕рдореНрдорд╛рди!
- рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред Git рдХреЗ рд╕рд╛рде, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╣рд╛рде рдЕрдирдХрд╣реЗ рд╣реИрдВ рдФрд░ рд╡рд╣ рдХреБрдЫ рднреА рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдмреЗрд╡рдХреВрдл рд╣реЛрдЧреА, рдЕрдкрд╣рд░рдг рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╕рднреА git рдХрдорд╛рдВрдб рдХреЛ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХрд░рдиреЗ рд╕реЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдЯреАрдо рдкрд╛рдЧрд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред

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

Libgit2sharp
рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдЪреБрдирд╛:
- рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдкрд┐рдд git рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ, рдЗрд╕реЗ Process.Start рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреАрдВрдЪрдХрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВред
- Libgit2sharp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ pinvoke рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ libgit2 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред
рдпрд╣ рд╣рдореЗрдВ рдкреНрд░рддреАрдд рд╣реБрдЖ рдХрд┐ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИред рд╡реНрдпрд░реНрде рдореЗрдВред рдореИрдВ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХреНрдпреЛрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдиреЗ рд╣рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд░реЛрд▓ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ред
рдкрд╣рд▓рд╛ рд╡рд┐рдХрд╛рд╕ рдпрд╛рддреНрд░рд╛
рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреЗрдВрдЪ рдЦрд░рд╛рдм рдХрд░рдирд╛ рддреЗрдЬ рдерд╛, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рд╣рдордиреЗ рдШрд╛рд╡реЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА рдЬреЛ рдЦреЛрд▓реЗ рдЧрдП рдереЗ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рддрдВрддреНрд░ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдерд╛ред рдЬреЛ рдХреБрдЫ рднреА git status
рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рд╡рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдЕрдВрддрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ git gui рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рджреВрд╕рд░рд╛ рд╡рд┐рдХрд╛рд╕ рдпрд╛рддреНрд░рд╛
рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдерд╛ред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдХреЗ рд╕рд╛рде, рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИрдВред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдиреЗ рд╢реЛрд░ рдкреИрджрд╛ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реБрдЖ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд╕реНрдерд╛рдПрдВ рдмрджрд▓ рдЧрдИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ред
рдЗрдХрд╛рдИ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдЧреАрдХреГрдд рдлрд╝рд╛рдЗрд▓реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдорд╛рдирд╡-рдкрдардиреАрдп рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, GUI рдХреЗ рд╕рдорд╛рдиред JSON рдореЗрдВ рдЗрдХрд╛рдИ рдкреНрд░рдХрд╛рд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдорд╛рдирд╡-рдкрдардиреАрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Jsondiffpatch рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдкрд╣рд▓реЗ" рдФрд░ "рдХреЗ рдмрд╛рдж" json рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ JSON рддреБрд▓рдирд╛ (рдЗрд╕рдХреЗ рдмрд╛рдж рдореИрдВ jsondiff рдХрд╣реВрдВрдЧрд╛) рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрд╛ред рд╣рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреБрд▓рдирд╛ рдкрд░рд┐рдгрд╛рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ рдорд╛рдирд╡-рдкрдардиреАрдп рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддреЗ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдкреЗрдбрд╝ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рджреЗрдЦрдиреЗ рд╕реЗ рдЫрд┐рдкреА рд╣реБрдИ рдереАрдВред
рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдХрд╛рдорд╡рд╛рд╕рдирд╛ рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реЛрдирд╛ реи
рд▓рд┐рдмрд┐рдЯ 2 рдиреЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЖрд╢реНрдЪрд░реНрдп рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХреАред рдХреБрдЫ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЙрдЪрд┐рдд рд╕рдордп рдХреА рд╢рдХреНрддрд┐ рд╕реЗ рдкрд░реЗ рдерд╛ред рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдпрд╛рдж рд╣реИред
рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ рдХрдард┐рди рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╛рдирдХ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдкрдбрд╝рддрд╛ рд╣реИред "рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ" рд╣рдореЗрдВ рд░реИрдкрд░ рдмрддрд╛рддреА рд╣реИред рдареАрдХред рдЖрдк рдХреЛрд╕ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдбрд┐рдмрдЧ рдореЗрдВ рдореВрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдЧрд┐рд░рд╛ рд╣реБрдЖ рдорд╛рдорд▓рд╛ рджреЛрд╣рд░рд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд░рд┐рд▓реАрдЬ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдФрд░ рдлрд┐рд░ рд╕реЗ рдЧрд┐рд░ рдЬрд╛рддреЗ рд╣реИрдВред
рдпрджрд┐ рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдЙрдкрдХрд░рдг, рд╕реЛрд░реНрд╕рдЯреНрд░реА рдХрд╛ рдХрд╣рдирд╛ рд╣реИ, libgit2sharp рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз рди рд╣реЛрдВред рдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдЕрд▓рдЧ рд╣реИ рдЬрдорд╛ рджреЗрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдЖрдк рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░, git status
рдПрдирд╛рд▓реЙрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ 40 рд╕реЗрдХрдВрдб рд▓рдЧреЗред рдЪрд╛рд▓реАрд╕ рдХрд╛рд░реНрд▓! рдЗрд╕реА рд╕рдордп, рдХрдВрд╕реЛрд▓ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдЧрд┐рдЯ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд┐рди рдмрд┐рддрд╛рдПред рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рд▓рд┐рдмрдЬреАрдЯ 2 рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреА рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╕рдВрд╢реЛрдзрди рдХрд╛ рд╕рдордп рдЕрд▓рдЧ рд╣реИ, рддреЛ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ / рдпрд╛ рдЕрдВрджрд░ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдВрджрд░ рдирд╣реАрдВ рдЪрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЕрдиреБрдХреВрд▓рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдВрд╕реЛрд▓ рдЧрд┐рдЯ рдореЗрдВ рднреА рд╣реИред рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ, рд▓реЗрдХрд┐рди git index mtime рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ git рдиреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдБрдЪ рдХреАред
рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдХрд░реАрдм, рд╣рдорд╛рд░реА рдЯреАрдо рдиреЗ рдЖрд╡реЗрджрди рдЯреАрдо рдХреА рдЗрдЪреНрдЫрд╛рдУрдВ рдХреА fetch + rebase + autostash
рдФрд░ git pull
рдХреЛ fetch + rebase + autostash
рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ред рдФрд░ рдлрд┐рд░ рдмрдЧ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдпрд╛, рдЬрд┐рд╕рдореЗрдВ "рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ" рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдерд┐рддрд┐, рдкреБрд▓ рдФрд░ рд░рд┐рдмрд╛рд╕ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдСрдЯреЛ рдорд░реНрдЬ
рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИрдВ:
- рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓ рдореЗрдВ рджреЗрдЦрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб, рдЪрд┐рддреНрд░, рд╕рдВрд╕рд╛рдзрдиред рдРрд╕реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ git рдХрд░рддрд╛ рд╣реИред
- JSON рдлрд╛рдЗрд▓реЗрдВ рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рд╡реЗрд╢ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ GUI рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЕрдкрдиреЗ рдЖрдк рд░реАрдХреНрд░рд┐рдПрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЙрдкрдХрд░рдг рддреБрд░рдВрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдбрд╛рд▓рддрд╛ рд╣реИред
рдПрдХ рдирдП рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рд╢рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ рдФрд░ рдмрдЪрдд рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛, рдФрд░ рд╕рд░реНрдЧреЗрдИ рдЗрдХрд╛рдИ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд╢реИрд▓реА рджреЗрдЧрд╛ред рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдПрдХ рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рджреЛрдиреЛрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рдФрд░ рдлрд┐рд░ рд╕рд╛рд╢рд╛ рдиреЗ рд╕рдВрдкрддреНрддрд┐ 1 рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ред рд╕рд░реНрдЧреЗрдИ рдиреЗ рдкреНрд░реЙрдкрд░реНрдЯреА 2 рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдИ рдФрд░ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдКрдкрд░ рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЧрд┐рдЯ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдорд╛рди рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИрдВред
рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╕рд╛рдзрди рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред
рд╕рдВрдШрд░реНрд╖ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджреЛ JSON рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:
JSON рдмреЗрд╕ рдЧрд┐рдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
рд╣рдорд╛рд░реА JSON рдЧреАрддрд╛ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
рдЙрдирдХрд╛ JSON рдПрдХ рдЧрд┐рдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ред
Jsondiff рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЖрдзрд╛рд░-> рд╣рдорд╛рд░реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдЪ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдореА JSON рдХреЛ P1 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
Jsondiff рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЖрдзрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВ-> рдЙрдирдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдЪ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдореА JSON рдХреЛ P2 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдкреИрдЪ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж P1 === P2ред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ P1 рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦреЗрдВред
- рдЕрдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рдореЗрдВ (рдЬрдм рдПрдХ рд╕рдВрдШрд░реНрд╖ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИ), рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдкреА 1 рдФрд░ рдкреА 2 рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред рд╣рдо рдбрд┐рд╕реНрдХ рдкрд░ рдЪрдпрди рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдорд░реНрдЬ рдХреЗ рдмрд╛рдж, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рддреНрдпрд╛рдкрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд░рд╛рдЬреНрдп рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЖрдП рд╣реИрдВ, рддреЛ рдорд░реНрдЬ рд░рджреНрдж рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЗ рдпрд╛ рддреАрд╕рд░реЗ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рд╡рд┐рд▓рдп рдЕрдкреНрд░рд┐рдп рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╣реЛрдЧрд╛ред
рдкрд░рд┐рдгрд╛рдо
- рдХрд╕рд╛рдИ рдЦреБрд╢ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХрд╛рдиреВрдиреА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЧрд┐рдЯ рдХреА рд╢реБрд░реВрдЖрдд рдиреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЧрддрд┐ рджреАред
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рд▓рдп рдЖрдорддреМрд░ рдкрд░ рдЬрд╛рджреВ рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВред
- рд╣рдо git рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ libgit2 рдХреА рднрд╡рд┐рд╖реНрдп рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рд░рдЦрддреЗ рд╣реИрдВред