πŸ”§ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ git: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³ΠΈΠ΄ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git submodule add <URL> <ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΏΠ°ΠΏΠΊΠ΅>

<URL> - это URL рСпозитория субмодуля, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ.

<ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΏΠ°ΠΏΠΊΠ΅> - это ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² вашСм Π³Π»Π°Π²Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git.

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ· рСпозитория "https://github.com/example/submodule.git" Π² ΠΏΠ°ΠΏΠΊΡƒ "submodule" Π² вашСм Π³Π»Π°Π²Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

git submodule add https://github.com/example/submodule.git submodule

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ git

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ субмодуля Git β€” это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ способ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшний Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго основного рСпозитория. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Π½ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… содСрТимоС Π² ваш основной Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ВмСсто этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для связи с внСшним Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Git Π² ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π¨Π°Π³ 1: ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом являСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Git. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 'cd' Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ.

cd ΠΏΡƒΡ‚ΡŒ_ΠΊ_Π²Π°ΡˆΠ΅ΠΌΡƒ_ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ

Π¨Π°Π³ 2: Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Git

ПослС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 'git submodule add'. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ URL внСшнСго рСпозитория ΠΈ ΠΏΡƒΡ‚ΡŒ, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

git submodule add URL_внСшнСго_рСпозитория ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŽ

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с URL рСпозитория 'https://github.com/example/repo.git' ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ 'submodule' Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

git submodule add https://github.com/example/repo.git submodule

Π¨Π°Π³ 3: Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ субмодуля

ПослС добавлСния субмодуля Git, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ субмодуля с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 'cd' ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 'git submodule init' ΠΈ 'git submodule update' для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ обновлСния субмодуля.

cd ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŽ
git submodule init
git submodule update

Π¨Π°Π³ 4: Π Π°Π±ΠΎΡ‚Π° с субмодулСм

ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ обновлСния субмодуля Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ ΠΊΠ°ΠΊ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Git. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 'git pull', 'git push' ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдниС измСнСния ΠΈΠ· внСшнСго рСпозитория ΠΈ внСсти свои измСнСния Π² ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Π¨Π°Π³ 5: Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ субмодуля

Если Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 'git submodule deinit' ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ запись ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ 'git rm'. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию субмодуля, Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ внСшний Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ '--cached'.

git submodule deinit ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŽ
git rm ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŽ

НапримСр, Ссли ваш ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ находится ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ 'submodule', ΠΊΠΎΠΌΠ°Π½Π΄Π° для удалСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

git submodule deinit submodule
git rm submodule

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ субмодуля Git позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшний Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Π΅Π· Π΅Π³ΠΎ фактичСского копирования. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с субмодулСм ΠΊΠ°ΠΊ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. БлСдуя ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ шагам, Π²Ρ‹ смоТСтС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Git Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ GIT рСпозитория с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ суб-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ

Как Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° github Π½ΠΎΠ²ΠΈΡ‡ΠΊΡƒ Π·Π° 2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹

2.2 Git - ΠžΡΠ½ΠΎΠ²Ρ‹ - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸš€ Как Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° GitHub с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git Bash πŸ“‚

Как Π² PyCharm Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько строк сразу πŸš€| ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ инструкция

πŸ”§ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΡŒ git: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³ΠΈΠ΄ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

πŸ”₯ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Git: пошаговая инструкция

✨ Как ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ»ΠΈΠΊΠΎΠΌ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ строку Π² VS Code? πŸ–‹οΈ