11. ΠΠ»ΠΈΠ°ΡΡ
Π¦Π΅Π»ΠΈ
- ΠΠ°ΡΡΠΈΡΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π°Π»ΠΈΠ°ΡΡ ΠΈ ΡΠΎΡΡΠΊΠ°ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ git
ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows:
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ:
git config --global alias.co checkout git config --global alias.ci commit git config --global alias.st status git config --global alias.br branch git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short" git config --global alias.type 'cat-file -t' git config --global alias.dump 'cat-file -p'
Π’Π°ΠΊΠΆΠ΅, Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Unix/Mac:
git status, git add, git commit, git checkout β ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² ΡΠ°ΠΉΠ» .gitconfig Π² Π²Π°ΡΠ΅ΠΌ $HOME ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
Π€Π°ΠΉΠ»:
.gitconfig[alias] co = checkout ci = commit st = status br = branch hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short type = cat-file -t dump = cat-file -p
ΠΡ ΡΠΆΠ΅ ΡΡΠΏΠ΅Π»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΈ status
, Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ log
ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΊΠΎΡΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ checkout
. ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ ΡΡΠΎΠΈΡ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡ git st
ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΠ°Π½ΡΡΠ΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git status
. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΈΡΠ΅ΠΌ git co
Π²ΠΌΠ΅ΡΡΠΎ git checkout
ΠΈ git ci
Π²ΠΌΠ΅ΡΡΠΎ git commit
. Π§ΡΠΎ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° git hist
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²Π²ΠΎΠ΄Π° ΠΎΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ log
.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
02 ΠΠ°Π΄Π°ΠΉΡΠ΅ Π°Π»ΠΈΠ°Ρhist
Π² ΡΠ°ΠΉΠ»Π΅ .gitconfig
ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ, Ρ Π±ΡΠ΄Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»ΠΈΠ°ΡΠ°
, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ git Π»ΠΎΠ³. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΠΌΠΎΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π°Π»ΠΈΠ°Ρ hist
ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ .gitconfig
.
Type
ΠΈ Dump
ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π»ΠΈΠ°ΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΡ
ΠΌΡ Π΅ΡΠ΅ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ. Π‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git branch
ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° git cat-file
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ git, Π² ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠΊΠΎΡΠ΅ ΡΠ±Π΅Π΄ΠΈΠΌΡΡ.
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°Π»ΠΈΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΊΠ°ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π»ΠΈΠ°ΡΡ ΠΈ Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ:
Π€Π°ΠΉΠ»:
.profilealias gs='git status ' alias ga='git add ' alias gb='git branch ' alias gc='git commit' alias gd='git diff' alias gco='git checkout ' alias gk='gitk --all&' alias gx='gitx --all' alias got='git ' alias get='git '
Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ gco
Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ½Π΅ Π²Π²ΠΎΠ΄ΠΈΡΡ:
gco <branch>
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ.
Π Π΄Π°, Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΠΈΡΡ Π²ΠΌΠ΅ΡΡΠΎ git
get
ΠΈΠ»ΠΈ got
, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°ΠΌ Π°Π»ΠΈΠ°ΡΡ ΠΈ Π΄Π»Ρ Π½ΠΈΡ
.
24. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ
Π¦Π΅Π»ΠΈ
- ΠΠ°ΡΡΠΈΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
ΠΠΎΡΠ° ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°Ρ hello world Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅ΡΠΊΠ΅ master.
01 Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²Π΅ΡΠΊΡΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π½Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Β«styleΒ».
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git checkout -b style git status
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: git checkout -b <ΠΈΠΌΡΠ²Π΅ΡΠΊΠΈ>
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΊΠ°ΡΠΎΠΌ Π΄Π»Ρ git branch <ΠΈΠΌΡΠ²Π΅ΡΠΊΠΈ>
Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ΄Π΅Ρ git checkout <ΠΈΠΌΡΠ²Π΅ΡΠΊΠΈ>
.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git status
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² Π²Π΅ΡΠΊΠ΅ Β«styleΒ».
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
touch lib/style.css
Π€Π°ΠΉΠ»:
lib/style.cssh2 { color: red; }
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add lib/style.css git commit -m "Added css stylesheet"03ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΉΠ» hello.html, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈ style.css.
Π€Π°ΠΉΠ»:
lib/hello.html<!-- Author: Alexander Shvets ([email protected]) --> <html> <head> <link type="text/css" rel="stylesheet" media="all" href="style.css" /> </head> <body> <h2>Hello, World!</h2> </body> </html>
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add lib/hello.html git commit -m "Hello uses style.css"04ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ index.html
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΉΠ» index.html, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» style.css
Π€Π°ΠΉΠ»:
index.html<html><head> <link type="text/css" rel="stylesheet" media="all" href="lib/style.css" /> </head> <body> <iframe src="lib/hello.html" /> </body> </html>
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add index.html git commit -m "Updated index.html"05 ΠΠ°Π»Π΅Π΅
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ style Ρ 3 Π½ΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ.
30. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²
Π¦Π΅Π»ΠΈ
- ΠΠ°ΡΡΠΈΡΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π²Π΅ΡΠΊΠ΅ style ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΅Π΅ Ρ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ master.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git checkout style git merge master
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git checkout style Switched to branch 'style' $ git merge master Auto-merging lib/hello.html CONFLICT (content): Merge conflict in lib/hello.html Automatic merge failed; fix conflicts and then commit the result.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ lib/hello.html, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅:
Π€Π°ΠΉΠ»:
lib/hello.html<!-- Author: Alexander Shvets ([email protected]) --> <html> <head> <<<<<<< HEAD <link type="text/css" rel="stylesheet" media="all" href="style.css" /> ======= <!-- no style --> >>>>>>> master </head> <body> <h2>Hello,World! Life is great!</h2> </body> </html>
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·Π΄Π΅Π» — Π²Π΅ΡΡΠΈΡ Π²ΠΎ Π³Π»Π°Π²Π΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ (style). ΠΡΠΎΡΠΎΠΉ ΡΠ°Π·Π΄Π΅Π» — Π²Π΅ΡΡΠΈΡ Π²Π΅ΡΠΊΠΈ master.
02 Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ. ΠΠ½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² lib/hello.html
Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
Π€Π°ΠΉΠ»:
lib/hello.html<!-- Author: Alexander Shvets ([email protected]) --> <html> <head> <link type="text/css" rel="stylesheet" media="all" href="style.css" /> </head> <body> <h2>Hello, World! Life is great!</h2> </body> </html>03 Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add lib/hello.html git commit -m "Merged master fixed conflict."
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git add lib/hello.html $ git commit -m "Merged master fixed conflict." Recorded resolution for 'lib/hello.html'. [style 645c4e6] Merged master fixed conflict.04 Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ
Git Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ, Π½ΠΎ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π° StackOverflow).
GitHub — kefiriaus/git-how-to
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΌΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Ρ git
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
git config --global user.name "Your Name" git config --global user.email "[email protected]"
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΉ ΡΡΡΠΎΠΊ
git config --global core.autocrlf input git config --global core.safecrlf true
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
mkdir hello cd hello touch hello.html git init
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git add hello.html (ΠΠΎΠΆΠ½ΠΎ 'git add .' Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ) git commit -m "First Commit"
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ°ΡΡΡΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
git status
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git add hello.html git status
ΠΠΎΠΌΠΌΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
#ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ git commit #Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ git commit -m 'Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°'#ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° git add hello.html git commit --amend -m "Add an author/email comment"
ΠΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
#ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git log #ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git log --pretty=oneline
#Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² git log --pretty=oneline --max-count=2 git log --pretty=oneline --since='5 minutes ago' git log --pretty=oneline --until='5 minutes ago' git log --pretty=oneline --author= git log --pretty=oneline --all
#ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
ΠΠ»ΠΈΠ°ΡΡ ΠΈ ΡΠΎΡΡΠΊΠ°ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ git Π² ΡΠ°ΠΉΠ»Π΅ ~/. #Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ git checkout [tagname]~1
#ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠ΅Π³ΠΎΠ² git tag
#ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠ΅Π³ΠΎΠ² Π² Π»ΠΎΠ³Π°Ρ git hi master —all
#ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³Π° git tag -d [tagname]
ΠΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° hello.html
#ΠΎΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ git checkout hello.html#ΠΎΡΠΌΠ΅Π½Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git reset HEAD hello.html git checkout hello.html #ΠΎΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ git revert HEAD --no-edit
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°
#Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π΅ ΡΠ΄Π°Π»ΠΈΠ»ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ° Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ tag git tag oops#ΡΠ±ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° git reset --hard [tagname]|[hash]
#ΠΏΠΎΠΊΠ°Π· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ ΡΠ΅Π³ΠΎΠΌ git hi --all
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» hello.html Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ lib#ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ git mkdir lib git mv hello.html lib#ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ OS mkdir lib mv hello.html lib git add lib/hello.html git rm hello.html
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
git checkout -b [branchname]
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ
#Π±Π΅Π· ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° git checkout dev git merge master git hi --all#ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° Π²ΡΡΡΠ½ΡΡ git checkout dev git merge master git hi --all Auto-merging lib/hello.html CONFLICT (content): Merge conflict in lib/hello.html Automatic merge failed; fix conflicts and then commit the result. #Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» vim lib/hello.html git add lib/hello.html git commit -m "Merged master fixed conflict."
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
#ΡΠ±ΡΠΎΡ Π²Π΅ΡΠΊΠΈ dev Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ git checkout dev git hi git reset --hard [hash]#ΡΠ±ΡΠΎΡ Π²Π΅ΡΠΊΠΈ master Π΄ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° git checkout master git hi git reset --hard [hash] git hist --all
ΠΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (rebase Π²ΠΌΠ΅ΡΡΠΎ merge)
git checkout dev git rebase master git hi
Rebase VS Merge
ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ΅ΡΠΊΠ° dev Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π΅ΡΠΊΠΈ master. ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ. ΠΠ΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²Π΅ΡΠΊΠΈ dev Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π²Π΅ΡΠΊΠ° master ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΠΏΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΠΉ.ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ rebase, Π° ΠΊΠΎΠ³Π΄Π° merge?
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ rebase:- ΠΡΠ»ΠΈ Π²Π΅ΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΠΈ ΡΠ°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠΉ. ΠΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠΈΡ Π²Π΅ΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
- ΠΠΎΠ³Π΄Π° Π²Π°ΠΆΠ½Π° ΡΠΎΡΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²Π΅ΡΠΊΠΈ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° rebase ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²).
Π£ΡΠΈΡΡΠ²Π°Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ, Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ rebase Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΎΠΊ, Π° merge Π΄Π»Ρ Π²Π΅ΡΠΎΠΊ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
git clone hello cloned_hello
ΠΠΌΠ΅Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²
git remote#Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ git remote show origin
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ
#Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ git branch#Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ git branch -a
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
cd ../cloned_hello git fetch git hist --all#ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ git merge origin/master
#ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ fetch ΠΈ merge cd ../cloned_hello git pull git hist --all
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ
git branch --track dev origin/dev git branch -a git hist --max-count=2
Π§ΠΈΡΡΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git clone --bare hello hello.git
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
cd hello git remote add shared ../hello.git
ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git checkout master git add README git commit -m "Added shared comment to readme" git push shared master
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
cd ../cloned_hello git remote add shared ../hello.git git branch --track shared master git pull shared master cat README
ΠΠ°ΠΏΡΡΠΊ git ΡΠ΅ΡΠ²Π΅ΡΠ°
#ΠΈΠ· ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ git daemon --verbose --export-all --base-path=.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ git ΡΠ΅ΡΠ²Π΅ΡΡ
git clone git://localhost/hello.git network_hello cd network_hello ls
ΠΊΡΡΡΠΎΠ²: b35apo: en: documentation: githowto: start [CourseWare Wiki]
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GIT Ρ ΠΊΠ»ΡΡΠΎΠΌ SSH
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²Π΅ΡΡΠΈΠΉ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ GITu. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠΠΠΠ ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ git. ΠΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π² FEL, GitLab ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Ρ ΠΎΡΡΠΈΠ½Π³ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ GIT. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² CTU ΡΡΡΠ΄Π΅Π½ΡΡ FEL ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GitLab Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ (ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ) Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ GitLab, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Π²Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ SSO Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠ»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ GIT ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ SSH-ΠΊΠ»ΡΡ Π½Π° Git-ΡΠ΅ΡΠ²Π΅ΡΠ΅ (SSH-ΠΊΠ»ΡΡ).
ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ SSH-ΠΊΠ»ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ (Π² Linux) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ssh-keygen
, ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π£Π΄Π°Π»Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏΒ». ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½Π°Ρ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½Π°Ρ ΡΠ°ΡΡΠΈ ΠΊΠ»ΡΡΠ° ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ .ssh
Π² Π²Π°ΡΠ΅ΠΌ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅:
ssh-keygen ΠΊΠΎΡΠΊΠ° ~ /.ssh / id_rsa.pub
ΠΡΠ±Π»ΠΈΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΊΠ»ΡΡΠ° ( id_rsa.pub
) ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΈΠ»Π΅ GitLab — Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ ΡΠ°ΡΡΡ ( id_rsa
) Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ°:
ΠΠ½Π°ΡΠΎΠΊ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ β ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ β SSH-ΠΊΠ»ΡΡΠΈ
ΠΠ°ΡΠΈΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΠΊΠ° GitLab
ΠΠ΅ΡΠ²Ρ master
Π·Π°ΡΠΈΡΠ΅Π½Π° ΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π½Π΅Π΅ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΎ-ΡΠΎ ΠΈΠ· Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ ΠΏΠΎΠΉΡΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΡΠ΅ΠΌ, ΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π°Π±ΠΎΡ Π·Π°ΡΠΈΡΡ.ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π°ΡΠΈΡΡ Π²Π΅ΡΠΎΠΊ ΠΈ ΠΎΡΠΌΠ΅Π½Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈΒ» β Β«Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉΒ» β Β«ΠΠ°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈΒ» GitLab. ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π²Ρ Π½Π°ΡΡΡΠΈΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π², ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset origin / master, ΡΡΠΎΠ±Ρ ΡΠ½ΠΎΠ²Π° Π²ΡΡΠ°ΡΡ Π½Π° ΠΏΡΡΡ.
Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ
15 Π»Π΅Ρ Git: ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ»ΠΈ ΡΠ·Π½Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅
ΠΡΠ»ΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎ-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, ΡΠΎ Git Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΏΠΈΡΠΊΠ°.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Git Π»ΠΈΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΈΡ ΠΎΡΡ, ΡΠ»ΡΡΠ°ΠΉΠ½Π°Ρ Π»ΡΠ±ΠΎΠ²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ°Π» ΡΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ Linux. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² ΡΡΠΎΠΌ Π΅ΡΡΡ Π΄ΠΎΠ»Ρ ΠΏΡΠ°Π²Π΄Ρ, Π½ΠΎ Git Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π°Π΅ΡΡΡ Π΄ΠΎΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄Π²ΠΈΠ³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΡΠ΄Π°Π²Π°Π»ΠΎΡΡ Π΄ΠΎΡΡΠΈΡΡ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΡΠ°ΡΠ»ΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Git ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ, Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π² ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π½Π΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ Π²ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ.Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½Π°, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, Π½ΠΎ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΡΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ Git ΠΈΠ»ΠΈ Π½Π΅Ρ, Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ Π½ΠΈΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΠ΅ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΠ΅ΡΡ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΡ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Git Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅ΡΠ΅ Ρ Π½ΠΈΠΌ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠΌ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΠ½ΡΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
Π’Π΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ Git
ΠΠ°ΠΊ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅, Π² Git ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°ΡΠ³ΠΎΠ½Π°.Π’Π°ΠΊΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ, ΠΊΠ°ΠΊ Β«ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡΒ», Β«ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡΒ» ΠΈ Β«ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°ΡΡΒ», Π² Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°Π³Π°Π΄ΠΎΡΠ½Ρ, Π° Π² Ρ ΡΠ΄ΡΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ ΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌΠΈ. ΠΠΎΠΏΡΡΠΊΠ° ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΠΎΡΠΈΠ»ΡΠ½ΠΎΠΉ, Π½ΠΎ Π½Π΅ Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΈΠ· ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΡΡΡΡ ΠΡΠΎΠ±Π΅ΡΠ³Π° ΠΏΠΎ Git Terminology 101. ΠΡΠ΅Π³ΠΎ Π·Π° ΠΎΠ΄Π½ΠΎ Π±ΡΡΡΡΠΎΠ΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡ ΠΎ Git.
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ Git
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Git, ΡΠΎ ΠΌΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ΅ΡΠΈΡ Π²Π²ΠΎΠ΄Π½ΡΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Git — ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°.ΠΡΠΈΠΌ ΡΡΠ°ΡΡΡΠΌ ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ Linux ΠΈ UNIX, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ°ΡΡΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠ°ΠΊ ΠΆΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ, ΠΊΠ°ΠΊ ΠΈ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ ΠΈΡ ΠΏΠΈΡΠ°Π». ΠΡΠ° ΡΠ΅ΡΠΈΡ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ Ρ ΡΠ°ΠΌΡΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ Git ΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Ρ Π²Π°Ρ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ.
ΠΠ±ΡΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ Git
ΠΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Git — ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΡΠ»ΡΠΆΠ±Π° Ρ ΠΎΡΡΠΈΠ½Π³Π° Git, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ GitLab ΠΈ GitHub.Π ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ Β«ΠΠ°ΠΊ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΠ°ΠΉΠ»Ρ Π² GitΒ» ΠΠ΅Π΄Π°Ρ ΠΠΈΠ΄ΠΆΠ°ΠΉ ΠΡΠ»ΠΊΠ°ΡΠ½ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Git. ΠΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π½Π΅-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΡΠ»ΡΠΆΠ±Π΅ Ρ ΠΎΡΡΠΈΠ½Π³Π° Git. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Github, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ Git, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ GitLab, Gogs ΠΈ Gitea.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΡΠΎ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Git
ΠΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠΊΡΠΊΡΡΡΠΈΠΈ Π±Π΅ΡΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΠΌ? ΠΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΠΌΡ-ΡΠΎ Π½Π°ΡΡΠΈΡΡΡΡ — ΡΡΠΎ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ-ΡΠΎ ΡΠΎΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ. ΠΡ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ — ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΏΠ΅Ρ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Π²Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ ΡΠ΅Π±Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ, Π° Π²Π°Ρ ΠΌΠΎΠ·Π³ ΠΈ ΠΏΠ°Π»ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΡΠ΅ΠΏΠ»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΎ Π²Π°Ρ ΡΡΠΈΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΠ»Π°Π½Π° Π€ΠΎΡΠΌΠΈ-ΠΡΠ²Π°Π»Π»Ρ Π΄Π»Ρ Git ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π°Π½Ρ Git.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Git
Π₯ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΡΡΠ΅, Ρ ΠΎΡΠΈΡΠ΅ Π½Π΅Ρ, Π½ΠΎ Ρ Git Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π». ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² ΡΠ΅ΡΠΈ Π΅ΡΡΡ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Ρ ΠΎΡΡΠΎΠ² Git, Π½ΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Git Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° Π»ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΠΎΠΌΠΎΡΡ, ΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΡΠ°ΡΡΡ ΠΠΆΠ΅ΡΡΠΈ ΠΠ°ΡΡΠΈΠ»Π΄Π° ΠΎ Lazygit ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡ ΠΠ»Π°ΡΠ° ΠΠ½Π΄Π΅ΡΡΠ° ΠΎ Tig. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΌΠΎΡ ΡΡΠ°ΡΡΡ ΠΎ Git-cola, Sparkleshare ΠΈ Π΄ΡΡΠ³ΠΈΡ . Π Π΄Π°, Π΅ΡΡΡ Π΄Π°ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ Π²Π°ΡΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²!
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Git
ΠΠ½Π°Π½ΠΈΠ΅ — ΡΠΈΠ»Π°, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΡΡΡ Git Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄Π»Ρ Π²Π°Ρ Π·Π°Π³Π°Π΄ΠΊΠΎΠΉ.ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Π΅Π³ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΈΠ»ΠΈ Π·Π½Π°Π΅ΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΈΠ»ΠΈ Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ Π½Π΅ΠΌ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎ Git. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π»ΡΠ΄ΡΠΌ ΡΡΠΎ ΡΠ°ΠΊ Π½ΡΠ°Π²ΠΈΡΡΡ. ΠΠΎΠ³ΡΡΠ·ΠΈΡΠ΅ΡΡ, Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΌΠΏΠ΅ ΠΈ Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π»ΡΠ±ΠΈΡΡ Git!
Avnet HDL git HOWTO (Vivado 2020.2 ΠΈ Π½ΠΎΠ²Π΅Π΅) | element14
ΠΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠ³Π΅ Avnet HDL git HOWTO (Vivado 2020.1 ΠΈ ΡΠ°Π½Π΅Π΅).
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Avnet ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ BSP PetaLinux ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°Π»ΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Π΄Π»Ρ SOM Xilinx Zynq ΠΈ Zynq UltraScale + Zed (MicroZed, PicoZed ΠΈ UltraZed) ΠΈ ΠΏΠ»Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (MiniZed ΠΈ Ultra96), Π½ΠΎ Π·Π½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ, ΡΡΠΎ Avnet ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Xilinx Vivado TCL ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Linux bash Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ? Avnet ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ git Π½Π° github Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΈΡ ΡΡΠ°Π»ΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².ΠΠΈΠ·Π°ΠΉΠ½ Xilinx Zynq ΠΈΠ»ΠΈ Zynq MPSoC, Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² Vivado, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° Π½Π΅ΠΌ. ΠΡΠ° ΡΡΠ°ΡΡΡ Π² Π±Π»ΠΎΠ³Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ°Π»ΠΎΠ½Π½ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ Vivado TCL ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Avnet «hdl» Π½Π° github.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ
Π‘ΠΌΠ΅Π»ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π½Π°ΠΊΠΎΠΌ Ρ:
- ΠΊΠΎΠΌΠ°Π½Π΄Ρ git
- ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° Linux
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Xilinx Vivado
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
- Ubuntu v16.04 LTS ΠΈΠ»ΠΈ v18.04 LTS 64-ΡΠ°Π·ΡΡΠ΄Π½Π°Ρ ΠΠ‘ Ρ ΠΎΡΡΠ°
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Vivado ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½Ρ
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ:
- ΠΠ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (https: // www. xilinx.com/products/design-tools/vivado/memory.html). ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Avnet UltraZed-EV SOM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Zynq UltraScale + 7EV (ΡΠ°ΠΌΠΎΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Avnet ΠΈΠ»ΠΈ SOM), Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ 11 ΠΠ ΠΠΠ£.
- ΠΠ΅ ΠΌΠ΅Π½Π΅Π΅ 100 ΠΠ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ git Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π² ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΡΡ ΠΏΠ°ΠΏΠΊΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ git, ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ. Π ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 100 ΠΠ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π² ΠΏΠ°ΠΏΠΊΡ / home /
$ cd ~
$ mkdir -p git / avnet
$ cd git / avnet
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Avnet Β«hdlΒ» ΠΈ Β«bdfΒ». Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Β«bdfΒ» Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΏΠ»Π°Ρ Vivado (BDF), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΡΡΡΠΈΡ Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ SOM ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Xilinx ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ BDF Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΏΠ»Π°Ρ (ZC702, ZCU102 ΠΈ Ρ. Π.) Π Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΡ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Vivado. Avnet ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄Π»Ρ BDF, Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΡ Π½Π° ΠΈΡ SOM ΠΈ ΠΏΠ»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
$ git clone https://github.com/avnet/bdf.git
Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ git «hdl» Ρ ΡΠ°Π½ΡΡΡΡ Π²ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ TCL ΠΈ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΡΠ°ΠΉΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ IP ΠΈ Ρ. Π.) ).
$ git clone https://github.com/avnet/hdl.git
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ git
ΠΠ°ΠΊ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°Π΅ΡΠ΅, git ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ Π²Π΅ΡΡΠΈΠΉ. ΠΠ»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ bdf, Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅.ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ hdl, ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΠΈ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Vivado ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ, wtc. ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ
$ cd bdf $ git checkout master
$ cd ../hdl $ git checkout 2020.2
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Avnet Π΄Π»Ρ Gitiv projects ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ:
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
ΠΏΠ»Π°Ρ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ SBC, SOM ΠΈ Π½Π΅ΡΡΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡ.ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΠΏΠΊΠ° SBC ΠΈΠ»ΠΈ SOM ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΡΡΠ΅Π½Π°ΡΠΈΠΈ TCL ΠΈ Ρ. Π.) ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π΄ΠΈΠ·Π°ΠΉΠ½Π°. |
ip | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ IP-Π°Π΄ΡΠ΅ΡΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Avnet, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ . |
ΠΏΡΠΎΠ΅ΠΊΡΡ | Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ Vivado. ΠΡΠ° ΠΏΠ°ΠΏΠΊΠ° ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ git. |
ΡΡΠ΅Π½Π°ΡΠΈΡ | ΠΡΠ° ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ° ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ° project_scripts ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ TCL Π΄Π»Ρ ΠΏΠ»Π°ΡΡ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ. |
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ | Π£ΡΡΠ°ΡΠ΅Π»ΠΎ. ΠΠ½ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ΅ΠΊΡΡΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ½ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ. |
ΠΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π±ΡΠ»Π° Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ². Avnet Π²Π·ΡΠ»Π° Π½Π° ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π°ΡΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π½Π°ΡΠΈΡ ΡΡΠ°Π»ΠΎΠ½Π½ΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ.
ΠΠ½Π°ΡΠΎΠΌΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ±ΠΎΡΠΊΠΈ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΊΡΠΈΠΏΡ ΡΠ±ΠΎΡΠΊΠΈ Vivado, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠΌ Π·Π° ΡΠ΅ΠΏΠΎΡΠΊΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ
ΡΠΊΡΠΈΠΏΡ ΡΠ±ΠΎΡΠΊΠΈ make_u96v2_sbc_base.tcl.
ΠΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊΠΈΠΌ ΡΠΆ Π±ΠΎΠ»ΡΡΠΈΠΌ, Π½ΠΎ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π·Π΄Π΅ΡΡ. ΠΡΠΎΡ ΡΠΊΡΠΈΠΏΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ:
- ΠΠΌΡ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΡ: board = u96v2_sbc
- ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ: project = base
- Π‘Π»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Xilinx SDK: sdk = no
- Π‘Π»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Vivado ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡ: close_project = yes
- ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°: dev_arch = zynqmp
ΠΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ.tcl, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ:
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Ρ
- ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ TCL Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² BDF (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ hdl git)
- ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΠ°, IP ΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ΅ project_scripts: u96v2_sbc_base.tcl
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π»ΡΠ±ΠΎΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Xilinx SDK (ΡΡΡΠ°ΡΠ΅Π»ΠΎ, SDK ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° Vitis)
ΠΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΊΡΠΈΠΏΡ ΡΠ±ΠΎΡΠΊΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ project_scripts (u96v2_sbc_base.tcl) Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Vivado, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ Π»ΡΠ±ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ (ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π° BDF)
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π»ΡΠ±ΡΠ΅ IP-Π±Π»ΠΎΠΊΠΈ Avnet, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄ΠΈΠ·Π°ΠΉΠ½ Π±Π»ΠΎΠΊΠ° Vivado ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π±Π»ΠΎΠΊ Zynq ΠΈΠ»ΠΈ Zynq UltraScale + Processing System (PS). ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ»Π°Ρ)
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, IP-Π±Π»ΠΎΠΊΠΈ, ΠΌΠ΅ΠΆΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ AXI, ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Ρ. Π΄.Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Programmable Logic (PL) (ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ Boards Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ)
- ΠΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ HDL ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡ
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΈΠ½ΡΠ΅Π· ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Π°ΡΡ
ΠΈΠ²Π° Π΄Π»Ρ Π΄ΠΈΠ·Π°ΠΉΠ½Π° (
_ _ .xsa)
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΡΠ΅Π΄Ρ ΡΠ±ΠΎΡΠΊΠΈ
ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Vivado Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Xilinx Vivado ΠΈ SDK.
$ source / tools / Xilinx / Vivado / <Π²Π΅ΡΡΠΈΡ Vivado> /settings64.sh
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅! <ΠΠ΅ΡΡΠΈΡ Vivado> ΠΠΠΠΠΠ Π‘ΠΠΠ’ΠΠΠ’Π‘Π’ΠΠΠΠΠ’Π¬ Π²Π΅ΡΠΊΠ΅ git, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ «hdl».
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ±ΠΎΡΠΊΠΈ Vivado
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
$ cd ~ / git / avnet / hdl / scripts
$ vivado -mode -mode batch -source ./make_u96v2_sbc ΠΠ°ΡΠ½Π΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠ°, ΠΈ Π² ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π±Π»ΠΎΠΊΠ° ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² Vivado.
$ vivado &
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π±ΡΡΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡ projects /
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ OK, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°Π³ΠΈ Π² . ΠΠ·ΡΡΠΈΡΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½ΠΈΠΆΠ΅.
ΠΠ· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Vivado:
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π²Π΅ΡΡΠΈΡ Vivado, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²Π΅ΡΠ²ΠΈ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Β«HDLΒ», ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ TCL.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ <> / hdl / Scripts.
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠ°ΡΠ½Π΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠ°, ΠΈ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π±Π»ΠΎΠΊΠ° ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΠ·ΡΡΠΈΡΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡ Vivado Π·Π°ΠΊΠΎΠ½ΡΠΈΠ» ΡΡΡΠΎΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ Π±Π»ΠΎΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΡΡΠΈΡΡ, ΠΊΠ°ΠΊ Π±ΡΠ» ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ Π½ΡΠΆΠ΄.
Π¦Π΅Π½Π½ΠΎΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ°
ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΈΠ΄Π΅Ρ, Π»Π΅ΠΆΠ°ΡΠ°Ρ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠ±ΠΎΡΠΊΠΈ TCL ΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ github «hdl», ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Avnet SOM ΠΈΠ»ΠΈ SBC , Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ.ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Xilinx Ρ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Zynq ΠΈ Zynq MPSoC. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ IP-ΡΡΡΡΠΎΠΉΡΡΠ² PS ΠΈ PL, ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Ρ. Π., ΠΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°ΡΠΎΠ²ΡΠ΅ ΠΌΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΠ»Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² Avnet ΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΎΡΠΏΡΠ°Π²Π½ΡΡ ΡΠΎΡΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ°Π»ΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.ΠΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ Π²Π½ΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄.
Git — ΠΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠ»ΠΎΡ ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
Π Π½Π΅Ρ, ΡΡΠΎ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΠΊ!
Π£ Π²ΡΠ΅Ρ ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°ΡΡ ΠΏΠ»ΠΎΡ ΠΈΠ΅ Π΄Π½ΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ», ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ. Π ΡΡΠ°ΡΡΡΡ, Π² Git Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌΠΈ ΡΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ°ΡΠΈΡΠΌΠΈ, ΠΈ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ
ΠΠΉ … ΠΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ ΠΎΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.ΠΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ:
git commit --amend -m "Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅"
ΠΠΎΠΉΡΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌΠΡΠΉΡΠΈ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
ΠΡ ΡΠΆΠ΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½ΠΎ Π·Π°Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ
Π² ΠΊΠΎΠΌΠΌΠΈΡ:
git add <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°>
git commit --amend HEAD ~ 1
ΠΠΎΠΉΡΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌΠΡΠΉΡΠΈ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
git reset - ΠΌΡΠ³ΠΊΠ°Ρ ΠΠΠΠΠΠΠ ~ 1
ΠΠΎΠΉΡΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌΠΡΠΉΡΠΈ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ: β οΈ Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
git reset --hard HEAD ~ 1
ΠΠΎΠΉΡΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌΠΡΠΉΡΠΈ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ±ΡΠΎΡ Π΄ΠΎ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²Π΅ΡΠΊΠΈ:
git reset --hard origin / <Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΎΡΠ²Π΅ΡΠΊΠΈ>
ΠΠΎΠΉΡΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌΠΡΠΉΡΠΈ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git revert
, ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ:
git revert HEAD
ΠΠΎΠΉΡΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌΠΡΠΉΡΠΈ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΎΡΠΊΡ. ΠΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅, ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ …
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, — ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert
:
git revert -m 1
ΠΠΎΠΉΡΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌΠΡΠΉΡΠΈ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° commit_id
— ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ:
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
-
git reset HEAD ~ 3
(Π²ΠΎΠ·Π²ΡΠ°Ρ Π½Π° ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π΄ΠΎ HEAD). -
git reset --hard
(Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ).
-
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
git reset
, Π΅ΡΠ»ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π°, ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π²Π½ΠΎΡΠΈΡΡ ΠΏΠ»ΠΎΡ ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ.ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
git revert
, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ.ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
git log
Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ Ρ, ΠΈ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π»ΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΠΈΠ»ΠΈ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΌΠ½Π΅ ΠΎΠ± ΡΡΠΎΠΌ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ . Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠ΅!
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Git — ΠΊΠ°ΠΊ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ | Π’ΠΎΠ»Π°Π½ΠΈ ΠΠ΅Π½ΡΠΎΠ½ | Startup
Git ΠΈ GitHub — ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΠΈΡ Π½Π°ΡΡΡΠ°Π΅Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.ΠΡ Π²ΡΠ΅ Π·Π½Π°Π΅ΠΌ ΠΎΠ± ΡΡΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠ΅ΠΉ Π²ΡΠ΅ΠΌΡ ΠΌΠ°Π³ΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ!
ΠΠΎΡ Π±ΡΡΡΡΠΎΠ΅ ΠΈ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ.
Π€ΠΎΡΠΎ: Icons8 Team Π½Π° UnsplashΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ, Π½Π°
Π£ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
1) Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π²Π΅ΡΡΠΈ:
$ git log --oneline
ΠΠΎΡ Π³Π΄Π΅ ΡΡΠΎ ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎ Π²Ρ Π΄Π°Π»ΠΈ ΡΠ΅Π±Π΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ! ΠΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ.ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄ΠΎΡΡΠΎΠΉΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΈΡΠ΅ΡΠ΅, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅ΡΠΈΡΡ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΎΡΡΡΠ΄Π°. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΡ, Π΄Π°ΡΠ° ΠΈ Π°Π²ΡΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΡΡΠΈΡΡ ΡΠ΅Π³ --oneline
.
2) ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ²ΠΎΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitHub ΡΠ΅ΡΠ΅Π· Π²Π΅Π±-ΡΠ°ΠΉΡ GitHub. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΏΠΎ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ΡΡ ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ.
ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π΅ΡΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ. ΠΠ΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈ ΡΠ°ΡΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡΠ»Π° ΡΠΈΡΡΠΎΠΉ, ΠΈΠ·Π±Π°Π²ΠΈΡ Π²Π°Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ΄ΡΠΈ ΡΡΠΈΠΌ ΠΏΡΡΠ΅ΠΌ.
ΠΠ°ΠΊΠΎΠΉ Π±Ρ Π²Π°ΡΠΈΠ°Π½Ρ Π²Ρ Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ, Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ.
ΠΠ΅ΡΠ½ΡΡΡΡΡ ΠΊ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π² Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git checkout ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ Π±Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΈ Π²Π΅ΡΠΊΡ), ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ:
$ git checkout.
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ «». — ΠΠ°ΠΌ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠΎ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΡΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Ρ Π²Π°Ρ Π² Π½ΠΎΠ²ΠΎΠ΅ Β«ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²ΡΒ» Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ, ΠΈ Π»ΡΠ±ΡΠ΅ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ.
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ Π²Π°Ρ ΠΊ Π²Π΅ΡΡΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡ Π²Π΅ΡΡΠΈΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
$ git add.
$ git commit -m "ΠΠΎΠ·Π²ΡΠ°Ρ ΠΊ"
$ git push
ΠΠ°ΠΉΡΠ΅ ΡΠ΅Π±Π΅ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ΡΡ !!
ΠΠΎΡ ΠΈ Π²ΡΠ΅! ΠΡ ΠΏΠΎΠ²Π΅ΡΠ½ΡΠ»ΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅! Π£ΡΠ°!
Git: ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ
Π Π΄Π²ΡΡ
ΡΠ»ΠΎΠ²Π°Ρ
: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git rebase source-commit --onto target-branch
-
target-branch
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«Π²Π΅ΡΠ²Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡΡΒ» -
source-commit
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈΒ»
ΠΠΎΠΏΡΡΡΠΈΠΌ, my-feature-branch
ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° master
, ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° production
.Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ (ΡΠ°ΠΌΡΠΉ Π²Π΅ΡΡ
Π½ΠΈΠΉ = ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ):
- ΡΠΈΠΊΡΠ°ΡΠΈΡ 6 [my-feature-branch]
- ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 5
- ΡΠΈΠΊΡΠ°ΡΠΈΡ 4 [ΠΌΠ°ΡΡΠ΅Ρ]
- ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 3
- ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 2 [ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ]
- ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 1
ΠΠ΄Π΅ΡΡ master
ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ
Π΅ΡΠ΅ Π½Π΅Ρ Π² production
(Π½ΠΎΠΌΠ΅ΡΠ° 3 ΠΈ 4).
ΠΡΠΎΡΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ git rebase production
ΠΈΠ· my-feature-branch
Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ 3 ΠΏΠΎ 6 Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ master
Π² production
.ΠΡΠΎ Π½Π΅ ΡΠΎ, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΎΡΡΡΠ±ΠΈΡΡ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ master
(Π½ΠΎΠΌΠ΅ΡΠ° 5 ΠΈ 6) ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΈΡ
Π½Π° production
. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ (Π½Π°Ρ
ΠΎΠ΄ΡΡΡ Π² my-feature-branch
):
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ
git rebase --onto production master
ΠΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ git, ΡΡΠΎ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ master
Π½Π° production
, ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΉ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅:
- ΡΠΈΠΊΡΠ°ΡΠΈΡ 6 [my-feature-branch]
- ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 5
- ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 2 [ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ]
- ΡΠΎΠ²Π΅ΡΡΠΈΡΡ 1
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ ΠΎΠ½Π° Π±ΡΠ»Π° Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅.
ΠΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Ρ ΡΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π° Π²Π΅ΡΠΎΠΊ (ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΡΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ).
ΠΡ ΠΈΡΠ΅ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² DevOps?Π£ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΡΡΠΈΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°. Π²ΠΊΡΠΏΠ΅ ΡΠΎ ΡΡΠΎΠΊΠ°ΠΌΠΈ? ΠΡ Ρ ΡΡΠΈΠΌ Π·Π½Π°ΠΊΠΎΠΌΡ. Π‘ Π½Π°ΡΠΈΠΌ Β«DevOps ΠΊΠ°ΠΊ ΡΡΠ»ΡΠ³Π°Β» ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ, ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΈ ΠΎΠΏΡΡΠΎΠΌ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ.
Git: ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ git Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ git push
.
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ git push Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ refspec, Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ refspec, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ refspec Π½Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π·Π°Π΄Π°Π½Π½ΡΡ
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
-
Π½ΠΈΡΠ΅Π³ΠΎ
— Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ. -
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅
— Π½Π°ΠΆΠ°ΡΡ Π²ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅ΡΠ²ΠΈ. ΠΡΠ΅ Π²Π΅ΡΠ²ΠΈ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π½Π° ΠΎΠ±ΠΎΠΈΡ ΠΊΠΎΠ½ΡΠ°Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΌΠΈ. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. -
Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ
— ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠ²Ρ Π² Π²ΠΎΡΡ ΠΎΠ΄ΡΡΡΡ Π²Π΅ΡΠ²Ρ. -
tracking
— ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ Π΄Π»ΡΠ²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°
. -
ΡΠ΅ΠΊΡΡΠ°Ρ
— ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ Π² ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ , ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅
(ΡΠΌ. ΠΡΡΠ΅).
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ
$ git config --global push.default ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅
ΠΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠ΄Π²ΠΈΠ³Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅:
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅
git config --global push.ΡΠΎΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ»Π°Π³Π° --global
ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ»ΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠ°ΠΊ ΡΠ΅Π±Ρ Π²Π΅Π΄Π΅Ρ, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΡΠ½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push origin my-branch
, ΡΡΠΎΠ±Ρ ΡΠ²Π½ΠΎ ΠΏΡΠΎΡΠΎΠ»ΠΊΠ½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΈΠ· Π½Π°Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ
— ΡΡΠΎ ΡΠ°ΠΌΡΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ push. ΠΠ΄Π½Π°ΠΊΠΎ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ: ΠΊΠΎΠ³Π΄Π° Π²Π΅ΡΠΊΠ° Ρ Π²Π°ΡΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΅Π΅ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
Π₯ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, Π½Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠ²ΡΠΌΠΈ . ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ git pull
Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈ Git Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ Π²Π°Ρ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠ²Ρ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -u
:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ
git push -u
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ git push -u
Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π·, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, Π½ΠΎ Π·Π°Π±ΡΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅.