π΄Git Fork: ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈ ΡΠΎΠ²Π΅ΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² 2021
Git fork - ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git Π½Π° Π²Π°ΡΠ΅ΠΌ Π»ΠΈΡΠ½ΠΎΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git fork, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡΠΊΠ½ΡΡΡ.
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "Fork" Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΏΡΠ°Π²ΠΎΠΌ ΡΠ³Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ.
- Π Π²Π°ΡΠ΅ΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
- ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠΎΡΠΊ ΠΊ ΡΠ΅Π±Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git clone [URL Π²Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΠΊΠ°]
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ²ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΠΊΠΈ, Π΄Π΅Π»Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΠΈ ΠΏΡΡΠΈΡΡ ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ²ΠΎΠΉ ΡΠΎΡΠΊ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
git fork: ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
Git - ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. Fork (Π² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ - Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅) ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Git, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ fork?
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ fork Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Ρ ΠΎΡΡΠΈΠ½Π³Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, GitHub), ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΡΠΊ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡΠΊΠ½ΡΡΡ.
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "Fork" Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΡΠΊ.
- ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "Fork", Git ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° Π²Π°ΡΠ΅ΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅.
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² fork?
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΊΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ. Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΉ fork, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- Π‘ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ²ΠΎΠΉ fork Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git clone. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΠ½Π΅ΡΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git commit. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π²Π°Ρ fork Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
git clone https://github.com/Π²Π°Ρ-Π°ΠΊΠΊΠ°ΡΠ½Ρ/ΠΈΠΌΡ-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.git
git commit -m "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°"
git push origin master
ΠΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ fork Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ?
Π§Π°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉ fork Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. Π§ΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π°Ρ fork, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git remote add. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git fetch. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π²Π°ΡΠΈΠΌ fork Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git merge. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git commit ΠΈ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΈΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push.
git remote add upstream https://github.com/Π²Π»Π°Π΄Π΅Π»Π΅Ρ-ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ/ΠΈΠΌΡ-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.git
git fetch upstream
git merge upstream/master
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Git fork ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΡΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ fork ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π΅. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ git fork.