Git diff рдЖрдкрдХреЗ рдХреЛрдб рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдореЗрдВ рд╣реЛ рд░рд╣реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЦрд┐рдбрд╝рдХреА рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд┐рднрд┐рдиреНрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИтАФрдЪрд╛рд╣реЗ рд╡рд╣ рдЖрдкрдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рдо рдХреА рддреБрд▓рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдЯреЗрдЬ рдХреА рдЧрдИ рдЪреАрдЬрд╝реЛрдВ рд╕реЗ рд╣реЛ рдпрд╛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдФрд░ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ред рдЗрд╕реЗ Git рдХрд╛ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рд╕рдордЭреЗрдВ, тАЬрдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИ?тАЭ рдЬрдм рдЖрдк git diff рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ Git рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓рд╛рдЗрди-рдмрд╛рдп-рд▓рд╛рдЗрди рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛, рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рдмрджрд▓рд╛ред
Git diff рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рджреГрд╢реНрдп рджреЗрдХрд░ рдХреЛрдб рдХреНрд╡рд╛рд▓рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рд╣рдо рдЗрд╕ рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗтАФрдмреЗрд╕рд┐рдХ рддреБрд▓рдирд╛ рд╕реЗ рд▓реЗрдХрд░ рдЙрдиреНрдирдд рддрдХрдиреАрдХреЛрдВ рддрдХтАФрдЬреЛ рдЖрдкрдХреЗ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдФрд░ рдЯреАрдо рд╕рд╣рдпреЛрдЧ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдЧреАред
рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрди Git рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдмреЗрд╕рд┐рдХ Git рд╡рд░реНрдХрдлрд╝реНрд▓реЛ (init, add, commit)
Git рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдФрд░ рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛
рдмреНрд░рд╛рдВрдЪ рдФрд░ рдЙрдирдХрд╛ рдХрд╛рд░реНрдп-рддрд░реАрдХрд╛
рдХрдорд┐рдЯреНрд╕ рдФрд░ рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА
рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ (рдЗрдВрдбреЗрдХреНрд╕)
рдпрджрд┐ рдЖрдкрдХреЛ рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпреЗ рд╕рдВрд╕рд╛рдзрди рд╕рд╣рд╛рдпрдХ рд╣реЛрдВрдЧреЗ:
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ Git рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рдХрдорд╛рдВрдбреНрд╕ рдЯрд░реНрдорд┐рдирд▓ рдпрд╛ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдореЗрдВ рдЪрд▓рд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП Git Diff рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИтАФрдЪрд╛рд╣реЗ рд╡реЗ рдЕрдХреЗрд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдпрд╛ рд╕реИрдХрдбрд╝реЛрдВ рдХреА рдЯреАрдо рдореЗрдВред git diff рдХреЗ рдмрд┐рдирд╛, рдЖрдк рдЕрдВрджрд╛рдЬрд╝ рд▓рдЧрд╛рддреЗ рд░рд╣ рдЬрд╛рдПрдВрдЧреЗ рдХрд┐ рдХрд┐рди рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЯреНрд░рдмрд▓рд╢реВрдЯрд┐рдВрдЧ рдФрд░ рд╕рд╣рдпреЛрдЧ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
Git diff рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдкреНрд░рднрд╛рд╡реА рд░рд┐рд╡реНрдпреВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЬрд╝рд░рд┐рдП рдХреНрд╡рд╛рд▓рд┐рдЯреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреА рдиреАрдВрд╡ рд░рдЦрддрд╛ рд╣реИред рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп, git diff рд╡рд╣ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рдХреНрдпрд╛ рдмрджрд▓рд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдХрд┐ рд╡реЗ рдмрджрд▓рд╛рд╡ рдХреНрдпреЛрдВ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВред┬а
рдХреЛрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдпрд╣ рд╕реАрдзреА рджреГрд╢реНрдпрддрд╛ рдЯреАрдореЛрдВ рдХреЛ рдорд╛рдирдХ рдмрдирд╛рдП рд░рдЦрдиреЗ рдФрд░ рдмрдЧреНрд╕ рдХреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИред
рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬрдЯрд┐рд▓ рд╣реЛрддреЗ рдЬрд╛рддреЗ рд╣реИрдВ, git diff рдХрдИ рдкреНрд░рдореБрдЦ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
рдкрд░рд┐рд╡рд░реНрддрди рд╕рддреНрдпрд╛рдкрди : рдареАрдХ-рдареАрдХ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрдорд┐рдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЧрд▓рддреА рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛрдб рдпрд╛ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдмрджрд▓рд╛рд╡ рд╢рд╛рдорд┐рд▓ рди рд╣реЛ рдЬрд╛рдПрдБ
рдиреЙрд▓реЗрдЬ рдЯреНрд░рд╛рдВрд╕рдлрд░ : рдкреВрд░реА рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝реЗ рдмрд┐рдирд╛ рд╕рдордЭреЗрдВ рдХрд┐ рдЯреАрдордореЗрдЯреНрд╕ рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ
рдХреЙрдирдлрд╝реНрд▓рд┐рдХреНрдЯ рд╕рдорд╛рдзрд╛рди : рдорд░реНрдЬ рдХреЗ рджреМрд░рд╛рди рдмрджрд▓рд╛рд╡ рдХрд╣рд╛рдБ рдФрд░ рдХреИрд╕реЗ рдЯрдХрд░рд╛ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдкрд╣рдЪрд╛рдиреЗрдВ
рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг : рдпрд╣ рдЯреНрд░реИрдХ рдХрд░реЗрдВ рдХрд┐ рдЦрд╛рд╕ рдмрджрд▓рд╛рд╡ рдХрдм рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ, рддрд╛рдХрд┐ рдмрдЧреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдпрд╛ рдлрд╝реАрдЪрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХреЗ
рдЯрд╛рд░реНрдЧреЗрдЯреЗрдб рдХреЛрдб рд░рд┐рд╡реНрдпреВ : рдХреЗрд╡рд▓ рд╡рд╣реА рд╣рд┐рд╕реНрд╕реЗ рджреЗрдЦреЗрдВ рдЬрд┐рдирдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реБрдЖ рд╣реИ, рд╕рдордп рдмрдЪрд╛рдПрдБ рдФрд░ рд░рд┐рд╡реНрдпреВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдмрдврд╝рд╛рдПрдБ
git diff рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕ рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдЗрди рддреБрд▓рдирд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИтАФGit рдХрд╛ тАЬThree-TreeтАЭ рдореЙрдбрд▓ред
Git рдХреА рдереНрд░реА-рдЯреНрд░реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
git diff рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ Git рдХреА рдмреБрдирд┐рдпрд╛рджреА тАЬрдереНрд░реА-рдЯреНрд░реАтАЭ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ред рдирд╛рдо рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпреЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЗрдбрд╝ рдирд╣реАрдВ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╡рд╕реНрдерд╛рдПрдБ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЖрдкрдХрд╛ рдХреЛрдб рдореМрдЬреВрдж рд░рд╣рддрд╛ рд╣реИред┬а
рдЗрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪреЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ Git рдПрдХ рд╕рд╛рде рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ: рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдЖрдкрдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓реЗрдВ), рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ (рдпрд╛ рдЗрдВрдбреЗрдХреНрд╕, рдЬрд╣рд╛рдБ рдмрджрд▓рд╛рд╡ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ), рдФрд░ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА (рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдХрдорд┐рдЯреЗрдб рдЗрддрд┐рд╣рд╛рд╕, рдЬреЛ .git рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ)ред
Source: Hashnode
рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╡реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВтАФрдпрд╣реАрдВ рдЖрдк рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдПрдХ рддреИрдпрд╛рд░реА рдХреНрд╖реЗрддреНрд░ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдЪреБрдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯ рдореЗрдВ рдХрд┐рди рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдЗрд╕реЗ рдПрдХ рд▓реЛрдбрд┐рдВрдЧ рдбреЙрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдкреИрдХреЗрдЬ (рдЖрдкрдХреЗ рдмрджрд▓рд╛рд╡) рд╢рд┐рдкрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред┬а
рдЕрдВрдд рдореЗрдВ, рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдкреВрд░рд╛ рдЗрддрд┐рд╣рд╛рд╕ рдХрдорд┐рдЯреНрд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИтАФрд╕рдордп рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯтАФрдЬреЛ рдЬреБрдбрд╝рдХрд░ рдПрдХ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдЪреЗрди рдмрдирд╛рддреЗ рд╣реИрдВред
Git diff рдЗрдиреНрд╣реАрдВ рддреАрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреА рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдореЗрдВ рддреБрд▓рдирд╛ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк git diff рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдХреЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдпрд╣ рдЖрдкрдХреА рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рд╡реЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рдХрд┐рдП рд╣реИрдВ рдкрд░ рдЕрднреА рд╕реНрдЯреЗрдЬ рдирд╣реАрдВ рдХрд┐рдП рд╣реИрдВред┬а
git diff --staged рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдХреА рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛ рд╣реЛрддреА рд╣реИтАФрдЬреЛ рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред┬а
рдФрд░ git diff HEAD рдЖрдкрдХреА рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕реАрдзреЗ рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рднреА рдЕрдирдХрдорд┐рдЯреЗрдб рдмрджрд▓рд╛рд╡ рджрд┐рдЦрддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡реЗ рд╕реНрдЯреЗрдЬ рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВред
рдпреЗ рддреБрд▓рдирд╛ рдмрд┐рдВрджреБ Git рдореЗрдВ рд╕рднреА рдбрд┐рдл рдСрдкрд░реЗрд╢рдВрд╕ рдХреА рдиреАрдВрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ:
рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА тЖФ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ : рдореИрдВрдиреЗ рдХреМрди-рд╕реЗ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рддрдХ рд╕реНрдЯреЗрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ? (git diff)
рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ тЖФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА : рдореИрдВрдиреЗ рдХреМрди-рд╕реЗ рдмрджрд▓рд╛рд╡ рд╕реНрдЯреЗрдЬ рдХрд┐рдП рд╣реИрдВ рдЬреЛ рдЕрдЧрд▓реА рдХрдорд┐рдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ? (git diff --staged)
рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА тЖФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА : рдореЗрд░реА рд╡рд░реНрдХрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рдХреЗ рдмреАрдЪ рдХреБрд▓ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ? (git diff HEAD)
рдХрдорд┐рдЯреНрд╕ рдХреЗ рдмреАрдЪ : рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдЦрд╛рд╕ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреЛрдб рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИ? (git diff commit1-hash commit2-hash)
рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╕рдордЭрдирд╛ рдЖрдкрдХреЛ рд╡рд╣ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдХреНрдпрд╛, рдХрд╣рд╛рдБ рдФрд░ рдХрдм рдмрджрд▓рд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдЯреАрдХрддрд╛ рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП git diff рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм рдпрд╣ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕рдордЭ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдЬрд╛рдП, рддреЛ рдЕрдм рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ git diff рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЗрди рддреАрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдореЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рдордЭ рдорд┐рд▓ рд╕рдХреЗред
рдмреЗрд╕рд┐рдХ Git Diff рдЙрдкрдпреЛрдЧ
git diff рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдП рдПрдХ рд╕реИрдВрдкрд▓ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБред рд╣рдо Python рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕, CSV рдбреЗрдЯрд╛ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХреЗрдВред
mkdir data-analysis-project
cd data-analysis-project
git init
echo "# Data Analysis Project\n A sample project to demonstrate git diff functionality." > README.md
echo "import pandas as pd\n \n def load_data(filename):\n return pd.read_csv(filename)\n \n def analyze_data(data):\n return data.describe()" > analysis.py
echo "id,name,value\n 1,alpha,10\n 2,beta,20\n 3,gamma,30" > data.csv
echo "DEBUG=False\n DATABASE_PATH=./data/" > config.txt
echo "def normalize_data(data):\n return (data - data.min()) / (data.max() - data.min())" > utils.py
git add .
git commit -m "Initial commit with basic project structure"
> tree
.
тФЬтФАтФА README.md
тФЬтФАтФА analysis.py
тФЬтФАтФА config.txt
тФЬтФАтФА data.csv
тФФтФАтФА utils.pyрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдм рдкрд╛рдБрдЪ рдлрд╛рдЗрд▓реЗрдВ рд╡рд░реНрдЬрд╝рди рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдл рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд╛рд░ рджреЗрддреА рд╣реИрдВред рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ git diff рдХреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред
git diff рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдордЭрдирд╛
рдЬрдм рдЖрдк рдХреЛрдИ git diff рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИред рд╣рдорд╛рд░рд╛ analysis.py рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдбрд┐рдл рдХреЛ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЗрдЦреЗрдВ:
echo "import pandas as pd\n \n def load_data(filename):\n return pd.read_csv(filename)\n \n def analyze_data(data):\n return data.describe()\n \n def visualize_data(data):\n return data.plot(kind='bar')" > analysis.pyрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм рдкреНрд░рд╛рдкреНрдд git diff рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
git diff рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдзреНрдпрд╛рди рджреЗрдВ: git diff рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ тАЬqтАЭ рджрдмрд╛рдПрдБред
рдЖрдЗрдП рдЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рдордЭреЗрдВ:
рд╣реЗрдбрд░ (diff --git a/analysis.py b/analysis.py) рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рд╣реЛ рд░рд╣реА рд╣реИтАФ analysis.py
рдлрд╝рд╛рдЗрд▓ рдореЗрдЯрд╛рдбрд╛рдЯрд╛ (index db0e049..a7a7ab0 100644) тАЬрдкрд╣рд▓реЗтАЭ рдФрд░ тАЬрдмрд╛рджтАЭ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ Git рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ рдорд╛рд░реНрдХрд░реНрд╕ (--- a/analysis.py and +++ b/analysis.py) тАЬрдкрд╣рд▓реЗтАЭ рдФрд░ тАЬрдмрд╛рджтАЭ рдХреА рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ
рд╣рдВрдХ рд╣реЗрдбрд░ (@@ -5,3 +5,6 @@) рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рди рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛ред рдЗрд╕ рдиреЛрдЯреЗрд╢рди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
-5,3 рдХрд╛ рдЕрд░реНрде рд╣реИ рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рдкрдВрдХреНрддрд┐ 5 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ 3 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдбрд┐рдл рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИрдВ
+5,6 рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреА рдкрдВрдХреНрддрд┐ 5 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ 6 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдбрд┐рдл рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИрдВ
рдЗрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЕрдВрддрд░ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ 3 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реА рдЧрдИрдВ
5. рдХрдВрдЯреЗрдВрдЯ рдмрджрд▓рд╛рд╡ рдореЗрдВ + рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рдРрдбрд┐рд╢рди рджрд░реНрд╢рд╛рддреА рд╣реИрдВ
рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ, git diff рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ тАЬрд╣рдВрдХреНрд╕тАЭ рдореЗрдВ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИтАФрдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡реЗ рд╕реЗрдХреНрд╢рди рдЬрд┐рдирдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╣рдВрдХ рдХрд╛ рдЕрдкрдирд╛ рд╣реЗрдбрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓рд╛рдЗрди рдирдВрдмрд░ рд╣реЛрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдвреВрдБрдв рд╕рдХреЗрдВред
рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдФрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдХреА рддреБрд▓рдирд╛
git diff рдмрд┐рдирд╛ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдХреЗ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЖрдкрдХреА рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐) рдХреА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ (рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди) рд╕реЗ рддреБрд▓рдирд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИ рдкрд░ рдЕрднреА рддрдХ рдЙрд╕реЗ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:
echo "# Data Analysis Project\n A sample project to demonstrate git diff functionality.\n \n ## Installation\n Run \pip install -r requirements.txt" > README.md
echo "id,name,value\n 1,alpha,10\n 2,beta,20\n 3,gamma,30\n 4,delta,40" > data.csvрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм рдХреЗрд╡рд▓ README.md рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реНрдЯреЗрдЬ рдХрд░реЗрдВ:
git add README.mdрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм git diff рдЪрд▓рд╛рдиреЗ рдкрд░ рдХреЗрд╡рд▓ data.csv рдФрд░ рдКрдкрд░ рд╡рд╛рд▓реЗ analysis.py рдХреЗ рдЕрдирд╕реНрдЯреЗрдЬреНрдб рдмрджрд▓рд╛рд╡ рджрд┐рдЦреЗрдВрдЧреЗ:
рдпрд╣ рдЖрдкрдХреЛ рдЙрди рдЪреАрдЬрд╝реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рд╕реНрдЯреЗрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╕реНрдЯреЗрдЬ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ:
git diff --staged рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрд╣ README.md рдореЗрдВ рд╡реЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдЧрд╛ рдЬреЛ рд╕реНрдЯреЗрдЬ рд╣реИрдВ рдФрд░ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдпрд╣ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕рд╛рдлрд╝-рд╕реБрдерд░реЗ, рддрд╛рд░реНрдХрд┐рдХ рдХрдорд┐рдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЖрдк рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╕реНрдЯреЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рде рдореЗрдВ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВ, рд╕реНрдЯреЗрдЬреНрдб рдбрд┐рдл рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рдпрд╣ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдПрдХ рд╕реБрд╕рдВрдЧрдд рдЗрдХрд╛рдИ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рдХрдорд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдФрд░ рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рдХреА рддреБрд▓рдирд╛
git diff --staged рдХрдорд╛рдВрдб рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдХреА рдЖрдкрдХреЗ рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдареАрдХ-рдареАрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЕрднреА git commit рдЪрд▓рд╛рдПрдБрдЧреЗ рддреЛ рдЖрдкрдХреЗ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред
рдЖрдЗрдП data.csv рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реНрдЯреЗрдЬ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХреНрдпрд╛ рд╕реНрдЯреЗрдЬ рд╣реИ:
git add data.csv
git diff --staged рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ README.md рдФрд░ data.csv рджреЛрдиреЛрдВ рдХреЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ рд╕реНрдЯреЗрдЬ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВред рдХрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕рдореАрдХреНрд╖рд╛ рдЪрд░рдг рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИтАФрдпрд╣ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдХрдорд┐рдЯ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдЖрдкрдХреА рдЕрдВрддрд┐рдо рд╕реБрд░рдХреНрд╖рд╛ рд░реЗрдЦрд╛ рд╣реИред
рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ
git diff рдЪрд▓рд╛рдХрд░ рд╕рднреА рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ
рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣реЛрдВ рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реНрдЯреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрдирд┐рдд рд░реВрдк рд╕реЗ git add <file> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдХреНрдпрд╛ рдХрдорд┐рдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git diff --staged рдЪрд▓рд╛рдПрдБ
рд╕реНрдЯреЗрдЬреНрдб рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ git commit -m "Your message" рдХреЗ рд╕рд╛рде рдХрдорд┐рдЯ рдХрд░реЗрдВ
рдЕрдиреНрдп рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░рд╛рдПрдБ
рдпрд╣ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рддрд░реАрдХрд╛ рдПрдХ рд╕рд╛рдлрд╝, рдЕрд░реНрдердкреВрд░реНрдг рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рдФрд░ рд╕рдорд╕реНрдпрд╛рдПрдБ рдХрд╣рд╛рдБ рдЖрдИ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде, рдпреЗ рдбрд┐рдл рдХрдорд╛рдВрдбреНрд╕ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдмрди рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрдкрдХреЗ рд╕реНрдерд╛рдпреА рд╕рд╛рдереА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдХрдорд┐рдЯреНрд╕ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ:
git commit -m "Modify data.csv and README.md files"
git add analysis.py
git diff --staged
git commit -m "Add a new function to analysis.py" рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ Git Diff рддрдХрдиреАрдХреЗрдВ
рдЕрдм рдЬрдмрдХрд┐ рд╣рдо git diff рдХреА рдмреБрдирд┐рдпрд╛рдж рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, рдЖрдЗрдП рдХреБрдЫ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рддрдХрдиреАрдХреЗрдВ рджреЗрдЦреЗрдВ рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрдкрдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рдПрдБрдЧреАред рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП рдЗрди рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдХреЙрдиреНрд╕реЗрдкреНрдЯреНрд╕ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗред
рд╡рд┐рднрд┐рдиреНрди рд░реЗрдлрд░реЗрдВрд╕реЗрдЬрд╝ рдХреЗ рдмреАрдЪ рддреБрд▓рдирд╛
Git рд░реЗрдлрд░реЗрдВрд╕реЗрдЬрд╝ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдмрдирд╛ рд╣реИтАФрдЖрдкрдХреЗ рдХреЛрдб рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ред рдЗрдирдореЗрдВ рдмреНрд░рд╛рдВрдЪреЗрд╕, рдХрдорд┐рдЯреНрд╕ рдФрд░ рдЯреИрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред git diff рдХрдорд╛рдВрдб рдЗрди рджреЛ рдХрд┐рд╕реА рднреА рд░реЗрдлрд░реЗрдВрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИ рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдПрдХ рдлреАрдЪрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдмреНрд░рд╛рдВрдЪ рдмрдирд╛рдПрдБ рдФрд░ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:
git checkout -b feature/advanced-analytics
echo "import pandas as pd
import numpy as np
def load_data(filename):
return pd.read_csv(filename)
def analyze_data(data):
return data.describe()
def visualize_data(data):
return data.plot(kind='bar')
def perform_advanced_analysis(data):
" ""Performs advanced statistical analysis on the dataset" ""
results = {}
results['correlation'] = data.corr()
results['skew'] = data.skew()
return results" > analysis.py
git add analysis.py
git commit -m "Add advanced analysis function" рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм рд╣рдо рдЕрдкрдиреА рдлреАрдЪрд░ рдмреНрд░рд╛рдВрдЪ рдХреА рдореБрдЦреНрдп рдмреНрд░рд╛рдВрдЪ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
git diff main feature/advanced-analyticsрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрд╣ рдХрдорд╛рдВрдб рджреЛрдиреЛрдВ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рдмреАрдЪ рд╕рднреА рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИтАФрд╣рд░ рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рдЬреЛ рд╕рдВрд╢реЛрдзрд┐рдд, рдЬреЛрдбрд╝реА рдпрд╛ рд╣рдЯрд╛рдИ рдЧрдИ рд╣реИред рдЖрдк analysis.py рдореЗрдВ рдХрд┐рдП рдЧрдП рдмрджрд▓рд╛рд╡ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рдирдП рдЗрдореНрдкреЛрд░реНрдЯреНрд╕ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдкреВрд░рд╛ рдбрд┐рдл рдЯреНрд░рдВрдХреЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдХрдИ рдмрд╛рд░ рдПрдВрдЯрд░ рджрдмрд╛рдПрдБ)ред
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдорд┐рдЯ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
git log --oneline рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
git diff 7b3105e рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрд╣ рддреБрд▓рдирд╛ рдХреНрд╖рдорддрд╛ рддрдм рдмреЗрд╣рдж рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм:
рдХреЛрдб рд░рд┐рд╡реНрдпреВ рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рдлреАрдЪрд░ рдмреНрд░рд╛рдВрдЪ рдХреЗ рд╕рднреА рдмрджрд▓рд╛рд╡ рджреЗрдЦрдиреЗ рд╣реЛрдВ
рдорд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рд╣реЛ рдХрд┐ рдХрд┐рд╕реА рд╕рд╣рдХрд░реНрдореА рдХреА рдмреНрд░рд╛рдВрдЪ рдХреМрди-рд╕реЗ рдмрджрд▓рд╛рд╡ рд▓рд╛рдПрдЧреА
рд░рд┐рд▓реАрдЬрд╝ рдпрд╛ рд╡рд░реНрдЬрд╝рдиреНрд╕ рдХреЗ рдмреАрдЪ рдЖрдкрдХрд╛ рдХреЛрдбрдмреЗрд╕ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ, рдпрд╣ рд╕рдордЭрдирд╛ рд╣реЛ
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛
рдмрдбрд╝реЗ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЕрдХреНрд╕рд░ рд╕рднреА рдЕрдВрддрд░реЛрдВ рдХреА рдмрдЬрд╛рдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдЬрд╝ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред Git diff рдЖрдкрдХреЛ рдкрд╛рдереНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрдХрд░ рдпрд╣ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:
echo "DEBUG=True
DATABASE_PATH=./data/
LOG_LEVEL=INFO" > config.txt
echo "def normalize_data(data):
return (data - data.min()) / (data.max() - data.min())
def clean_data(data):
return data.dropna()" > utils.pyрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдХреЗрд╡рд▓ config рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрджрд▓рд╛рд╡ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:
git diff config.txtрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рдмреАрдЪ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
git diff main feature/advanced-analytics -- analysis.pyрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдореЗрдВ -- Git рдХреЛ рд░реЗрдлрд░реЗрдВрд╕реЗрдЬрд╝ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдкрд╛рдереНрд╕ рдХреЗ рдмреАрдЪ рднреЗрдж рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм:
рдмрд╣реБрдд рд╕рд╛рд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рд╡рд╛рд▓реЗ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛрдВ (рдЬреЛ рдЕрдХреНрд╕рд░ рд╣реЛрдЧрд╛)
рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рд╣реЛ рдХрд┐ рдмреНрд░рд╛рдВрдЪреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреИрд╕реЗ рдмрджрд▓рд╛ рд╣реИ
рдмрдбрд╝реА рд╕реЗрдЯ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛ
рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рдбрд┐рдл рд╡рд┐рдХрд▓реНрдк
Git diff рдХрдИ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирд╕реЗ рдЖрдк рдЕрдВрддрд░ рдХреИрд╕реЗ рджрд┐рдЦреЗрдВ, рдпрд╣ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВтАФрдЬрд┐рд╕рд╕реЗ рд╕рд╛рд░реНрдердХ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдлрд╝реЙрд░реНрдореИрдЯрд┐рдВрдЧ рдмрджрд▓рд╛рд╡реЛрдВ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╕рдордп, whitespace рдХреЗ рдЕрдВрддрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╛рд░реНрдердХ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЫрд┐рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдлрд╝реЙрд░реНрдореИрдЯрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдбреЗрдореЛ рдХрд░реЗрдВ:
sed -i '' 's/ return/ return/g' analysis.py рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм, рдорд╛рдирдХ git diff рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдкрд░ whitespace рдХреЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрддреЗ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ return рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдЕрд╕рдВрддреБрд▓рд┐рдд рд╣реИрдВ):
git diff analysis.py
--- a/analysis.py
+++ b/analysis.py
@@ -2,17 +2,17 @@ import pandas as pd
import numpy as np
def load_data( filename) :
- return pd.read_csv( filename)
+ return pd.read_csv( filename)
def analyze_data( data) :
- return data.describe( )
+ return data.describe( )
def visualize_data( data) :
- return data.plot( kind= 'bar' )
+ return data.plot( kind= 'bar' )
def perform_advanced_analysis( data) :
Performs advanced statistical analysis on the dataset
results = { }
results[ 'correlation' ] = data.corr( )
results[ 'skew' ] = data.skew( )
- return results
+ return resultsрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд▓реЗрдХрд┐рди рд╣рдо whitespace рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЗрдЧреНрдиреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдХреЗрд╡рд▓ whitespace рд╣рдЯрд╛рдпрд╛ рд╣реИ):
git diff -w analysis.py рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рд╣реИ рд╕рдВрджрд░реНрдн рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛тАФрдпрд╛рдиреА рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рджрд┐рдЦрд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ:
git diff -U1 analysis.py
git diff -U5 analysis.py рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпреЗ рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рд╡рд┐рдХрд▓реНрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдм рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм:
рдРрд╕реЗ рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдЬреЛ рдСрдЯреЛрдореИрдЯреЗрдб рдлрд╝реЙрд░реНрдореИрдЯрд┐рдВрдЧ рд╕реЗ рдЧреБрдЬрд░рд╛ рд╣реЛ
рд╕реНрдЯрд╛рдЗрд▓ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдмрдЬрд╛рдп рдлрд╝рдВрдХреНрд╢рдирд▓ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдлреЛрдХрд╕ рдХрд░рдирд╛ рд╣реЛ
рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдмрджрд▓рд╛рд╡ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рдЪрд╛рд╣рд┐рдП
рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджрд░реНрдн рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛ рджреЗрдЧрд╛
рдЗрди рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдХреЗ, рдЖрдк рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рдкрд╛рдПрдБрдЧреЗ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рд╕рдордЭ рдХреИрд╕реЗ рдХрд░реЗрдВтАФрдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ рдХреЛрдб рд░рд┐рд╡реНрдпреВ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдПрдбрд╡рд╛рдВрд╕реНрдб git diff рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд╡реАрдирддрдо рдмрджрд▓рд╛рд╡ рдХрдорд┐рдЯ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ:
git add .
git commit -m "Modify analysis.py, config.txt, and utils.py" рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдПрдбрд╡рд╛рдВрд╕реНрдб Git Diff рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕
git diff рдХреА рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рддрдХрдиреАрдХреЛрдВ рдХреА рд╕рдордЭ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рдЖрдЗрдП рдХреБрдЫ рдПрдбрд╡рд╛рдВрд╕реНрдб рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕ рджреЗрдЦреЗрдВ рдЬреЛ рдЖрдкрдХреА Git рд╕реНрдХрд┐рд▓реНрд╕ рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдПрдБрдЧреАред рдпреЗ рдЙрдиреНрдирдд рддрдХрдиреАрдХреЗрдВ рдЦрд╛рд╕рдХрд░ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реИрдВ рдЬрдм рдЖрдк рдЬрдЯрд┐рд▓ рдХреЛрдбрдмреЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдпрд╛ рдмрдбрд╝реА рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВред
рдПрдХреНрд╕рдЯрд░реНрдирд▓ рдбрд┐рдл рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ
рд╣рд╛рд▓рд╛рдБрдХрд┐ Git рдХрд╛ рдмрд┐рд▓реНрдЯ-рдЗрди рдбрд┐рдл рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдХрднреА-рдХрднреА рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓ рдЬрдЯрд┐рд▓ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рджреЗрддрд╛ рд╣реИред Git рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯрд░реНрдирд▓ рдЯреВрд▓реНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рдбрд┐рдл рдЕрдиреБрднрд╡ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХреЗред
рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓ рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдВред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ VSCode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди Beyond Compare, Meld рдпрд╛ KDiff3 рдЬреИрд╕реЗ рдЯреВрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
git config diff.tool vscode
git config difftool.vscode.cmd "code --wait --diff \$LOCAL \$REMOTE "
git config diff.tool bc3
git config difftool.bc3.path "/path/to/beyond/compare"
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм git diff рдХреА рдЬрдЧрд╣ рдЖрдк рдпрд╣ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
git difftool main feature/advanced-analyticsрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрд╣ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдЦреЛрд▓ рджреЗрдЧрд╛ред Beyond Compare рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓реНрд╕ рдХрдИ рдлрд╛рдпрджреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:
рд╕рд╛рдЗрдб-рдмрд╛рдп-рд╕рд╛рдЗрдб рддреБрд▓рдирд╛ рдЬрд┐рд╕рд╕реЗ рд╕рдВрджрд░реНрдн рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрдкрдХреА рдПрдбрд┐рдЯрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ
рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдмреАрдЪ рдЙрдиреНрдирдд рдиреЗрд╡рд┐рдЧреЗрд╢рди
рдЕрдВрддрд░ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП рд╕реАрдзреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рдЬрдм рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡реЛрдВ рдпрд╛ рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛рдУрдВ (рдЬреИрд╕реЗ рдиреЗрд╕реНрдЯреЗрдб JSON рдпрд╛ XML) рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛ, рддреЛ рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓реНрд╕ рд╕рдордЭ рдФрд░ рджрдХреНрд╖рддрд╛ рдХреЛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдбрд┐рдл рдХрдорд╛рдВрдбреНрд╕
Git рдРрд╕реЗ рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдбрд┐рдл рдХрдорд╛рдВрдбреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЦрд╛рд╕ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рдирд┐рдпрдВрддреНрд░рдг рджреЗрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрдорд╛рдВрдбреНрд╕ рджреЗрдЦреЗрдВ:
git diff-tree рдЯреНрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдЬрд╝) рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ:
LAST_COMMIT = $( git rev-parse HEAD)
PREV_COMMIT = $( git rev-parse HEAD~1)
git diff-tree --patch $PREV_COMMIT $LAST_COMMIT рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
git diff-index рд╡рд░реНрдХрд┐рдВрдЧ рдЯреНрд░реА рдХреА рддреБрд▓рдирд╛ рдЗрдВрдбреЗрдХреНрд╕ (рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛) рдпрд╛ рдХрд┐рд╕реА рдЯреНрд░реА рд╕реЗ рдХрд░рддрд╛ рд╣реИ:
# Compare working directory with the index
git diff-index --patch HEADрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
git diff-index рдЦрд╛рд╕ рддреМрд░ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдФрд░ рдСрдЯреЛрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рдБрдЪрдиреЗ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЕрдЧрд▓реА рдХрдорд┐рдЯ рдореЗрдВ рдХреМрди-рд╕реЗ рдмрджрд▓рд╛рд╡ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗтАФрдЬрд┐рд╕рд╕реЗ рдпрд╣ рдкреНрд░реА-рдХрдорд┐рдЯ рд╣реБрдХреНрд╕ рдФрд░ рд╡реИрд▓рд┐рдбреЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╡рд╛рди рдмрдирддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИрдВ рдпрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рд╛рд╡ рдХрдорд┐рдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реЛрдВред
git diff-files рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
git diff-files --patch config.txtрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпреЗ рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдХрдорд╛рдВрдбреНрд╕ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ:
рдХрд╕реНрдЯрдо Git рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдмрдирд╛рдиреЗ рдореЗрдВ
Git рдХреА рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдореЗрдВ
рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд▓рдХреНрд╖рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ
Git рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдСрдЯреЛрдореЗрд╢рди рдЯреВрд▓реНрд╕ рдмрдирд╛рдиреЗ рдореЗрдВ
рдХреЛрдб рд╣рд┐рд╕реНрдЯреНрд░реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
git diff рдХрд╛ рдПрдХ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдпрд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖтАФрдЬреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдпрд╛ рдлреАрдЪрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯ рдХреА рдЬрд╛рдБрдЪ рд╡рд┐рд╢реЗрд╖ ^! рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрд░реЗрдВ:
ANALYTICS_COMMIT = $( git log --oneline | grep "advanced analysis" | cut -d ' ' -f 1 )
git diff $ANALYTICS_COMMIT ^! рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
^! рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд┐рд╕реА рдХрдорд┐рдЯ рдХреА рдЙрд╕рдХреЗ рдкреИрд░реЗрдВрдЯ рд╕реЗ рддреБрд▓рдирд╛ рдХрд╛ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рдХрдорд┐рдЯ рдореЗрдВ рдЖрдП рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдордп рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
git log -p -3 analysis.pyрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЬрдм рдХрд┐рд╕реА рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛ, рддреЛ рдЖрдк git bisect рдХреЗ рд╕рд╛рде git diff рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
echo "import pandas as pd
import numpy as np
def load_data(filename):
# Bug: accidentally returning None instead of the data
pd.read_csv(filename)
return None
def analyze_data(data):
return data.describe()
def visualize_data(data):
return data.plot(kind='bar')
def perform_advanced_analysis(data):
results = {}
results['correlation'] = data.corr()
results['skew'] = data.skew()
return results" > analysis.py
git add analysis.py
git commit -m "Update analysis.py with a hidden bug"
git bisect start
git bisect bad
git bisect good main
git diff HEAD^! рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Git bisect рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдХрдорд┐рдЯ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдХрдорд┐рдЯ рдиреЗ рдмрдЧ рдкреЗрд╢ рдХрд┐рдпрд╛ред git diff рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░, рдпрд╣ рдПрдХ рдХреБрд╢рд▓ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рддрд╛ рд╣реИ:
1. git bisect start рд╕реЗ рдмрд╛рдЗрд╕реИрдХреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ
2. рд╡рд░реНрддрдорд╛рди рдХрдорд┐рдЯ рдХреЛ рдЦрд░рд╛рдм (рдмрдЧ рдпреБрдХреНрдд) рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ: git bisect bad
3. рдХрд┐рд╕реА рдЬреНрдЮрд╛рдд рдЕрдЪреНрдЫреЗ рдХрдорд┐рдЯ (рдЬрд╣рд╛рдБ рдмрдЧ рдореМрдЬреВрдж рдирд╣реАрдВ) рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ: git bisect good <commit-hash>
4. Git рд╕реНрд╡рддрдГ рдЖрдкрдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдХрд┐рд╕реА рдХрдорд┐рдЯ рдХреЛ рдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЪреЗрдХрдЖрдЙрдЯ рдХрд░реЗрдЧрд╛ред
5. рд╡рд░реНрддрдорд╛рди рдХрдорд┐рдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, git рдХреЛ рдкрд░рд┐рдгрд╛рдо рдмрддрд╛рдПрдБ:
рдпрджрд┐ рдЗрд╕ рдХрдорд┐рдЯ рдореЗрдВ рдмрдЧ рдореМрдЬреВрдж рд╣реИ: git bisect bad
рдпрджрд┐ рдЗрд╕ рдХрдорд┐рдЯ рдореЗрдВ рдмрдЧ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ: git bisect good
6. Git рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рдкреНрд░рддреНрдпреЗрдХ git bisect bad/good рдХреЗ рдмрд╛рдж) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдорд┐рдЯ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛, рд╣рд░ рдмрд╛рд░ рдЦреЛрдЬ рдХреЛ рд╕рдВрдХрд░рд╛ рдХрд░рддрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдорд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддрдм рддрдХ рджреЛрд╣рд░рд╛рдПрдБ рдЬрдм рддрдХ git рдкрд╣рд▓рд╛ рдЦрд░рд╛рдм рдХрдорд┐рдЯ рдкрд╣рдЪрд╛рди рди рд▓реЗред
7. рдЬреИрд╕реЗ рд╣реА git рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХрдорд┐рдЯ рдвреВрдБрдв рд▓реЗрддрд╛ рд╣реИ, рд╡рд╣ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдХрдорд┐рдЯ рдиреЗ рдмрдЧ рдкреЗрд╢ рдХрд┐рдпрд╛ред
8. рдкрд╣рдЪрд╛рдиреЗ рдЧрдП рдХрдорд┐рдЯ рдореЗрдВ рдареАрдХ-рдареАрдХ рдХреНрдпрд╛ рдмрджрд▓рд╛, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП: git diff HEAD^!
9. рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рдареАрдХ рд╡рд╣реА рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдХрдорд┐рдЯ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реБрдЖ рдЬрд┐рд╕рдиреЗ рдмрдЧ рдкреЗрд╢ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЕрдкрдиреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рдЙрдиреНрд╣реАрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВред
10. рдХрд┐рд╕реА рднреА рд╕рдордп рдмрд╛рдЗрд╕реИрдХреНрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ: git bisect reset рдпрд╣ рдЖрдкрдХреЛ рдЙрд╕ рдмреНрд░рд╛рдВрдЪ рдкрд░ рд▓реМрдЯрд╛ рджреЗрдЧрд╛ рдЬрд┐рд╕ рдкрд░ рдЖрдк рдмрд╛рдЗрд╕реИрдХреНрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдереЗред
11. рдЖрдк рдмрд╛рдЗрд╕реИрдХреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рдСрдЯреЛрдореЗрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: git bisect run <test-script> рдЬрд╣рд╛рдБ рдХрдорд╛рдВрдб рдЕрдЪреНрдЫреЗ рдХрдорд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП 0 рдФрд░ рдЦрд░рд╛рдм рдХреЗ рд▓рд┐рдП рдиреЙрди-рдЬрд╝реАрд░реЛ рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реЛред
рдпрд╣ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдордп рдХреЛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИтАФрдЦрд╛рд╕рдХрд░ рдмрдбрд╝реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ, рдЬрд╣рд╛рдБ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдФрд░ рдЯреВрдЯ рдЪреБрдХреА рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХрдИ рдХрдорд┐рдЯреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпреЗ рд╣рд┐рд╕реНрдЯреНрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рддрдХрдиреАрдХреЗрдВ рдЕрдореВрд▓реНрдп рд╣реИрдВ:
рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдХрд┐ рдмрдЧ рдХрдм рдФрд░ рдХреНрдпреЛрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛
рдХрд┐рд╕реА рдлреАрдЪрд░ рдпрд╛ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ
рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рд░рд┐рд╡реНрдпреВрдЬрд╝ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рдСрдбрд┐рдЯ рдХрд░рдиреЗ рдореЗрдВ
рдХреЛрдб рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдкреАрдЫреЗ рдирд┐рд░реНрдгрдп-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ
рдЗрди рдЙрдиреНрдирдд git diff рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдХреЗ, рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╕рдЯреАрдХрддрд╛ рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рдкрд╛рдПрдБрдЧреЗ, рдЕрдзрд┐рдХ рджрдХреНрд╖рддрд╛ рд╕реЗ рдбрд┐рдмрдЧ рдХрд░ рдкрд╛рдПрдБрдЧреЗ, рдФрд░ рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЧрд╣рд░реА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдкрд╛рдПрдБрдЧреЗред
Git Diff рдХрдорд╛рдВрдб рд╕рдВрджрд░реНрдн
Git diff рдЕрдкрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рд╣реИ, рдЬреЛ рдЖрдкрдХреА рдбрд┐рдлрд░реЗрдВрд╢рд┐рдпрд▓ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреЗ рд╣реИрдВ:
рдмреЗрд╕рд┐рдХ рддреБрд▓рдирд╛ рд╡рд┐рдХрд▓реНрдк
git diff - рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рд╕реЗ рддреБрд▓рдирд╛
git diff --staged (рдпрд╛ --cached) - рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдХреА рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛
git diff HEAD - рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛
git diff <commit> - рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛
git diff <commit1> <commit2> - рджреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯреНрд╕ рдХреА рддреБрд▓рдирд╛
git diff <branch1> <branch2> - рджреЛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреА рддреБрд▓рдирд╛
рдкрд╛рде рд▓рд┐рдорд┐рдЯрд┐рдВрдЧ
git diff -- <path> - рддреБрд▓рдирд╛ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВ
git diff --stat - рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рдПрдБ (рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрджрд▓реАрдВ, рдЗрдирд╕рд░реНрдЯреНрд╕, рдбрд┐рд▓реАрд╢рдиреНрд╕)тАФрдмрдбрд╝реЗ рдбрд┐рдлреНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк
git diff --name-only - рдХреЗрд╡рд▓ рдмрджрд▓реА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рджрд┐рдЦрд╛рдПрдБ
git diff --name-status - рдмрджрд▓реА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдФрд░ рд╕реНрдерд┐рддрд┐ (рдЬреЛрдбрд╝реА рдЧрдИ, рд╕рдВрд╢реЛрдзрд┐рдд, рд╣рдЯрд╛рдИ рдЧрдИ) рджрд┐рдЦрд╛рдПрдБ
рдбрд┐рд╕реНрдкреНрд▓реЗ рдирд┐рдпрдВрддреНрд░рдг
git diff -w (рдпрд╛ --ignore-all-space ) - whitespace рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЗрдЧреНрдиреЛрд░ рдХрд░реЗрдВ
git diff --ignore-space-change - whitespace рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЗрдЧреНрдиреЛрд░ рдХрд░реЗрдВ
git diff --color-words - рд╡рд░реНрдб-рд▓реЗрд╡рд▓ рдЕрдВрддрд░ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдПрдБ
git diff --word-diff - рд╡рд░реНрдб-рд▓реЗрд╡рд▓ рдЕрдВрддрд░ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдПрдБ
git diff -U<n> - n рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджрд┐рдЦрд╛рдПрдБ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 3 рд╣реИ)
git diff --no-prefix - рдбрд┐рдл рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ a/ рдФрд░ b/ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рди рджрд┐рдЦрд╛рдПрдБ
рдХрдВрдЯреЗрдВрдЯ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ
git diff --binary - рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдБ
git diff -S<string> - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝реА/рд╣рдЯрд╛рдИ рдЧрдИ рд╣реЛ, рдРрд╕реЗ рдмрджрд▓рд╛рд╡ рдЦреЛрдЬреЗрдВ
git diff -G<regex> - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реЗрдЧреЗрдХреНрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рдмрджрд▓рд╛рд╡ рдЦреЛрдЬреЗрдВ
git diff --pickaxe-all - -S рдпрд╛ -G рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдХреЗрд╡рд▓ рдореИрдЪрд┐рдВрдЧ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рднреА рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдБ
рдлрд╝реЙрд░реНрдореИрдЯ рд╡рд┐рдХрд▓реНрдк
git diff --patch-with-stat - рдкреИрдЪ рдФрд░ рд╕реНрдЯреИрдЯреНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рдПрдБ
git diff --compact-summary - рдХреЙрдореНрдкреИрдХреНрдЯ рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ рд╕реНрдЯреИрдЯреНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рдПрдБ
git diff --numstat - рдорд╢реАрди-рдлреНрд░реЗрдВрдбрд▓реА рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ рд╕реНрдЯреИрдЯреНрд╕ рджрд┐рдЦрд╛рдПрдБ
git diff --summary - рдирд┐рд░реНрдорд╛рдг/рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рдПрдБ
рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдЖрдк рд╢рдХреНрддрд┐рд╢рд╛рд▓реА, рд▓рдХреНрд╖рд┐рдд рддреБрд▓рдирд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ whitespace рдЗрдЧреНрдиреЛрд░ рдХрд░рддреЗ рд╣реБрдП рд╡рд░реНрдб-рд▓реЗрд╡рд▓ рдмрджрд▓рд╛рд╡ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:
git diff --color-words -w -- analysis.pyрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрд╛ рдЙрди рд╕рднреА рдЬрдЧрд╣реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдБ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рдпрд╛ рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реЛ:
git diff -S"def perform_advanced_analysis" main feature/advanced-analyticsрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдордЭрдХрд░ рдЖрдк рд╢реЛрд░ рд╕реЗ рдкрд╛рд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдареАрдХ-рдареАрдХ рдЙрдиреНрд╣реАрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдлреЛрдХрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВтАФрдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рд░рд┐рд╡реНрдпреВ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдиреЗрдВрдЧреЗред рдЪрд╛рд╣реЗ рдЖрдк рдмрдЧ рдвреВрдБрдв рд░рд╣реЗ рд╣реЛрдВ, рдкреБрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреА рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рдпрд╛ рдмрд╕ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓рд╛, рд╕рд╣реА git diff рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХрд╛ рдХрд╛рдо рдХрд╛рдлреА рдЖрд╕рд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ git diff рдХреЛ рдХреЛрдб рдмрджрд▓рд╛рд╡ рджреЗрдЦрдиреЗ рдХреЗ рдПрдХ рдмрд╣реБрдореБрдЦреА рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрдЬрд╛ред рд╣рдордиреЗ рд╡рд░реНрдХрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрдЯреЗрдЬреНрдб рдмрджрд▓рд╛рд╡реЛрдВ рд╕реЗ рддреБрд▓рдирд╛, рдмреНрд░рд╛рдВрдЪреЛрдВ рдФрд░ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреА рдЬрд╛рдБрдЪ, рдФрд░ рдЧрд╣рд░реА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╡рд░ рдХрд┐рдпрд╛ред git diff рдХреЛ рдЕрдкрдиреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдХрд░ рдЖрдк рд╕рд╛рдлрд╝-рд╕реБрдерд░реЗ рдХрдорд┐рдЯреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рдореБрджреНрджреЛрдВ рдХреЛ рдЬрд▓реНрджреА рдкрдХрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдмреЗрд╣рддрд░ рдХреЛрдб рд░рд┐рд╡реНрдпреВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддреЗ рд╣реИрдВред┬а
рдЪрд╛рд╣реЗ рдЖрдк рдЕрдХреЗрд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдпрд╛ рдЯреАрдо рдореЗрдВ, git diff рдореЗрдВ рджрдХреНрд╖рддрд╛ рдЖрдкрдХреЛ рд╕рд┐рд░реНрдлрд╝ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рдЖрдЧреЗ рд▓реЗ рдЬрд╛рдХрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ рдХреЛрдбрдмреЗрд╕ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЕрдкрдиреА Git рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЛ рдФрд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдореВрд▓реНрдпрд╡рд╛рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:┬а
рд╡реНрдпрд╛рдкрдХ Git рдЪреАрдЯ рд╢реАрдЯ тАФ рддреНрд╡рд░рд┐рдд рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП
Introduction to Git тАФ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рдордЬрдмреВрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ GitHub рдФрд░ Git рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ (рд╢реБрд░реБрдЖрддреА) тАФ рд╣реИрдВрдбреНрд╕-рдСрди рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП
Intermediate Git тАФ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рд╕реНрдЯреНрд░реИрдЯреЗрдЬреА рдФрд░ рд╕рд╣рдпреЛрдЧ рддрдХрдиреАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕реНрдХрд┐рд▓реНрд╕ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП
Foundations of Git тАФ Git рдХреЗ рдЖрдВрддрд░рд┐рдХ рдореЙрдбрд▓ рдФрд░ рдЙрдиреНрдирдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдкрд░ рдЧрд╣рди рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдПред┬а
рдпреЗ рд╕рдВрд╕рд╛рдзрди рдЖрдкрдХреЛ git diff рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦреА рдмрд╛рддреЛрдВ рдкрд░ рдЖрдЧреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдФрд░ рдЖрдкрдХреЗ рд╡рд░реНрдЬрд╝рди рдХрдВрдЯреНрд░реЛрд▓ рдХреМрд╢рд▓ рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред
Git diff рдЖрдкрдХреЗ рдХреЛрдб рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдореЗрдВ рд╣реЛ рд░рд╣реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЦрд┐рдбрд╝рдХреА рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд┐рднрд┐рдиреНрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИтАФрдЪрд╛рд╣реЗ рд╡рд╣ рдЖрдкрдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рдо рдХреА рддреБрд▓рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдЯреЗрдЬ рдХреА рдЧрдИ рдЪреАрдЬрд╝реЛрдВ рд╕реЗ рд╣реЛ рдпрд╛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдФрд░ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ред рдЗрд╕реЗ Git рдХрд╛ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рд╕рдордЭреЗрдВ, тАЬрдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИ?тАЭ рдЬрдм рдЖрдк
git diffрдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ Git рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓рд╛рдЗрди-рдмрд╛рдп-рд▓рд╛рдЗрди рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛, рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рдмрджрд▓рд╛редGit diff рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рджреГрд╢реНрдп рджреЗрдХрд░ рдХреЛрдб рдХреНрд╡рд╛рд▓рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рд╣рдо рдЗрд╕ рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗтАФрдмреЗрд╕рд┐рдХ рддреБрд▓рдирд╛ рд╕реЗ рд▓реЗрдХрд░ рдЙрдиреНрдирдд рддрдХрдиреАрдХреЛрдВ рддрдХтАФрдЬреЛ рдЖрдкрдХреЗ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдФрд░ рдЯреАрдо рд╕рд╣рдпреЛрдЧ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдЧреАред
рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрди Git рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдпрджрд┐ рдЖрдкрдХреЛ рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпреЗ рд╕рдВрд╕рд╛рдзрди рд╕рд╣рд╛рдпрдХ рд╣реЛрдВрдЧреЗ:
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ Git рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рдХрдорд╛рдВрдбреНрд╕ рдЯрд░реНрдорд┐рдирд▓ рдпрд╛ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдореЗрдВ рдЪрд▓рд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП Git Diff рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИтАФрдЪрд╛рд╣реЗ рд╡реЗ рдЕрдХреЗрд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдпрд╛ рд╕реИрдХрдбрд╝реЛрдВ рдХреА рдЯреАрдо рдореЗрдВред git diff рдХреЗ рдмрд┐рдирд╛, рдЖрдк рдЕрдВрджрд╛рдЬрд╝ рд▓рдЧрд╛рддреЗ рд░рд╣ рдЬрд╛рдПрдВрдЧреЗ рдХрд┐ рдХрд┐рди рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЯреНрд░рдмрд▓рд╢реВрдЯрд┐рдВрдЧ рдФрд░ рд╕рд╣рдпреЛрдЧ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
Git diff рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдкреНрд░рднрд╛рд╡реА рд░рд┐рд╡реНрдпреВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЬрд╝рд░рд┐рдП рдХреНрд╡рд╛рд▓рд┐рдЯреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреА рдиреАрдВрд╡ рд░рдЦрддрд╛ рд╣реИред рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп, git diff рд╡рд╣ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рдХреНрдпрд╛ рдмрджрд▓рд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдХрд┐ рд╡реЗ рдмрджрд▓рд╛рд╡ рдХреНрдпреЛрдВ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВред┬а
рдХреЛрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдпрд╣ рд╕реАрдзреА рджреГрд╢реНрдпрддрд╛ рдЯреАрдореЛрдВ рдХреЛ рдорд╛рдирдХ рдмрдирд╛рдП рд░рдЦрдиреЗ рдФрд░ рдмрдЧреНрд╕ рдХреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИред
рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬрдЯрд┐рд▓ рд╣реЛрддреЗ рдЬрд╛рддреЗ рд╣реИрдВ, git diff рдХрдИ рдкреНрд░рдореБрдЦ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
git diff рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕ рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдЗрди рддреБрд▓рдирд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИтАФGit рдХрд╛ тАЬThree-TreeтАЭ рдореЙрдбрд▓ред
Git рдХреА рдереНрд░реА-рдЯреНрд░реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
git diff рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ Git рдХреА рдмреБрдирд┐рдпрд╛рджреА тАЬрдереНрд░реА-рдЯреНрд░реАтАЭ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ред рдирд╛рдо рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпреЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЗрдбрд╝ рдирд╣реАрдВ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╡рд╕реНрдерд╛рдПрдБ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЖрдкрдХрд╛ рдХреЛрдб рдореМрдЬреВрдж рд░рд╣рддрд╛ рд╣реИред┬а
рдЗрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪреЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ Git рдПрдХ рд╕рд╛рде рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ: рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдЖрдкрдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓реЗрдВ), рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ (рдпрд╛ рдЗрдВрдбреЗрдХреНрд╕, рдЬрд╣рд╛рдБ рдмрджрд▓рд╛рд╡ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ), рдФрд░ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА (рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдХрдорд┐рдЯреЗрдб рдЗрддрд┐рд╣рд╛рд╕, рдЬреЛ
.gitрдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ)редSource: Hashnode
рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╡реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВтАФрдпрд╣реАрдВ рдЖрдк рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдПрдХ рддреИрдпрд╛рд░реА рдХреНрд╖реЗрддреНрд░ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдЪреБрдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯ рдореЗрдВ рдХрд┐рди рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдЗрд╕реЗ рдПрдХ рд▓реЛрдбрд┐рдВрдЧ рдбреЙрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдкреИрдХреЗрдЬ (рдЖрдкрдХреЗ рдмрджрд▓рд╛рд╡) рд╢рд┐рдкрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред┬а
рдЕрдВрдд рдореЗрдВ, рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдкреВрд░рд╛ рдЗрддрд┐рд╣рд╛рд╕ рдХрдорд┐рдЯреНрд╕ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИтАФрд╕рдордп рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯтАФрдЬреЛ рдЬреБрдбрд╝рдХрд░ рдПрдХ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдЪреЗрди рдмрдирд╛рддреЗ рд╣реИрдВред
Git diff рдЗрдиреНрд╣реАрдВ рддреАрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреА рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдореЗрдВ рддреБрд▓рдирд╛ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк
git diffрдмрд┐рдирд╛ рдХрд┐рд╕реА рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдХреЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдпрд╣ рдЖрдкрдХреА рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рд╡реЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рдХрд┐рдП рд╣реИрдВ рдкрд░ рдЕрднреА рд╕реНрдЯреЗрдЬ рдирд╣реАрдВ рдХрд┐рдП рд╣реИрдВред┬аgit diff --stagedрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдХреА рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛ рд╣реЛрддреА рд╣реИтАФрдЬреЛ рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред┬ардФрд░
git diff HEADрдЖрдкрдХреА рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕реАрдзреЗ рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рднреА рдЕрдирдХрдорд┐рдЯреЗрдб рдмрджрд▓рд╛рд╡ рджрд┐рдЦрддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡реЗ рд╕реНрдЯреЗрдЬ рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВредрдпреЗ рддреБрд▓рдирд╛ рдмрд┐рдВрджреБ Git рдореЗрдВ рд╕рднреА рдбрд┐рдл рдСрдкрд░реЗрд╢рдВрд╕ рдХреА рдиреАрдВрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ:
git diff)git diff --staged)git diff HEAD)git diff commit1-hash commit2-hash)рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╕рдордЭрдирд╛ рдЖрдкрдХреЛ рд╡рд╣ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдХреНрдпрд╛, рдХрд╣рд╛рдБ рдФрд░ рдХрдм рдмрджрд▓рд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдЯреАрдХрддрд╛ рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП git diff рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм рдпрд╣ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕рдордЭ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдЬрд╛рдП, рддреЛ рдЕрдм рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ git diff рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЗрди рддреАрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдореЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рдордЭ рдорд┐рд▓ рд╕рдХреЗред
рдмреЗрд╕рд┐рдХ Git Diff рдЙрдкрдпреЛрдЧ
git diff рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдП рдПрдХ рд╕реИрдВрдкрд▓ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБред рд╣рдо Python рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕, CSV рдбреЗрдЯрд╛ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХреЗрдВред
рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдм рдкрд╛рдБрдЪ рдлрд╛рдЗрд▓реЗрдВ рд╡рд░реНрдЬрд╝рди рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдл рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд╛рд░ рджреЗрддреА рд╣реИрдВред рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ git diff рдХреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред
git diff рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдордЭрдирд╛
рдЬрдм рдЖрдк рдХреЛрдИ git diff рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИред рд╣рдорд╛рд░рд╛
analysis.pyрдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдбрд┐рдл рдХреЛ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЗрдЦреЗрдВ:рдЕрдм рдкреНрд░рд╛рдкреНрдд git diff рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдзреНрдпрд╛рди рджреЗрдВ: git diff рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ тАЬqтАЭ рджрдмрд╛рдПрдБред
рдЖрдЗрдП рдЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рдордЭреЗрдВ:
diff --git a/analysis.py b/analysis.py) рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рд╣реЛ рд░рд╣реА рд╣реИтАФanalysis.pyindex db0e049..a7a7ab0 100644) тАЬрдкрд╣рд▓реЗтАЭ рдФрд░ тАЬрдмрд╛рджтАЭ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ Git рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ--- a/analysis.py and +++ b/analysis.py) тАЬрдкрд╣рд▓реЗтАЭ рдФрд░ тАЬрдмрд╛рджтАЭ рдХреА рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ@@ -5,3 +5,6 @@) рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рди рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛ред рдЗрд╕ рдиреЛрдЯреЗрд╢рди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:-5,3рдХрд╛ рдЕрд░реНрде рд╣реИ рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рдкрдВрдХреНрддрд┐ 5 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ 3 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдбрд┐рдл рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИрдВ+5,6рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреА рдкрдВрдХреНрддрд┐ 5 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ 6 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдбрд┐рдл рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИрдВ5. рдХрдВрдЯреЗрдВрдЯ рдмрджрд▓рд╛рд╡ рдореЗрдВ
+рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рдРрдбрд┐рд╢рди рджрд░реНрд╢рд╛рддреА рд╣реИрдВрдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ, git diff рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ тАЬрд╣рдВрдХреНрд╕тАЭ рдореЗрдВ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИтАФрдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡реЗ рд╕реЗрдХреНрд╢рди рдЬрд┐рдирдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╣рдВрдХ рдХрд╛ рдЕрдкрдирд╛ рд╣реЗрдбрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓рд╛рдЗрди рдирдВрдмрд░ рд╣реЛрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдвреВрдБрдв рд╕рдХреЗрдВред
рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдФрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдХреА рддреБрд▓рдирд╛
git diffрдмрд┐рдирд╛ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдХреЗ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЖрдкрдХреА рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐) рдХреА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ (рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди) рд╕реЗ рддреБрд▓рдирд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИ рдкрд░ рдЕрднреА рддрдХ рдЙрд╕реЗ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИредрдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:
рдЕрдм рдХреЗрд╡рд▓ README.md рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реНрдЯреЗрдЬ рдХрд░реЗрдВ:
рдЕрдм
git diffрдЪрд▓рд╛рдиреЗ рдкрд░ рдХреЗрд╡рд▓data.csvрдФрд░ рдКрдкрд░ рд╡рд╛рд▓реЗanalysis.pyрдХреЗ рдЕрдирд╕реНрдЯреЗрдЬреНрдб рдмрджрд▓рд╛рд╡ рджрд┐рдЦреЗрдВрдЧреЗ:рдпрд╣ рдЖрдкрдХреЛ рдЙрди рдЪреАрдЬрд╝реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рд╕реНрдЯреЗрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╕реНрдЯреЗрдЬ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ:
рдпрд╣ README.md рдореЗрдВ рд╡реЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдЧрд╛ рдЬреЛ рд╕реНрдЯреЗрдЬ рд╣реИрдВ рдФрд░ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдпрд╣ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕рд╛рдлрд╝-рд╕реБрдерд░реЗ, рддрд╛рд░реНрдХрд┐рдХ рдХрдорд┐рдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЖрдк рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╕реНрдЯреЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рде рдореЗрдВ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВ, рд╕реНрдЯреЗрдЬреНрдб рдбрд┐рдл рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рдпрд╣ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдПрдХ рд╕реБрд╕рдВрдЧрдд рдЗрдХрд╛рдИ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рдХрдорд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдФрд░ рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рдХреА рддреБрд▓рдирд╛
git diff --stagedрдХрдорд╛рдВрдб рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдХреА рдЖрдкрдХреЗ рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдареАрдХ-рдареАрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЕрднреАgit commitрдЪрд▓рд╛рдПрдБрдЧреЗ рддреЛ рдЖрдкрдХреЗ рдЕрдЧрд▓реЗ рдХрдорд┐рдЯ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛редрдЖрдЗрдП data.csv рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реНрдЯреЗрдЬ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХреНрдпрд╛ рд╕реНрдЯреЗрдЬ рд╣реИ:
рдЕрдм рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ
README.mdрдФрд░data.csvрджреЛрдиреЛрдВ рдХреЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ рд╕реНрдЯреЗрдЬ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВред рдХрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕рдореАрдХреНрд╖рд╛ рдЪрд░рдг рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИтАФрдпрд╣ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдХрдорд┐рдЯ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдЖрдкрдХреА рдЕрдВрддрд┐рдо рд╕реБрд░рдХреНрд╖рд╛ рд░реЗрдЦрд╛ рд╣реИредрдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
git diffрдЪрд▓рд╛рдХрд░ рд╕рднреА рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВgit add <file>рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВgit diff --stagedрдЪрд▓рд╛рдПрдБgit commit -m "Your message"рдХреЗ рд╕рд╛рде рдХрдорд┐рдЯ рдХрд░реЗрдВрдпрд╣ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рддрд░реАрдХрд╛ рдПрдХ рд╕рд╛рдлрд╝, рдЕрд░реНрдердкреВрд░реНрдг рдХрдорд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рдФрд░ рд╕рдорд╕реНрдпрд╛рдПрдБ рдХрд╣рд╛рдБ рдЖрдИ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде, рдпреЗ рдбрд┐рдл рдХрдорд╛рдВрдбреНрд╕ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдмрди рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрдкрдХреЗ рд╕реНрдерд╛рдпреА рд╕рд╛рдереА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдХрдорд┐рдЯреНрд╕ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ:
рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ Git Diff рддрдХрдиреАрдХреЗрдВ
рдЕрдм рдЬрдмрдХрд┐ рд╣рдо git diff рдХреА рдмреБрдирд┐рдпрд╛рдж рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, рдЖрдЗрдП рдХреБрдЫ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рддрдХрдиреАрдХреЗрдВ рджреЗрдЦреЗрдВ рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрдкрдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рдПрдБрдЧреАред рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП рдЗрди рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдХреЙрдиреНрд╕реЗрдкреНрдЯреНрд╕ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗред
рд╡рд┐рднрд┐рдиреНрди рд░реЗрдлрд░реЗрдВрд╕реЗрдЬрд╝ рдХреЗ рдмреАрдЪ рддреБрд▓рдирд╛
Git рд░реЗрдлрд░реЗрдВрд╕реЗрдЬрд╝ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдмрдирд╛ рд╣реИтАФрдЖрдкрдХреЗ рдХреЛрдб рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ред рдЗрдирдореЗрдВ рдмреНрд░рд╛рдВрдЪреЗрд╕, рдХрдорд┐рдЯреНрд╕ рдФрд░ рдЯреИрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред git diff рдХрдорд╛рдВрдб рдЗрди рджреЛ рдХрд┐рд╕реА рднреА рд░реЗрдлрд░реЗрдВрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИ рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдПрдХ рдлреАрдЪрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдмреНрд░рд╛рдВрдЪ рдмрдирд╛рдПрдБ рдФрд░ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:
рдЕрдм рд╣рдо рдЕрдкрдиреА рдлреАрдЪрд░ рдмреНрд░рд╛рдВрдЪ рдХреА рдореБрдЦреНрдп рдмреНрд░рд╛рдВрдЪ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрд╣ рдХрдорд╛рдВрдб рджреЛрдиреЛрдВ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рдмреАрдЪ рд╕рднреА рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИтАФрд╣рд░ рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рдЬреЛ рд╕рдВрд╢реЛрдзрд┐рдд, рдЬреЛрдбрд╝реА рдпрд╛ рд╣рдЯрд╛рдИ рдЧрдИ рд╣реИред рдЖрдк analysis.py рдореЗрдВ рдХрд┐рдП рдЧрдП рдмрджрд▓рд╛рд╡ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рдирдП рдЗрдореНрдкреЛрд░реНрдЯреНрд╕ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдкреВрд░рд╛ рдбрд┐рдл рдЯреНрд░рдВрдХреЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдХрдИ рдмрд╛рд░ рдПрдВрдЯрд░ рджрдмрд╛рдПрдБ)ред
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдорд┐рдЯ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрд╣ рддреБрд▓рдирд╛ рдХреНрд╖рдорддрд╛ рддрдм рдмреЗрд╣рдж рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм:
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛
рдмрдбрд╝реЗ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЕрдХреНрд╕рд░ рд╕рднреА рдЕрдВрддрд░реЛрдВ рдХреА рдмрдЬрд╛рдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдЬрд╝ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред Git diff рдЖрдкрдХреЛ рдкрд╛рдереНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрдХрд░ рдпрд╣ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:
рдХреЗрд╡рд▓ config рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрджрд▓рд╛рд╡ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:
рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреЗ рдмреАрдЪ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдореЗрдВ
--Git рдХреЛ рд░реЗрдлрд░реЗрдВрд╕реЗрдЬрд╝ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдкрд╛рдереНрд╕ рдХреЗ рдмреАрдЪ рднреЗрдж рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм:рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рдбрд┐рдл рд╡рд┐рдХрд▓реНрдк
Git diff рдХрдИ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирд╕реЗ рдЖрдк рдЕрдВрддрд░ рдХреИрд╕реЗ рджрд┐рдЦреЗрдВ, рдпрд╣ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВтАФрдЬрд┐рд╕рд╕реЗ рд╕рд╛рд░реНрдердХ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдлрд╝реЙрд░реНрдореИрдЯрд┐рдВрдЧ рдмрджрд▓рд╛рд╡реЛрдВ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╕рдордп, whitespace рдХреЗ рдЕрдВрддрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╛рд░реНрдердХ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЫрд┐рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдлрд╝реЙрд░реНрдореИрдЯрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдбреЗрдореЛ рдХрд░реЗрдВ:
рдЕрдм, рдорд╛рдирдХ git diff рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдкрд░ whitespace рдХреЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрддреЗ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ return рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдЕрд╕рдВрддреБрд▓рд┐рдд рд╣реИрдВ):
рд▓реЗрдХрд┐рди рд╣рдо whitespace рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЗрдЧреНрдиреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдХреЗрд╡рд▓ whitespace рд╣рдЯрд╛рдпрд╛ рд╣реИ):
рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рд╣реИ рд╕рдВрджрд░реНрдн рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛тАФрдпрд╛рдиреА рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рджрд┐рдЦрд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ:
рдпреЗ рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рд╡рд┐рдХрд▓реНрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдм рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм:
рдЗрди рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдХреЗ, рдЖрдк рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рдкрд╛рдПрдБрдЧреЗ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рд╕рдордЭ рдХреИрд╕реЗ рдХрд░реЗрдВтАФрдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ рдХреЛрдб рд░рд┐рд╡реНрдпреВ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдПрдбрд╡рд╛рдВрд╕реНрдб git diff рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд╡реАрдирддрдо рдмрджрд▓рд╛рд╡ рдХрдорд┐рдЯ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ:
рдПрдбрд╡рд╛рдВрд╕реНрдб Git Diff рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕
git diff рдХреА рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рддрдХрдиреАрдХреЛрдВ рдХреА рд╕рдордЭ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рдЖрдЗрдП рдХреБрдЫ рдПрдбрд╡рд╛рдВрд╕реНрдб рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕ рджреЗрдЦреЗрдВ рдЬреЛ рдЖрдкрдХреА Git рд╕реНрдХрд┐рд▓реНрд╕ рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдПрдБрдЧреАред рдпреЗ рдЙрдиреНрдирдд рддрдХрдиреАрдХреЗрдВ рдЦрд╛рд╕рдХрд░ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реИрдВ рдЬрдм рдЖрдк рдЬрдЯрд┐рд▓ рдХреЛрдбрдмреЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдпрд╛ рдмрдбрд╝реА рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВред
рдПрдХреНрд╕рдЯрд░реНрдирд▓ рдбрд┐рдл рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ
рд╣рд╛рд▓рд╛рдБрдХрд┐ Git рдХрд╛ рдмрд┐рд▓реНрдЯ-рдЗрди рдбрд┐рдл рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдХрднреА-рдХрднреА рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓ рдЬрдЯрд┐рд▓ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рджреЗрддрд╛ рд╣реИред Git рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯрд░реНрдирд▓ рдЯреВрд▓реНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рдбрд┐рдл рдЕрдиреБрднрд╡ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХреЗред
рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓ рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдВред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ VSCode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди Beyond Compare, Meld рдпрд╛ KDiff3 рдЬреИрд╕реЗ рдЯреВрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдЕрдм
git diffрдХреА рдЬрдЧрд╣ рдЖрдк рдпрд╣ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:рдпрд╣ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдЦреЛрд▓ рджреЗрдЧрд╛ред Beyond Compare рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓реНрд╕ рдХрдИ рдлрд╛рдпрджреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:
рдЬрдм рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡реЛрдВ рдпрд╛ рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛рдУрдВ (рдЬреИрд╕реЗ рдиреЗрд╕реНрдЯреЗрдб JSON рдпрд╛ XML) рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛ, рддреЛ рд╡рд┐рдЬреБрдЕрд▓ рдбрд┐рдл рдЯреВрд▓реНрд╕ рд╕рдордЭ рдФрд░ рджрдХреНрд╖рддрд╛ рдХреЛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдбрд┐рдл рдХрдорд╛рдВрдбреНрд╕
Git рдРрд╕реЗ рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдбрд┐рдл рдХрдорд╛рдВрдбреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЦрд╛рд╕ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рдирд┐рдпрдВрддреНрд░рдг рджреЗрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрдорд╛рдВрдбреНрд╕ рджреЗрдЦреЗрдВ:
git diff-treeрдЯреНрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдЬрд╝) рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ:git diff-index рд╡рд░реНрдХрд┐рдВрдЧ рдЯреНрд░реА рдХреА рддреБрд▓рдирд╛ рдЗрдВрдбреЗрдХреНрд╕ (рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛) рдпрд╛ рдХрд┐рд╕реА рдЯреНрд░реА рд╕реЗ рдХрд░рддрд╛ рд╣реИ:
git diff-indexрдЦрд╛рд╕ рддреМрд░ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдФрд░ рдСрдЯреЛрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рдБрдЪрдиреЗ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЕрдЧрд▓реА рдХрдорд┐рдЯ рдореЗрдВ рдХреМрди-рд╕реЗ рдмрджрд▓рд╛рд╡ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗтАФрдЬрд┐рд╕рд╕реЗ рдпрд╣ рдкреНрд░реА-рдХрдорд┐рдЯ рд╣реБрдХреНрд╕ рдФрд░ рд╡реИрд▓рд┐рдбреЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╡рд╛рди рдмрдирддрд╛ рд╣реИредрдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИрдВ рдпрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рд╛рд╡ рдХрдорд┐рдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реЛрдВред
git diff-filesрд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:рдпреЗ рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдХрдорд╛рдВрдбреНрд╕ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ:
рдХреЛрдб рд╣рд┐рд╕реНрдЯреНрд░реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
git diff рдХрд╛ рдПрдХ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдпрд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖтАФрдЬреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдпрд╛ рдлреАрдЪрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯ рдХреА рдЬрд╛рдБрдЪ рд╡рд┐рд╢реЗрд╖
^!рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрд░реЗрдВ:^!рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд┐рд╕реА рдХрдорд┐рдЯ рдХреА рдЙрд╕рдХреЗ рдкреИрд░реЗрдВрдЯ рд╕реЗ рддреБрд▓рдирд╛ рдХрд╛ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рдХрдорд┐рдЯ рдореЗрдВ рдЖрдП рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рддрд╛ рд╣реИредрдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдордп рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рдЬрдм рдХрд┐рд╕реА рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛ, рддреЛ рдЖрдк
git bisectрдХреЗ рд╕рд╛рдеgit diffрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:Git bisect рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдХрдорд┐рдЯ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдХрдорд┐рдЯ рдиреЗ рдмрдЧ рдкреЗрд╢ рдХрд┐рдпрд╛ред git diff рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░, рдпрд╣ рдПрдХ рдХреБрд╢рд▓ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рддрд╛ рд╣реИ:
1.
git bisect startрд╕реЗ рдмрд╛рдЗрд╕реИрдХреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ2. рд╡рд░реНрддрдорд╛рди рдХрдорд┐рдЯ рдХреЛ рдЦрд░рд╛рдм (рдмрдЧ рдпреБрдХреНрдд) рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ:
git bisect bad3. рдХрд┐рд╕реА рдЬреНрдЮрд╛рдд рдЕрдЪреНрдЫреЗ рдХрдорд┐рдЯ (рдЬрд╣рд╛рдБ рдмрдЧ рдореМрдЬреВрдж рдирд╣реАрдВ) рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ:
git bisect good <commit-hash>4. Git рд╕реНрд╡рддрдГ рдЖрдкрдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдХрд┐рд╕реА рдХрдорд┐рдЯ рдХреЛ рдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЪреЗрдХрдЖрдЙрдЯ рдХрд░реЗрдЧрд╛ред
5. рд╡рд░реНрддрдорд╛рди рдХрдорд┐рдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, git рдХреЛ рдкрд░рд┐рдгрд╛рдо рдмрддрд╛рдПрдБ:
git bisect badgit bisect good6. Git рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рдкреНрд░рддреНрдпреЗрдХ
git bisect bad/goodрдХреЗ рдмрд╛рдж) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдорд┐рдЯ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛, рд╣рд░ рдмрд╛рд░ рдЦреЛрдЬ рдХреЛ рд╕рдВрдХрд░рд╛ рдХрд░рддрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдорд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддрдм рддрдХ рджреЛрд╣рд░рд╛рдПрдБ рдЬрдм рддрдХ git рдкрд╣рд▓рд╛ рдЦрд░рд╛рдм рдХрдорд┐рдЯ рдкрд╣рдЪрд╛рди рди рд▓реЗред7. рдЬреИрд╕реЗ рд╣реА git рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХрдорд┐рдЯ рдвреВрдБрдв рд▓реЗрддрд╛ рд╣реИ, рд╡рд╣ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдХрдорд┐рдЯ рдиреЗ рдмрдЧ рдкреЗрд╢ рдХрд┐рдпрд╛ред
8. рдкрд╣рдЪрд╛рдиреЗ рдЧрдП рдХрдорд┐рдЯ рдореЗрдВ рдареАрдХ-рдареАрдХ рдХреНрдпрд╛ рдмрджрд▓рд╛, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:
git diff HEAD^!9. рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рдареАрдХ рд╡рд╣реА рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдХрдорд┐рдЯ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реБрдЖ рдЬрд┐рд╕рдиреЗ рдмрдЧ рдкреЗрд╢ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЕрдкрдиреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рдЙрдиреНрд╣реАрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВред
10. рдХрд┐рд╕реА рднреА рд╕рдордп рдмрд╛рдЗрд╕реИрдХреНрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ:
git bisect resetрдпрд╣ рдЖрдкрдХреЛ рдЙрд╕ рдмреНрд░рд╛рдВрдЪ рдкрд░ рд▓реМрдЯрд╛ рджреЗрдЧрд╛ рдЬрд┐рд╕ рдкрд░ рдЖрдк рдмрд╛рдЗрд╕реИрдХреНрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдереЗред11. рдЖрдк рдмрд╛рдЗрд╕реИрдХреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рдСрдЯреЛрдореЗрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
git bisect run <test-script>рдЬрд╣рд╛рдБ рдХрдорд╛рдВрдб рдЕрдЪреНрдЫреЗ рдХрдорд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП 0 рдФрд░ рдЦрд░рд╛рдм рдХреЗ рд▓рд┐рдП рдиреЙрди-рдЬрд╝реАрд░реЛ рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реЛредрдпрд╣ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдордп рдХреЛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИтАФрдЦрд╛рд╕рдХрд░ рдмрдбрд╝реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ, рдЬрд╣рд╛рдБ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдФрд░ рдЯреВрдЯ рдЪреБрдХреА рдЕрд╡рд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХрдИ рдХрдорд┐рдЯреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпреЗ рд╣рд┐рд╕реНрдЯреНрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рддрдХрдиреАрдХреЗрдВ рдЕрдореВрд▓реНрдп рд╣реИрдВ:
рдЗрди рдЙрдиреНрдирдд git diff рдПрдкреНрд▓реАрдХреЗрд╢рдВрд╕ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдХреЗ, рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╕рдЯреАрдХрддрд╛ рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рдкрд╛рдПрдБрдЧреЗ, рдЕрдзрд┐рдХ рджрдХреНрд╖рддрд╛ рд╕реЗ рдбрд┐рдмрдЧ рдХрд░ рдкрд╛рдПрдБрдЧреЗ, рдФрд░ рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЧрд╣рд░реА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдкрд╛рдПрдБрдЧреЗред
Git Diff рдХрдорд╛рдВрдб рд╕рдВрджрд░реНрдн
Git diff рдЕрдкрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рд╣реИ, рдЬреЛ рдЖрдкрдХреА рдбрд┐рдлрд░реЗрдВрд╢рд┐рдпрд▓ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреЗ рд╣реИрдВ:
рдмреЗрд╕рд┐рдХ рддреБрд▓рдирд╛ рд╡рд┐рдХрд▓реНрдк
git diff- рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рд╕реЗ рддреБрд▓рдирд╛git diff --staged(рдпрд╛--cached) - рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдПрд░рд┐рдпрд╛ рдХреА рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛git diff HEAD- рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛git diff <commit>- рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯ рд╕реЗ рддреБрд▓рдирд╛git diff <commit1> <commit2>- рджреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯреНрд╕ рдХреА рддреБрд▓рдирд╛git diff <branch1> <branch2>- рджреЛ рдмреНрд░рд╛рдВрдЪреЛрдВ рдХреА рддреБрд▓рдирд╛рдкрд╛рде рд▓рд┐рдорд┐рдЯрд┐рдВрдЧ
git diff -- <path>- рддреБрд▓рдирд╛ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВgit diff --stat- рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рдПрдБ (рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрджрд▓реАрдВ, рдЗрдирд╕рд░реНрдЯреНрд╕, рдбрд┐рд▓реАрд╢рдиреНрд╕)тАФрдмрдбрд╝реЗ рдбрд┐рдлреНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдкgit diff --name-only- рдХреЗрд╡рд▓ рдмрджрд▓реА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рджрд┐рдЦрд╛рдПрдБgit diff --name-status- рдмрджрд▓реА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдФрд░ рд╕реНрдерд┐рддрд┐ (рдЬреЛрдбрд╝реА рдЧрдИ, рд╕рдВрд╢реЛрдзрд┐рдд, рд╣рдЯрд╛рдИ рдЧрдИ) рджрд┐рдЦрд╛рдПрдБрдбрд┐рд╕реНрдкреНрд▓реЗ рдирд┐рдпрдВрддреНрд░рдг
git diff -w(рдпрд╛ --ignore-all-space) - whitespace рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЗрдЧреНрдиреЛрд░ рдХрд░реЗрдВgit diff --ignore-space-change- whitespace рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдЗрдЧреНрдиреЛрд░ рдХрд░реЗрдВgit diff --color-words- рд╡рд░реНрдб-рд▓реЗрд╡рд▓ рдЕрдВрддрд░ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдПрдБgit diff --word-diff- рд╡рд░реНрдб-рд▓реЗрд╡рд▓ рдЕрдВрддрд░ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдПрдБgit diff -U<n>- n рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджрд┐рдЦрд╛рдПрдБ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 3 рд╣реИ)git diff --no-prefix- рдбрд┐рдл рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ a/ рдФрд░ b/ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рди рджрд┐рдЦрд╛рдПрдБрдХрдВрдЯреЗрдВрдЯ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ
git diff --binary- рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдБgit diff -S<string>- рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝реА/рд╣рдЯрд╛рдИ рдЧрдИ рд╣реЛ, рдРрд╕реЗ рдмрджрд▓рд╛рд╡ рдЦреЛрдЬреЗрдВgit diff -G<regex>- рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реЗрдЧреЗрдХреНрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рдмрджрд▓рд╛рд╡ рдЦреЛрдЬреЗрдВgit diff --pickaxe-all- -S рдпрд╛ -G рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдХреЗрд╡рд▓ рдореИрдЪрд┐рдВрдЧ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рднреА рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдБрдлрд╝реЙрд░реНрдореИрдЯ рд╡рд┐рдХрд▓реНрдк
git diff --patch-with-stat- рдкреИрдЪ рдФрд░ рд╕реНрдЯреИрдЯреНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рдПрдБgit diff --compact-summary- рдХреЙрдореНрдкреИрдХреНрдЯ рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ рд╕реНрдЯреИрдЯреНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рдПрдБgit diff --numstat- рдорд╢реАрди-рдлреНрд░реЗрдВрдбрд▓реА рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ рд╕реНрдЯреИрдЯреНрд╕ рджрд┐рдЦрд╛рдПрдБgit diff --summary- рдирд┐рд░реНрдорд╛рдг/рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рдПрдБрдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдЖрдк рд╢рдХреНрддрд┐рд╢рд╛рд▓реА, рд▓рдХреНрд╖рд┐рдд рддреБрд▓рдирд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ whitespace рдЗрдЧреНрдиреЛрд░ рдХрд░рддреЗ рд╣реБрдП рд╡рд░реНрдб-рд▓реЗрд╡рд▓ рдмрджрд▓рд╛рд╡ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:
рдпрд╛ рдЙрди рд╕рднреА рдЬрдЧрд╣реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдБ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рдпрд╛ рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реЛ:
рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдордЭрдХрд░ рдЖрдк рд╢реЛрд░ рд╕реЗ рдкрд╛рд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдареАрдХ-рдареАрдХ рдЙрдиреНрд╣реАрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдлреЛрдХрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВтАФрдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рд░рд┐рд╡реНрдпреВ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдиреЗрдВрдЧреЗред рдЪрд╛рд╣реЗ рдЖрдк рдмрдЧ рдвреВрдБрдв рд░рд╣реЗ рд╣реЛрдВ, рдкреБрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреА рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рдпрд╛ рдмрд╕ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓рд╛, рд╕рд╣реА git diff рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХрд╛ рдХрд╛рдо рдХрд╛рдлреА рдЖрд╕рд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ git diff рдХреЛ рдХреЛрдб рдмрджрд▓рд╛рд╡ рджреЗрдЦрдиреЗ рдХреЗ рдПрдХ рдмрд╣реБрдореБрдЦреА рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрдЬрд╛ред рд╣рдордиреЗ рд╡рд░реНрдХрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрдЯреЗрдЬреНрдб рдмрджрд▓рд╛рд╡реЛрдВ рд╕реЗ рддреБрд▓рдирд╛, рдмреНрд░рд╛рдВрдЪреЛрдВ рдФрд░ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреА рдЬрд╛рдБрдЪ, рдФрд░ рдЧрд╣рд░реА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╡рд░ рдХрд┐рдпрд╛ред git diff рдХреЛ рдЕрдкрдиреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдХрд░ рдЖрдк рд╕рд╛рдлрд╝-рд╕реБрдерд░реЗ рдХрдорд┐рдЯреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рдореБрджреНрджреЛрдВ рдХреЛ рдЬрд▓реНрджреА рдкрдХрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдмреЗрд╣рддрд░ рдХреЛрдб рд░рд┐рд╡реНрдпреВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддреЗ рд╣реИрдВред┬а
рдЪрд╛рд╣реЗ рдЖрдк рдЕрдХреЗрд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдпрд╛ рдЯреАрдо рдореЗрдВ, git diff рдореЗрдВ рджрдХреНрд╖рддрд╛ рдЖрдкрдХреЛ рд╕рд┐рд░реНрдлрд╝ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рдЖрдЧреЗ рд▓реЗ рдЬрд╛рдХрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ рдХреЛрдбрдмреЗрд╕ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЕрдкрдиреА Git рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЛ рдФрд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдореВрд▓реНрдпрд╡рд╛рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:┬а
рдпреЗ рд╕рдВрд╕рд╛рдзрди рдЖрдкрдХреЛ git diff рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦреА рдмрд╛рддреЛрдВ рдкрд░ рдЖрдЧреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдФрд░ рдЖрдкрдХреЗ рд╡рд░реНрдЬрд╝рди рдХрдВрдЯреНрд░реЛрд▓ рдХреМрд╢рд▓ рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред