Π²ΡΠΏΡΡΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ . Git ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ , Π½Π°Π΄ΡΠΆΠ½ΡΡ ΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π±Π°Π·ΠΈΡΡΡΡΠΈΠ΅ΡΡ Π½Π° ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Β«Π·Π°Π΄Π½ΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΡΠ²Π½ΠΎΠ΅ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΠ»ΡΠΌ Π²ΡΠΏΡΡΠΊΠΎΠΌ Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ 504 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ 64 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ 12 Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΈΠ½ΡΠ»ΠΈ ΡΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. :
- ΠΡΡΡΠ΅ΡΡΠ²Π»ΡΠ½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Git, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ Git-ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΠΎΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π²Π΅ΡΠΎΠΊ ΠΈ ΡΠ΅Π³ΠΎΠ² Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΎΡΠ΄Π°ΡΠ΅ΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠΎΠΊΡΠ°ΡΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ»ΠΎΠΊ. Π Π°Π½Π΅Π΅ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ»ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠ»ΠΎΠΊ Π²ΠΎ Π²ΡΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ» ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π²Π΅ΡΠΊΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ» Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΡΠ³ΠΈΠΌ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ ΡΠΎ ΡΡΠ°ΡΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ Π½ΠΎΠ²ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠΎΡΡΡ.
- Π ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git configΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βshow-scopeΒ» ΡΠΏΡΠΎΡΠ°ΡΡΠ°Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Git ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ°Π·Π½ΡΡ
ΠΌΠ΅ΡΡΠ°Ρ
: Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ (.git/info/config), Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (~/.gitconfig), Π² ΠΎΠ±ΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (/etc/gitconfig), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Β«git configΒ» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΈΡΠΊΠΎΠΌΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π±ΡΠ»Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΎΠΏΡΠΈΡ Β«βshow-originΒ», Π½ΠΎ ΠΎΠ½Π° Π»ΠΈΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°, ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ», Π½ΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Β«git configΒ» ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΡΠΈΠΉ Β«βsystemΒ», Β«βglobalΒ» ΠΈΠ»ΠΈ Β«βlocalΒ». ΠΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΡ Β«βshow-scopeΒ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ βshow-originΒ»:
$ git βlist βshow-scope βshow-origin
global file:/home/user/.gitconfig diff.interhunkcontext=1
global file:/home/user/.gitconfig push.default=current
[β¦] local file:.git/config branch.master.remote=origin
local file:.git/config branch.master.merge=refs/heads/master$ git config βshow-scope βget-regexp βdiff.*β
global diff.statgraphwidth 35
local diff.colormoved plain$ git config βglobal βunset diff.statgraphwidth
- Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΎΠΊ Π² URL. ΠΡΠ±ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ HTTP ΠΈ ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Git ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (http.extraHeader, credential.helper), ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ URL (credential.https://example.com.helper, credential.https://example.com.helper). ΠΠΎ ΡΠΈΡ
ΠΏΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΎΠΊ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ *.example.com, Π΄ΠΎΠΏΡΡΠΊΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ HTTP, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΎΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΡΡΡΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
. Π Git 2.26 Π΄Π°Π½Π½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΡΡΡΡΠ°Π½Π΅Π½Ρ ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ:
[credential Β«https://*.example.comΒ»]
username = ttaylorr
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (partial clones), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ Π»ΠΈΡΡ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«git sparse-checkout addΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Β«checkoutΒ» Π»ΠΈΡΡ ΠΊ ΡΠ°ΡΡΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΡΠ°Π·ΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git sparse-checkout setΒ» (ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ git/git Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π±Π»ΠΎΠ±ΠΎΠ², ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠΌΠ΅ΡΠΊΠΎΠΉ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Β«tΒ» ΠΈ Β«DocumentationΒ», ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ:$ git clone βfilter=blob:none βsparse git@github.com:git/git.git
$ cd git
$ git sparse-checkout init βcone$ git sparse-checkout add t
β¦.
$ git sparse-checkout add Documentation
β¦.
$ git sparse-checkout list
Documentation
t - ΠΠ°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git grepΒ», ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠ°ΠΊ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΠ°ΠΊ ΠΈ Π² ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡΡ . ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° Π΄ΠΎΠΏΡΡΠΊΠ°Π»ΠΎΡΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² (Β«git grep βthreadsΒ»), Π½ΠΎ ΠΏΠΎΠΈΡΠΊ Π² ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡΡ Π±ΡΠ» ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ½ΡΡΠΎ Π·Π° ΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π΅Π»Π»ΠΈΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ ΡΠΈΡΠ»Ρ ΡΠ΄Π΅Ρ CPU, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ²Π½ΠΎΠ³ΠΎ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΈ Β«βthreadsΒ».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΡΡΠ±ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡΡΠ΅ΠΉ, ΡΡΡΠ»ΠΎΠΊ ΠΈ ΠΏΡΠΎΡΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git worktreeΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΠΊΠΎΠΏΠΈΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΊΠΈΡ ΡΠ²Π΅ΡΠΎΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡΡΡ ANSI escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΈ Β«git config βcolorΒ» ΠΈΠ»ΠΈ Β«git diff βcolor-movedΒ» ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠΈΡ Β«βformatΒ» Π΄Π»Ρ ΡΡΠΊΠΎ-Π³ΠΎΠ»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Β«%C(brightblue)Β».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° , ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ git ΡΡΠ΅Π±ΡΠ΅ΡΡΡ hook Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (partial clones), ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΡΠΎΠ²ΡΡ
ΠΊΠ°ΡΡ
(bitmap machinery) Π΄Π»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΎΡΠ΄Π°ΡΠΈ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π±Π»ΠΎΠ±Ρ (βfilter=blob:none ΠΈ βfilter=blob:limit=n) ΠΏΡΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ
ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΡΡΡΡΠ΅Π΅. GitHub ΠΎΠ±ΡΡΠ²ΠΈΠ» ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ°ΡΡΠ΅ΠΉ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌΠΈ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. - ΠΠΎΠΌΠ°Π½Π΄Π° Β«git rebaseΒ» ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π±ΡΠΊΠ΅Π½Π΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ βmergeβ (ΡΠ°Π½ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π΄Π»Ρ Β«rebase -iΒ») Π²ΠΌΠ΅ΡΡΠΎ βpatch+applyβ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅Π»ΠΎΡΠ°Ρ Π±ΡΠΊΠ΅Π½Π΄Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° (git rebase βcontinue) Π½ΠΎΠ²ΡΠΉ Π±ΡΠΊΠ΅Π½Π΄ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π° ΡΡΠ°ΡΡΠΉ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΡΠ°ΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ Β«βapplyΒ» ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ βrebase.backendβ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ βapplyβ.
- ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π·Π°Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· .netrc, ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΊ Π²ΠΈΠ΄Ρ, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠΌΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° gpg.minTrustLevel Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄ΠΎΠ²Π΅ΡΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ.
- Π Β«git rmΒ» ΠΈ Β«git stashΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βpathspec-from-fileΒ».
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ SHA-2 Π²ΠΌΠ΅ΡΡΠΎ SHA-1.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
