рдПрд╕рд╡реАрдПрди рд╕реЗ рдЧрд┐рдЯ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рджреМрд░рд╛рди, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдХреЛрдб рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬреЛ рд╕рдВрдкрд╛рджрди рдХреЗ рдПрдХ рд░реИрдЦрд┐рдХ рдЗрддрд┐рд╣рд╛рд╕ (рдФрд░ рдЯреНрд░рдВрдХ рдореЗрдВ рд╡рд┐рдХрд╛рд╕) рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдерд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд╣реА рдЧреИрдм-рдПрд╕рд╡реАрдПрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИрдмреЗ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рджреВрд╕рд░реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓реЗ рдЧрдПред рд╣рдореЗрдВ рдЬреАрдЖрдИрдЯреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ
рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдФрд░
рдорд░реНрдЬ , рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЧрд┐рдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓реЗрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд╕рд╛рдордЧреНрд░реА рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рд╣реИ рдЬреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдФрд░ рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рд▓реЗрдЦ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдЖрд╕рд╛рди рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдирдХреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рд▓рдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдЦреБрд▓реЗ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд▓реА рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ Git рд╕реНрд░реЛрддреЛрдВ (2d242fb3fc19fc9ba046accdd9210be8b9913f64) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг: рдСрдмреНрдЬреЗрдХреНрдЯ
рдЬрд╛рдирдХрд╛рд░реА
рдкреНрд░реЛ Git рдХреЗ
рдЕрдВрддрд┐рдо рдЕрдзреНрдпрд╛рдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдЧрд┐рдЯ рдореЗрдВ, рднрдВрдбрд╛рд░рдг рдЗрдХрд╛рдИ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ, рдЬреЛ рдХрд┐ 40-рд╡рд░реНрдг рд╣реИрд╢ sha1 рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред Git рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ: рдХрдорд┐рдЯ, рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА, рдЙрдирдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдоред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдСрдмреНрдЬреЗрдХреНрдЯ .рдЧрд┐рдд / рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╛рдзрд╛рд░рдг рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдФрд░ рдЧрд┐рдЯ gc рдХреЛ .pack рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ zlib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ
git cat-file -t . :
BLOB ( ).
BLOB . : , .
, BLOB , , . , 100 000 , :
$ git init Initialized empty Git repository in test/.git/ $ for((i=0;i<=100000;i++)); do echo $i; done >test.txt $ ls -lh 575K test.txt $ git add test.txt $ git commit -m "First commit" [master (root-commit) b3061d2] First commit 1 file changed, 100001 insertions(+) create mode 100644 test.txt $ find .git/objects -type f | xargs ls -lh 204K .git/objects/97/578648a76227f183339438512ad99a383b48cc
git cat-file -t . :
BLOB ( ).
BLOB . : , .
, BLOB , , . , 100 000 , :
$ git init Initialized empty Git repository in test/.git/ $ for((i=0;i<=100000;i++)); do echo $i; done >test.txt $ ls -lh 575K test.txt $ git add test.txt $ git commit -m "First commit" [master (root-commit) b3061d2] First commit 1 file changed, 100001 insertions(+) create mode 100644 test.txt $ find .git/objects -type f | xargs ls -lh 204K .git/objects/97/578648a76227f183339438512ad99a383b48cc
git cat-file -t . :
BLOB ( ).
BLOB . : , .
, BLOB , , . , 100 000 , :
$ git init Initialized empty Git repository in test/.git/ $ for((i=0;i<=100000;i++)); do echo $i; done >test.txt $ ls -lh 575K test.txt $ git add test.txt $ git commit -m "First commit" [master (root-commit) b3061d2] First commit 1 file changed, 100001 insertions(+) create mode 100644 test.txt $ find .git/objects -type f | xargs ls -lh 204K .git/objects/97/578648a76227f183339438512ad99a383b48cc
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдкреВрд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рд╕рдВрдШрд░реНрд╖ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред
рдЯреНрд░реА (FS рдкрджрд╛рдиреБрдХреНрд░рдо)
рдСрдмреНрдЬреЗрдХреНрдЯ рдЯрд╛рдЗрдк рдЯреНрд░реА (рдЕрдВрдЧреНрд░реЗрдЬреА
рдЯреНрд░реА ) рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХреА рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
< > < > <sha1 > < >
Git рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╕реАрдорд┐рдд рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
040000 - рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛;
100644 - рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓;
100755 - рдирд┐рд╖реНрдкрд╛рджрди рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓;
120000 рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдХрдбрд╝реА рд╣реИред
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдХреНрд░рдорд╢рдГ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ BLOB рдпрд╛ рдЯреНрд░реА рд╣реИред рдпрд╣реА рд╣реИ, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рдкреВрд░реА рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЯреНрд░реА рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рдЕрдВрджрд░ рдЕрдиреНрдп рдкреЗрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдХрдорд┐рдЯ
Git рдореЗрдВ, рд╡рди
рдХрдорд┐рдЯ (рдЕрдВрдЧреНрд░реЗрдЬреА
рдХрдорд┐рдЯ ) рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдЕрдиреБрд░реВрдк рдЯреНрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ, рдФрд░ рдкреЗрд░реЗрдВрдЯ рдХрдорд┐рдЯ (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдХрдорд┐рдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рдЪрдирд╛ рдХреЗ рд╕рдордп рд╕реЗ рд▓реЗрдЦрдХ рдФрд░ UNIX рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
рдпрджрд┐ рдкреНрд░рддрд┐рдмрджреНрдз рдПрдХ рд╕рд░рд▓ рдорд░реНрдЬ рд╣реИ (
git merge < >
), рддреЛ рдЗрд╕рдХреЗ 2 рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╣реЛрдВрдЧреЗ: рд╡рд░реНрддрдорд╛рди HEAD рдФрд░
< >
рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ред Git рдСрдХреНрдЯреЛрдкрд╕ рдорд░реНрдЬ рд░рдгрдиреАрддрд┐ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдорд┐рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рдХрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧреАред
$ git cat-file -p 0361e3c6d16fb3bbbcac8faa4e673667ea6fe20b tree ce9f2ced0ebb4346676879c7b12b92628378477f parent b3061d23da6f1a62dbc8f97b2a06e10e1aee2afa author Yuriy Nasretdinov <...> 1354450065 +0400 committer Yuriy Nasretdinov <...> 1354450065 +0400 Added another line
рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреИрдХ рдХрд░реЗрдВ
рдЕрдЧрд░ Git рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рд╕рдВрдкреВрд░реНрдг (рдпрджреНрдпрдкрд┐ рд╕рдВрдкреАрдбрд╝рд┐рдд) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ
.it рдлрд╝реЛрд▓реНрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реЗрдЯ рд╣реЛрдЧрд╛, рдФрд░ рдПрдХ рдХрд╛рд░реНрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рднреА, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рд╣рд╕реНрдпрдордп
рдкреИрдХ-рдлрд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреИрдХ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рдЧрд┐рдЯ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд▓рд┐рдиреБрд╕ рдЯреЛрд░рд╡рд╛рд▓реНрдбреНрд╕ рдХреЗ рдПрдХ рдИрдореЗрд▓ рдХрд╛ рдПрдХ рдЕрдВрд╢ рд╣реИ, рдЬреЛ рдЗрди рд░рд╣рд╕реНрдпрдордп рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрддрд╛ рд╣реИ (рд╕реНрд░реЛрдд:
gcc.gnu.org/ml/gcc /2007-12/msg00165.html ):
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда"... рдпрд╣ рд╕рдордЭрд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реИ (рдЖрдк рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди
рдореБрдЭреЗ рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реИрд╕реЗ рднреА рдЬрд╛рдиреЗ рджреЗрдВ) рдХреИрд╕реЗ рдбреЗрд▓реНрдЯрд╛ рдбреЗрд▓реНрдЯрд╛-рдЪреЗрди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреИрд╕реЗ
рд╡реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИрдВред
рдЕрдиреНрдп рдПрд╕рд╕реАрдПрдо рдореЗрдВ, рдПрдХ рдбреЗрд▓реНрдЯрд╛-рдЪреЗрди рдЖрдорддреМрд░ рдкрд░ рддрдп рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ "рдЖрдЧреЗ" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдпрд╛ "рдкреАрдЫреЗ рдХреА рдУрд░", рдФрд░ рдпрд╣ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рднрдВрдбрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ,
рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ рдпрд╣ рдХреБрдЫ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдПрдХ рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ
рдПрдХрд▓ SCM рдЗрдХрд╛рдИ рдХрд╛ рдкреНрд░рдХрд╛рд░ред рд╕реАрд╡реАрдПрд╕ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ *, рд╡реА рдлрд╝рд╛рдЗрд▓, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ
рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕рдорд╛рди рдЪреАрдЬреЗрдВ рдХрд░рддреЗ рд╣реИрдВред
рдЧрд┐рдЯ рдбреЗрд▓реНрдЯрд╛-рдЪреЗрди рднреА рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ "рд╢рд┐рдерд┐рд▓" рдХрд░рддрд╛ рд╣реИред рд╡рд╣рд╛рдБ
рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рдЗрдХрд╛рдИ рдирд╣реАрдВ рд╣реИред рдбреЗрд▓реНрдЯрд╛ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЦрд┐рд▓рд╛рдл рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ
рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдбреЗрд▓реНрдЯрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ
рд╕рдлрд▓ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА), рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдард┐рди рд╕рдореВрд╣рди рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИрдВред
рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╡реИрдЪрд╛рд░рд┐рдХ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ
рдХрд╛рд░рдг (рдЕрд░реНрдерд╛рдд рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрднреА рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рд╕рдВрд╢реЛрдзрди рд╢реНрд░реГрдВрдЦрд▓рд╛ - рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрд▓реНрдЯрд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╕реЛрдЪрддреА рд╣реИ), рд▓реЗрдХрд┐рди
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдирдореНрдп рдбреЗрд▓реНрдЯрд╛ рдирд┐рдпрдореЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ
рдЙрд╕ git рдХреЛ рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдорд░реНрдЬ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ,
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рд╡рд╣рд╛рдБ рдХреЛрдИ рдордирдорд╛рдиреА *, рд╡реА "рд╕рдВрд╢реЛрдзрди рдлрд╝рд╛рдЗрд▓реЗрдВ" рд╣реИрдВ
рдХреБрдЫ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдЕрд░реНрдеред
рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рднреА рд╣реИ рдХрд┐ рдбреЗрд▓реНрдЯрд╛рд╕ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЦреБрд▓рд╛ рд╣реИ
рдкреНрд░рд╢реНрдиред рдпрджрд┐ рдЖрдк рдбреЗрд▓реНрдЯрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рд╛рдЗрд▓ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рдбреЗрд▓реНрдЯрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ
рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред "
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреИрдХ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдорд╛рдирддрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХрд╛рд░ рдФрд░ рдЖрдХрд╛рд░) рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ "рдЪреЗрди" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдФрд░ рдЕрдЧрд▓рд╛ рдПрдХ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдзрд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЙрдЪреНрдЪ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЧрд┐рдЯ рдЕрднреА рднреА рд╕реНрдЯреЛрд░ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпрдХреНрд╖ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдХреЗ рд╕реНрддрд░ рдкрд░ред рдХрд┐рд╕реА рднреА рдПрдкреАрдЖрдИ рд╕реНрддрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, Git рдкреВрд░реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдорд░реНрдЬ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рднрдВрдбрд╛рд░рдг
Git рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЗрддрд┐рд╣рд╛рд╕ рднрдВрдбрд╛рд░ рдирд╣реАрдВ рд╣реИред рдкреВрд░реА рдХрд╣рд╛рдиреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рд╛рдЗрд▓ (рдпрд╛ рдПрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЧрд┐рдЯ рдХреЛ рдЕрднреА рднреА рдРрд╕рд╛ рд╣реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдЬрдм рдЖрдк рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЬреАрдЖрдИрдЯреА рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓ рдкрд░ рдПрдХ рдкреВрд░реНрдг рдЗрддрд┐рд╣рд╛рд╕ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛, Git рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, Git рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рдФрд░, рдХреБрдЫ (рдХрд╕реНрдЯрдо) рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЗ рд╕рд╛рде, рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╡рд┐рд▓рдп : рддреАрди-рддрд░рдлрд╛ рд╡рд┐рд▓рдп ( рд╕рдВрдХрд▓реНрдк рд░рдгрдиреАрддрд┐)
рдпрджрд┐ рдЖрдкрдХреЛ рджреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ git рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдпрд╣ рд░рдгрдиреАрддрд┐ рджрд┐рдЦрд╛рдИ рджреЗ, рд╕рдВрдХрд▓реНрдк рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ
рддреАрди-рддрд░рдлрд╛ рд╡рд┐рд▓рдп рд╣реИ ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд▓рдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ 3 рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП: рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрднрд┐рднрд╛рд╡рдХ, рдПрдХ рд╢рд╛рдЦрд╛ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рджреВрд╕рд░реА рд╢рд╛рдЦрд╛ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдгред рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рд▓рдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддреАрди-рддрд░рдлрд╛ рд╡рд┐рд▓рдп
diff3 рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдорд╛рдирдХ
diffutils рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдорд╛рдореВрд▓реА рдФрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛, рдПрдХ рд╣реА рд░рд╛рд╕реНрддрд╛ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп, рдЖрд░рд╕реАрдПрд╕, рд╕реАрд╡реАрдПрд╕, рдПрд╕рд╡реАрдПрди рдФрд░ рд╕рд╣рд┐рдд, рдореМрдЬреВрджрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рд▓рдп рдХреЗ рд╕рднреА "рдЧрдВрджрд╛ рдХрд╛рдо" рдХрд░рддрд╛ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЧрд┐рдЯред
Diff3 рдПрдирд╛рд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ (Git рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди LibXDiff рд╣реИ), Git рдордХреНрдЦреА рдкрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЧрдгрдирд╛ рднреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреЗрдбрд╝ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд▓рдп рдкрджрд╛рдиреБрдХреНрд░рдореЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдХреИрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЗ рдореЗрдВ Git рддреНрд░рд┐рдкрдХреНрд╖реАрдп рд╡рд┐рд▓рдп рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдЪрд┐рддреНрд░рдг рдХрд░рддрд╛ рд╣реИ (
рдореИрди рдЧреЗрдЯ
-рдорд░реНрдЬ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛):
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реА рдХрд╣рд╛рдиреА рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛ рдорд╛рд╕реНрдЯрд░ рд╣реИ:
A---B---C topic / D---E---F---G master
рдлрд┐рд░ git рдорд░реНрдЬ рд╡рд┐рд╖рдп, рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рддрдм рд╕реЗ рджреЛрд╣рд░рд╛рдПрдЧрд╛ рдЬрдм рдХрд╣рд╛рдиреА рдиреЗ forked (рдХрдорд┐рдЯ E) рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдирдИ рдХрдорд┐рдЯ H рдмрдирд╛рдИ рдЬрд┐рд╕рдореЗрдВ рджреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрджреЗрд╢ рд╣реЛрдЧрд╛ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
A---B---C topic / \ D---E---F---G---H master
рдлрд┐рд░ рднреА,
рд╡рд┐рд╖рдп рдФрд░
рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡рд┐рд▓рдп рдЕрдм рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ "рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ" рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ:
A---B---C---K---L---M topic / \ D---E---F---G---H---N---O---P master
рдпрджрд┐ рд╣рдо
рд╕рдВрдХрд▓реНрдк рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ (рдкреНрд░рддрд┐рдмрджреНрдз рдИ) рдЪреБрдирд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдорд░реНрдЬ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдЪ рдкреНрд░рддрд┐рдмрджреНрдз рдореЗрдВ рд╣рд▓ рдХрд┐рдП рдЧрдП рд╕рдВрдШрд░реНрд╖ рдереЗ, рддреЛ рд╣рдореЗрдВ рдЕрднреА рднреА рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП , Git рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ E рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛ рдФрд░ M рдФрд░ P рдХреЛ рджреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдкреНрд░рддрд┐рдмрджреНрдз рд╕реА рдореЗрдВ рдХреЛрдИ рд╕рдВрдШрд░реНрд╖ рдерд╛, рддреЛ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ
рдЬреАрдЖрдИрдЯреА рд░рд┐рд╡рд░реНрдЯ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рддреЛ рдЕрдВрддрд┐рдо рд░рд╛рдЬреНрдп рдПрдо рдореЗрдВ рдЕрдм рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рдкрд░ рдХреЛрдИ рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
'рдкреБрдирд░рд╛рд╡рд░реНрддреА' рд░рдгрдиреАрддрд┐ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╡рд┐рд▓рдп
рдЗрд╕ рддрд░рд╣ рдПрдХ рдХрд╣рд╛рдиреА рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЛ:
A---B---C---K---L---M topic / \ / D---E---F---G---H---N---O---P master
рдЕрдм рд╣рдореЗрдВ
рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рд░рд╣рддреЗ рд╣реБрдП
git рдорд░реНрдЬ рд╡рд┐рд╖рдп рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдИ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдирд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ
рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░рдгрдиреАрддрд┐ рдХреЗ рд╕рд╛рде рдЧрд┐рдЯ рдЕрдиреНрдпрдерд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЖрдк рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд░рдгрдиреАрддрд┐ рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╡рд░рдг рджреЗрддрд╛ рд╣реИ:
codicesoftware.blogspot.com/2011/09/merge-recursive-strategy.html ред рд▓реЗрдЦ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЙрдмрд╛рд▓рддрд╛ рд╣реИ:
- рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдирд╛, рдирд╡реАрдирддрдо рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛;
- рд╣рдо рдмрд╣реБрдд рдкрд╣рд▓реЗ рдкреВрд░реНрд╡рдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрдВ;
- рдЕрдЧрд▓реЗ рдкреВрд░реНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдкреНрд░рддрд┐рдмрджреНрдз рдХреЛ рдорд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдЖрднрд╛рд╕реА рдкреНрд░рддрд┐рдмрджреНрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ , рдЬрд┐рд╕реЗ рд╣рдо рд╡рд░реНрддрдорд╛рди рдХреЗ рд▓рд┐рдП рд▓реЗрддреЗ рд╣реИрдВ;
- рдкрд┐рдЫрд▓рд╛ рдСрдкрд░реЗрд╢рди рддрдм рддрдХ рдХрд░реЗрдВ рдЬрдм рддрдХ рдЖрдо рдкреВрд░реНрд╡рдЬреЛрдВ рдХреА рд╕реВрдЪреА рдЦрддреНрдо рди рд╣реЛ рдЬрд╛рдПред
рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЖрднрд╛рд╕реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рд╕рднреА рдЖрдо рдкреВрд░реНрд╡рдЬреЛрдВ рдХреА "рд╕рдиреНрдирд┐рд╣рд┐рдд" рд╕реНрдерд┐рддрд┐ рд╣реИ - рд╕рдВрдШрд░реНрд╖ рд╕рдорд╛рдзрд╛рди рднреА рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдз рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЕрдзрд┐рдХ рд╣рд╛рд▓рд┐рдпрд╛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рдореЗрдВ рдкреВрд░реНрд╡рддрд╛ рд▓реЗрдирд╛ред рдЬрдм рд╣рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдорд┐рд▓рд╛, рддреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддреНрд░рд┐рдкрдХреНрд╖реАрдп рд╡рд┐рд▓рдп рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорд░реНрдЬ-
recursive.c рд╕реЗ рдЕрдВрд╢:
int merge_recursive(...) { <...> if (!ca) { ca = get_merge_bases(h1, h2, 1); ca = reverse_commit_list(ca); } <...> merged_common_ancestors = pop_commit(&ca); <...> for (iter = ca; iter; iter = iter->next) { <...> merge_recursive(o, merged_common_ancestors, iter->item, NULL, &merged_common_ancestors); <тАж> } <...> clean = merge_trees(o, h1->tree, h2->tree, merged_common_ancestors->tree, &mrtree); <...> return clean; }
рдирд┐рдореНрди рд╕реНрддрд░ рдХреА рдХрдорд┐рдЯ
рдпрджрд┐ рдЖрдк рдХреБрдЫ рд╕рдордп рд╕реЗ Git рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдЪреЗрдХрдЖрдЙрдЯ, рдмреНрд░рд╛рдВрдЪ, рдкреБрд▓, рдкреБрд╢, рд░рд┐рдмреЗрд╕, рдХрдорд┐рдЯ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╢реБрд░реВ рдореЗрдВ, рдЧрд┐рдЯ рдХреЛ рдПрдХ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, Git рдореЗрдВ рдмрд┐рд▓реНрдЯ-рдЗрди рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдмрд╣реБрдд рд╕рдореГрджреНрдз рд╕реЗрдЯ рд╣реИ рдЬреЛ рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИрдВ:
git Rev-parse <revision>
рдпрд╣ рдЖрджреЗрд╢ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрд╢ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, git Rev-parse HEAD, HEAD рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрд╢ рд▓реМрдЯрд╛рдПрдЧрд╛ред
git рд░рд┐-рд▓рд┐рд╕реНрдЯ <рдкреНрд░рддрд┐рдмрджреНрдз> ...
рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдХрдорд┐рдЯ рдХреЗ рд╣реИрд╢ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ
git log
рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
git rev-list branch ^origin/branch ^origin/master
рдЖрдЙрдЯрдкреБрдЯ рд╢рд╛рдЦрд╛ рд╢рд╛рдЦрд╛ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрдорд┐рдЯреНрд╕ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ рдЬреЛ рдЕрднреА рддрдХ рдЪрд▓рд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ (рдмрд╢рд░реНрддреЗ рдХрд┐ рдореВрд▓ / рд╢рд╛рдЦрд╛ рдФрд░ рдореВрд▓ / рдорд╛рд╕реНрдЯрд░ рддрд╛рдЬрд╛ рд╣реЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
git fetch
рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) ред
рдиреБрдХрд╕рд╛рди: рд╢рд╛рдЦрд╛ ^ other_branch рдЬреИрд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдЖрдиреЗ рдкрд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдорд░реНрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣реБрдЖ" рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
git diff-index
рдПрдХ рдХрд╛рдо рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдФрд░ рдПрдХ
рд╕реВрдЪрдХрд╛рдВрдХ (.рдЧрд┐рдд / рд╕реВрдЪрдХрд╛рдВрдХ) рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ, Git рдЙрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ
рдХреИрд╢рд╕реНрдЯ () рдХреИрд╢ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ,
рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИред
рдиреБрдХрд╕рд╛рди: рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ), рддреЛ рдЧрд┐рдЯ рдбрд┐рдл-рдЗрдВрдбреЗрдХреНрд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдПрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА
lstat рдлрд╝реАрд▓реНрдб рдХреЛред
Init / index рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
рдЗрдирдХреЛрдб рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░
diff-index рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ
рдЕрдкрдбреЗрдЯ-рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
рд╣реЛрддреА рд╣реИ , рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп
рдЧрд┐рдЯ рднрд┐рдиреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реИред
.It / index рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
www.kernel.org/pub/software/scm/git/docs/v1.6.5/technical/ Govern-git.txtgit рдХреИрдЯ-рдлрд╛рдЗрд▓ <рдСрдмреНрдЬреЗрдХреНрдЯ>
рдпрд╣ рдЯреАрдо рдкрд╣рд▓реЗ рд╣реА рд▓реЗрдЦ рдореЗрдВ рдорд┐рд▓ рдЪреБрдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдлрд┐рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдХрдорд┐рдЯ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп Git рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
git ls-tree <object>
рдЯреНрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
git ls- рд░рд┐рдореЛрдЯ <рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА>
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рджреВрд░рд╕реНрде рднрдВрдбрд╛рд░ рд╕реЗ рд╢рд╛рдЦрд╛рдУрдВ рдФрд░ рдЯреИрдЧ (рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрд╢ рдХреЗ рд╕рд╛рде) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред
GIT_SSH
рдпрджрд┐ рдЖрдкрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рд┐рдЦреА рд╣реИрдВ рдЬреЛ
рдЧрд┐рдЯ рдкреБрд▓ рдХрд░рддреА рд╣реИрдВ , рддреЛ рдЖрдк рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕ рддрдереНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдПрд╕рдПрд╕рдПрдЪ рджреВрд░рд╕реНрде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА "рдкреНрд░рд╛рдорд╛рдгрд┐рдХрддрд╛" рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЗрддрдирд╛ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ GIT_SSH рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ SSH рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ):
echo '#!/bin/sh exec ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \"\$@\"' >/tmp/gitssh; chmod +x /tmp/gitssh;
рдирд┐рд╖реНрдХрд░реНрд╖
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, Git рдЖрдкрдХреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдордЬрд╝рдмреВрддреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд╣рд╛рдВ рджреЛ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рд╣реИрдВред рдЬрдм рддрдХ рдЖрдкрдХрд╛ рд▓рдХреНрд╖реНрдп рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЗрд╕рдХреЗ рдорд░реНрдЬ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЧрд┐рдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрдВрдЧреЗред
рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдЖрдкрдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдпрд╣ рд╕рдордЭрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЧрд┐рдЯ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВред рд╣рдорд╛рд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ Git рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ "рд╣реБрдб рдХреЗ рддрд╣рдд" рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХреА рдЧрд╣рд░реА рд╕рдордЭ рд╣реЛ рд╕рдХреЗред
рдпреВрд░реА рдирд╕рд░рджреАрдиреЛрд╡, Badoo рдбреЗрд╡рд▓рдкрд░