Git origin master push: linux — Difference between origin master & origin/master with git pull and git push commands
ΠΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΊΠΎΠ΄Π°, ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ git push -f
ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ
Π½Π°ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΠΏΠ°Π΄Π°Π²Π°Π½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ, Π·Π²ΡΡΠΈΡ ΡΠ°ΠΊ: Β«Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΅ΡΡ ΠΆΡΠ»ΡΡΠΉ ΡΠ½Π΅Π³ Π΄Π΅Π»Π°ΠΉ git push -f
Β». ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠΎΡΠ΅Π½ ΠΌΠ°ΠΊΡΠΈΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠ²ΠΎΠΈΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅ΠΌΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΠ, Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΡΠ°ΡΠΈΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ Π΄Π΅Π»Π°ΡΡ. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΌΠ»Π°Π΄Π΅Π½ΡΡ ΠΈ ΠΎΠ³ΠΎΠ½Ρ: Β«ΡΠΏΠΈΡΠΊΠΈ Π΄Π΅ΡΡΠΌ Π½Π΅ ΠΈΠ³ΡΡΡΠΊΠΈΒ» ΠΈ Π±Π°ΡΡΠ°. ΠΠΎ ΠΌΡ ΡΠ°ΡΡΡΠΌ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Ρ, ΠΈ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ Π²ΠΎΠΏΡΠΎΡ Β«Π° ΠΏΠΎΡΠ΅ΠΌΡ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ?Β» Π²ΡΡΠ°ΡΡ Π² ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΎΡΡ. ΠΡΠ° ΡΡΠ°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΌΠΎΡΠΈΠ²Π°ΠΌ Π½Π°ΡΠ΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΌΠΈΡΠ°ΠΏΠ°, Π½Π° ΡΠ΅ΠΌΡ: Β«ΠΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²Β».
Π― ΡΠ»ΡΡΠ°Π», ΡΡΠΎ ΡΠΌΠ΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅ΠΌ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅Π½ΡΠΎΡΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠΎ ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ²Π΅Ρ Π½Π° Π½Π΅Π³ΠΎ, Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ?
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π±ΡΡΡΡΡΠΉ ΡΠΊΡΠΊΡΡΡ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΡΠ½ΠΎ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΎΠ± ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΡΠ΅ΠΏΠΎ Π²ΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΡΡ ΡΠ°ΡΡΡ, Π½ΠΎ Π΄Π°ΠΆΠ΅ Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠ·Π½Π°Π» Π΄Π»Ρ ΡΠ΅Π±Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ, Π° ΠΊΠΎΠ΅-ΡΡΠΎ ΡΡΠ°ΡΠΎΠ΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠΌ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ git-ΡΠ΅ΠΏΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π½ΠΈΡ . ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ 40-Π·Π½Π°ΡΠ½ΡΠΉ Ρ ΡΡ (20 Π±Π°ΠΉΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² 16-ΡΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Π²Π·ΡΡΠ° ΠΈΠ· The Git Community Book
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² β ΡΡΠΎ blob (ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°), tree (Π½Π°Π±ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° blobs ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ trees) ΠΈ commit. ΠΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° commit ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° tree, Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: Π΄Π°ΡΠ°/Π²ΡΠ΅ΠΌΡ, Π°Π²ΡΠΎΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
ΠΠ΄Π΅ Π·Π΄Π΅ΡΡ Π²Π΅ΡΠΊΠΈ ΠΈ ΡΡΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ? Π ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ: Π²Π΅ΡΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π½Π΅ΠΉ, ΡΡΠ³ β Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΠΏΠΎ. Π’ΠΎ Π΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π² IDE ΠΈΠ»ΠΈ GUI-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΡΠ°ΡΠΈΠ²ΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π΅ΡΠΎΡΠΊΠΈ Ρ ΠΊΡΡΠΆΠΎΡΠΊΠ°ΠΌΠΈ-ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ Π½Π° Π½ΠΈΡ β ΠΎΠ½ΠΈ ΡΡΡΠΎΡΡΡΡ Π½Π° Π»Π΅ΡΡ, ΠΏΡΠΎΠ±Π΅Π³Π°Ρ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ² Π²Π΅ΡΠΎΠΊ Π²Π½ΠΈΠ· ΠΊ Β«ΠΊΠΎΡΠ½ΡΒ». Π‘Π°ΠΌΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΠΏΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ°ΠΌ null.
ΠΠ°ΠΆΠ½ΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ: ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π²Π΅ΡΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΠΌΠΌΠΈΡΡ Π½Π΅ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Β«ΡΠ°ΡΡΠΈΒ» Ρ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ Π±ΡΠ» HEAD Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠ΄Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout -b <branch-name>
.
ΠΡΠ°ΠΊ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π²ΡΠ΅Π΄Π½ΠΎ?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΈ ΡΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ², Π΄ΡΡΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠ΅ΡΡΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΠΌΠ°Π½Π΄Π° git push -f
ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΠ΅.
ΠΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΠΌΠ°Π»ΠΎ ΠΊΡΠΎ Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉΒ» ΠΊΠ»ΡΡ --force-with-lease
, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, Π΅ΡΠ»ΠΈ Π² ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΅ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. Π― Π²ΡΠ΅Π³Π΄Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠΎ -f/--force
.
ΠΡΠΎΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π° git push -f
ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΡΠ΅Π΄Π½ΠΎΠΉ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ (merge) Π²Π΅ΡΠΊΠΈ Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ, Π³Π΄Π΅ ΠΎΠ½Π° ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»Π°ΡΡ (ΡΠΎΡΠ½Π΅Π΅, ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠ΄Π°Π»ΡΠ½Π½ΡΠ΅ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ), ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π°Π΄ΡΠΊΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² (ΠΏΠΎ ΡΠΈΡΠ»Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ). ΠΠ° ΡΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΡΠ²Π΅Ρ: Π΅ΡΠ»ΠΈ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Gitflow ΠΈΠ»ΠΈ Gitlab Flow, ΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ.
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ Π΅ΡΡΡ Π½Π΅ΠΏΡΠΈΡΡΠ½Π°Ρ ΠΏΠΎΠ±ΠΎΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ: ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΊ Π±Ρ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ· Π²Π΅ΡΠΊΠΈ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΠΈΡΡΠ΅Π·Π°ΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ°ΡΡΡΡ Π½Π°Π²Π΅ΡΠ½ΠΎ Π²ΠΈΡΠ΅ΡΡ Π² ΡΠ΅ΠΏΠΎ. ΠΠ΅Π»ΠΎΡΡ, Π½ΠΎ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎ. Π ΡΡΠ°ΡΡΡΡ, ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ git ΡΠΎΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, Π²Π²Π΅Π΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° git gc --prune
. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ git-Ρ
ΠΎΡΡΠΈΠ½Π³ΠΎΠ², ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ GitHub ΠΈ GitLab, Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² ΡΠΎΠ½Π΅.
ΠΡΠ°ΠΊ, ΡΠ°Π·Π²Π΅ΡΠ² ΠΎΠΏΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ: Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ?
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ git Ρ
ΠΎΡΡ ΡΠ°Π·, Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ» ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Π΄ΡΡΠ³ ΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ, ΡΡΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ: Π²ΠΊΡΠ°Π»Π°ΡΡ Π΄ΠΎΡΠ°Π΄Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠ° Π² ΠΊΠΎΠ΄, ΡΠ΄Π΅Π»Π°Π» ΠΊΠΎΠΌΠΌΠΈΡ Π½Π΅ ΠΎΡ ΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Ρ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ e-mail Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ), Π·Π°Π±ΡΠ» Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» (Π΅ΡΠ»ΠΈ Π²Ρ, ΠΊΠ°ΠΊ Ρ, Π»ΡΠ±ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ git commit -a
). ΠΠ°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ, Π²Π΅Π΄Ρ Ρ
ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΈ ΠΎΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠΆΠ΅!
ΠΠΎ ΡΡΠΎ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π±ΠΎΠ»ΡΡΡΡ ΡΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΈΠ»ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ, ΠΎΡΡΡΠ»Π°Ρ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ (4-5 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²), ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΅Π²ΡΡ. ΠΠ²ΠΎΠ΅-ΡΡΠΎΠ΅ Π½Π΅ΡΡΠΎΠΌΠΈΠΌΡΡ ΡΠ΅Π²ΡΡΠ²Π΅ΡΠΎΠ² Π·Π°ΠΊΠΈΠ΄Π°Π»ΠΈ Π²Π°Ρ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΠΈ ΠΌΠ΅Π»ΠΊΠΈΠΌΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌΠΈ ΠΏΡΠ°Π²ΠΎΠΊ, Π° ΡΠΎ ΠΈ Π²ΠΎΠ²ΡΠ΅ Π½Π°ΡΠ»ΠΈ ΠΊΠΎΡΡΠΊΠΈ (Π΅ΡΡ 4-5 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²). ΠΠ°ΡΠ΅ΠΌ QA Π½Π°ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΠ°Π΅Π²ΡΡ ΡΠ»ΡΡΠ°Π΅Π², ΡΠΎΠΆΠ΅ ΡΡΠ΅Π±ΡΡΡΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ (Π΅ΡΡ 2-3 ΠΊΠΎΠΌΠΌΠΈΡΠ°). Π Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π²ΡΡΡΠ½ΠΈΠ»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π°Π²ΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΏΠΎΡΠΈΠΊΡΠΈΡΡ.
ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠ°ΡΡ, Π½Π΅ Π³Π»ΡΠ΄Ρ, ΠΊΠ½ΠΎΠΏΠΊΡ Merge, ΡΠΎ Π² Π³Π»Π°Π²Π½ΡΡ Π²Π΅ΡΠΊΡ (Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΎΠ½Π° ΠΏΠΎ ΡΡΠ°ΡΠΈΠ½ΠΊΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ master) Π²ΠΎΠ»ΡΡΡΡΡ ΠΏΠΎΠ»ΡΠΎΡΠ° Π΄Π΅ΡΡΡΠΊΠ° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠΈΠΏΠ° Β«My feature, day 1Β», Β«Day 2Β», Β«Fix testsΒ», Β«Fix reviewΒ» ΠΈ Ρ.Π΄. ΠΡ ΡΡΠΎΠ³ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅ΠΆΠΈΠΌ squash, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΉΡΠ°Ρ Π΅ΡΡΡ ΠΈ Π² GitHub, ΠΈ Π² GitLab, Π½ΠΎ Ρ Π½ΠΈΠΌ Π½Π°Π΄ΠΎ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌΠΈ: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ
β Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π°Π²ΡΠΎΡΠ° ΡΠΈΡΠΈ Π½Π° ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ Merge (Ρ Π½Π°Ρ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠΎΠ±ΠΎΡ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠΉ ΡΠ΅Π»ΠΈΠ·-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅ΠΏΠ»ΠΎΠΉ). ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΡΡΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Π² ΡΠ΅Π»ΠΈΠ· ΡΡ
Π»ΠΎΠΏΠ½ΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²Π΅ΡΠΊΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ git rebase
.
ΠΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ ΠΊ ΠΊΠΎΠ΄-ΡΠ΅Π²ΡΡ Π²Ρ ΡΠΆΠ΅ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΡΠ΅ΠΏΠΎ, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠ΅ΠΉ ΡΠ°Π»Π°Ρ Β«ΠΠ»ΠΈΠ²ΡΠ΅Β». Π’Π°ΠΊΠΎΠ΅ Π±ΡΠ²Π°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΡΠ° ΠΏΠΈΠ»ΠΈΠ»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π΅Π»Ρ, ΠΈΠ±ΠΎ Π±ΡΠ»Π° ΠΏΠ»ΠΎΡ ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΈΠ»ΠΈ, Ρ ΠΎΡΡ Π·Π° ΡΡΠΎ Π² ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π°Ρ Π±ΡΡΡ ΠΊΠ°Π½Π΄Π΅Π»ΡΠ±ΡΠΎΠΌ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΡΠ½ΡΠΉ merge request, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ΅Ρ Π°Π» ΠΊΠΎ ΠΌΠ½Π΅ Π½Π° ΡΠ΅Π²ΡΡ Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄:
Π£ ΠΌΠ΅Π½Ρ ΡΡΠΊΠ° ΠΌΠ°ΡΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ½ΡΠ»Π°ΡΡ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Β«Report abuseΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ°ΠΊ Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΠ²Π΅ΡΡ ΠΈΠ· 50 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Ρ ΠΏΠΎΡΡΠΈ 2000 ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΡ ΡΡΡΠΎΠΊ? Π ΠΊΠ°ΠΊ Π΅Π³ΠΎ, ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ, ΡΠ΅Π²ΡΡΠΈΡΡ?
Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Ρ ΠΌΠ΅Π½Ρ ΡΡΠ»ΠΎ Π΄Π²Π° Π΄Π½Ρ ΠΏΡΠΎΡΡΠΎ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠ΅Π²ΡΡ. Π ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°; ΠΊΡΠΎ-ΡΠΎ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π³Π»ΡΠ΄Ρ, ΠΆΠΌΡΡ Approve, ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ Π·Π° ΡΠ°Π·ΡΠΌΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΎΠ±Π·ΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ.
ΠΠΎ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ ΡΠΎΠ²Π°ΡΠΈΡΡ. ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π»ΡΡΡΠ΅ΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ, ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΈΡΡΠΎΡΠΈΡ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄, ΡΠ°Π·Π±ΠΈΠ² Π½Π° Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ Π·Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΠ°ΠΌΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ: Β«ΡΠΎΠ·Π΄Π°Π» Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π΄Π»Ρ Π½Π΅Π³ΠΎΒ», Β«ΠΏΠΎΡΡΡΠΎΠΈΠ» ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²Β», Β«Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉΒ», Β«Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ΅ΡΡΡΒ».
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π²ΡΡΠΈΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ (ΠΈ GitHub, ΠΈ GitLab ΡΡΠΎ ΡΠΌΠ΅ΡΡ) ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π°Π±Π΅Π³Π°ΠΌΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ²ΠΎΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π² ΠΏΠ΅ΡΠ΅ΡΡΠ²Π°Ρ
.
Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π²ΡΡ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡ ΡΠΎΡ ΠΆΠ΅ git rebase
Ρ ΠΊΠ»ΡΡΠΎΠΌ --interactive
. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΌΡ Ρ
ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ. ΠΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
50 ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ git rebase --interactive HEAD~50
(ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ β50β Π²Π°ΡΡ ΡΠΈΡΡΡ).
ΠΡΡΠ°ΡΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΠΎΠ΄Π»ΠΈΠ²Π°Π»ΠΈ ΠΊ ΡΠ΅Π±Π΅ Π²Π΅ΡΠΊΡ master, ΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ rebase Π½Π° ΡΡΡ Π²Π΅ΡΠΊΡ, ΡΡΠΎΠ±Ρ merge-ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΠΌΠ°ΡΡΠ΅ΡΠ° Π½Π΅ ΠΏΡΡΠ°Π»ΠΈΡΡ Ρ Π²Π°Ρ ΠΏΠΎΠ΄ Π½ΠΎΠ³Π°ΠΌΠΈ.
ΠΠΎΠΎΡΡΠΆΠΈΠ²ΡΠΈΡΡ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ rebase Π½Π° master Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Π΅ΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Π½Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π²Π΅ΡΠΊΠ΅ master. Π‘ΠΌ. ΡΡ Π΅ΠΌΡ:
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ Π²Π·ΡΡΡ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Pro Git
ΠΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² C4 ΠΈ C3 ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ, ΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΊΠΎΠΌΠΌΠΈΡ C4 ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠ²ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π½Π° Π²ΡΠΎΡΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π² C4β.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²Π΅ΡΠΊΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π²Π°ΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈ ΡΠ°ΡΡΡΡΡΡ ΠΈΠ· Π²Π΅ΡΡΠΈΠ½Ρ master. Π‘Π°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ, master Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°: git pull --rebase origin/master
(ΠΊΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, git pull
ΡΠ°Π²Π½ΠΎΡΠΈΠ»Π΅Π½ git fetch && git merge
, Π° ΠΊΠ»ΡΡ --rebase
Π·Π°ΡΡΠ°Π²ΠΈΡ git ΡΠ΄Π΅Π»Π°ΡΡ rebase Π²ΠΌΠ΅ΡΡΠΎ merge).
ΠΠ΅ΡΠ½ΡΠΌΡΡ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΊ git rebase --interactive
. ΠΠ³ΠΎ Π΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠ΅ΡΡ Π»ΡΠ΄ΠΈ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅, ΠΏΠΎΡΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π½Π΅ΡΠ²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΎΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ Π½Π°ΠΏΡΡΠ³Π°ΡΡΡΡ. ΠΠΎΡ ΡΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅:
ΠΡΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Guzzle. ΠΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ rebase Π΅ΠΌΡ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π» Π±Ρβ¦
Π ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠ½ΠΈΠ·Ρ Π²Π°Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΡΠΏΡΠ°Π²ΠΊΠ° ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π΅Π»Π°ΡΡ. ΠΠ°Π»Π΅Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΡΠ΅ΡΠ°Π΅ΡΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ Π² Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅. ΠΡΡ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΠ°Π»ΠΊΠ°: pick β ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ, reword β ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°, squash β ΡΠ»ΠΈΡΡ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ (ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ
, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ β ΡΡΠΎ ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠΎΡΠΊΠΎΠΉ Π½ΠΈΠΆΠ΅), drop β Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ, edit β ΠΈ ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ β ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΈ Π·Π°ΠΌΠ΅ΡΠ΅ΡΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ git Π²ΡΡΡΠ΅ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ edit, ΠΎΠ½ Π²ΡΡΠ°Π½Π΅Ρ Π² ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΠ΅ΠΆΠΈΠΌ staged. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π²ΡΡ, ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ²Π΅ΡΡ
Π½Π΅Π³ΠΎ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠ²Π°ΡΡ git rebase --continue
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ rebase.
ΠΠ°, ΠΈ ΠΊΡΡΠ°ΡΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ rebase ΡΠ΅Π΄ΠΊΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΆ Π±Π΅Π· ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ². ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΠ½ΡΠ²ΡΠΈ Π³ΠΎΠ»ΠΎΠ²Ρ, ΠΏΠΎ Π²ΠΎΠ»ΠΎΡΠ°ΠΌ Π½Π΅ ΠΏΠ»Π°ΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΈ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π²ΡΡ ΠΏΡΠΎΠΏΠ°Π»ΠΎ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°ΠΏΡΠ»ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ git rebase --abort
, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Π΅ΡΠ½ΡΡ Π²ΡΡ ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ rebase Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΈ ΠΈΡΡΠΎΡΠΈΠΈ, ΠΈ ΠΎΡΡΠ°Π²Π»ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ pick, ΠΏΡΠΈΠ΄Π°Π²Π°Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΠΉ Π²ΠΈΠ΄, ΠΊΠ°ΠΊ Π³ΠΎΠ½ΡΠ°Ρ ΠΊΡΠ²ΡΠΈΠ½Ρ. Π₯ΠΎΡΠΎΡΠΈΠΌ ΡΠΎΠ½ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π» Π²ΡΡΠ΅, Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π΅Π»ΡΠ½ΡΠΌΠΈ (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ edit ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΡ ΠΎΠ΄Π΅ β squash).
ΠΡΡ ΠΎΠ΄Π½Π° ΡΠΈΠ³ΡΡΠ° Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΈΠ»ΠΎΡΠ°ΠΆΠ°, ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π΅ ΡΠ°Π·Π»ΠΎΠΆΠΈΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌ β git add --patch
. ΠΠ½Π° Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈ ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅, Π½ΠΎ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ edit ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΠΏΡΠΈΡΡΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΡΠΎΠΊ, ΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π½Π΅ ΠΎΡΠΈΠ±Π°ΡΡΡ, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ GUI-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° IDE.
Π£Π±Π΅Π΄ΠΈΠ²ΡΠΈΡΡ Π΅ΡΡ ΡΠ°Π·, ΡΡΠΎ Π²ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π²Ρ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎΠΉ Π΄ΡΡΠΎΠΉ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°Π»ΡΡ ΡΡΠΎΡ ΡΡΡΠΎΡΠΈΠ°Π»: git push --force
. ΠΠΉ, ΡΠΎ Π΅ΡΡΡ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, --force-with-lease
!
ΠΠΎΠ½Π°ΡΠ°Π»Ρ Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΡΡ Π½Π° ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ rebase Π½Π° master) ΡΠ°Ρ, Π° ΡΠΎ ΠΈ Π΄Π²Π°, Π΅ΡΠ»ΠΈ ΡΠΈΡΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΠΈΡΡΠ°Ρ. ΠΠΎ Π΄Π°ΠΆΠ΅ ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΆΠ΄Π°ΡΡ Π΄Π²Π° Π΄Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π²ΡΡΠ²Π΅Ρ Π·Π°ΡΡΠ°Π²ΠΈΡ ΡΠ΅Π±Ρ Π½Π°ΠΊΠΎΠ½Π΅Ρ Π²Π·ΡΡΡΡΡ Π·Π° Π²Π°Ρ ΡΠ΅ΠΊΠ²Π΅ΡΡ, ΠΈ Π΅ΡΡ ΠΏΠ°ΡΡ Π΄Π½Π΅ΠΉ, ΠΏΠΎΠΊΠ° ΠΎΠ½ ΡΠΊΠ²ΠΎΠ·Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠ΄Π΅ΡΡΡΡΡ. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΆΠ΅ Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² 30-40 ΠΌΠΈΠ½ΡΡ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ IntelliJ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² (full disclosure: ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ FunCorp ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ).
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, ΠΎΡ ΡΠ΅Π³ΠΎ Ρ ΠΎΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΡΡ, β Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ Π²Π΅ΡΠΊΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠ΄-ΡΠ΅Π²ΡΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ±ΡΠΎΡΠΎΠ²Π΅ΡΡΠ½ΡΠΉ ΡΠ΅Π²ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅Ρ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΊ ΡΠ΅Π±Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π½Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· IDE ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΡΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌ, ΠΊΡΠΎ Π΄ΠΎΡΠΈΡΠ°Π» Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°! ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ, Π½ΠΎ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠΌ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΡΠ΅Π²ΡΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ»ΡΠ²ΡΠ΅ Ρ Π°ΠΊΠΈ Π΄Π»Ρ git β Π΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΈΠΌΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ !
Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ «u»? «git push-U origin master» vs » git push origin master»
Ρ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, ΡΠΆΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΌΠΎΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΠΎΠ½ΡΡΡ Π΅Π³ΠΎ.
ΠΎΡ kernel.org Π΄Π»Ρ git push
:
— u
—set-upstream
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΠΈΠ»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΠΆΠ°ΡΠ°, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡΠ»ΠΊΡ Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ(ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² git-pull (1) ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π ΡΠ°Π·Π΄Π΅Π»Π΅
branch.<name>.merge
Π² git-config (1).
Π·Π΄Π΅ΡΡ branch.<name>.merge
Π‘ git config
:
branch.<name>.merge
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ
branch.<name>.remote
, Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ°Ρ Π²Π΅ΡΠ²Ρ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ. ΠΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ git fetch/git pull, ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΠ²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° git push (ΡΠΌ. push.Π½Π΅ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.) ΠΠΎΠ³Π΄Π° Π² Π²Π΅ΡΠ²ΠΈ<name>
, ΠΎΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ git fetch, ΡΡΠΎ refspec ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΌΠ΅ΡΠ΅Π½ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² FETCH_HEAD. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ ΡΠ°ΡΡΡ refspec ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ref, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ"branch.<name>.remote"
. ΠΡΠΎΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ git pull (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ git fetch) Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π²Π΅ΡΠ²ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ΅Π· ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ git pull ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ»ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΠΉ refspec. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³ΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ git pull ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠ»ΠΈΠ²Π°Π»ΡΡ Π²<name>
ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡbranch.<name>.merge
Π² Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΠΊΡ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ . (ΡΠΎΡΠΊΠ°) Π΄Π»Ρbranch.<name>.remote
.
Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΠ» ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ github, ΠΈ Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΠΆΠ°Π» ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π½Π° Π½Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
git push -u origin master
Π·Π°ΡΠ΅ΠΌ Ρ Π½Π΅Π²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΠΆΠ°Π» ΡΠ²ΠΎΡ Π²ΡΠΎΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ:
git commit -m '[...]'
ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΠ½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠ°ΡΡ Π½Π° origin
Π‘ master
, Ρ ΠΏΠΎΠ±Π΅ΠΆΠ°Π»:
# note: no -u
git push origin master
ΡΡΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ? ΠΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°. Π Π°Π·Π²Π΅ Ρ «ΠΎΡΠΌΠ΅Π½ΡΠ»»git push -u origin master
?
222
Π°Π²ΡΠΎΡ: ClosureCowboy
ΠΊΠ»ΡΡ «Π°ΡΠ³ΡΠΌΠ΅Π½Ρ-ΠΌΠ΅Π½Π΅Π΅ git-pull». ΠΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ git pull
ΠΈΠ· Π²Π΅ΡΠ²ΠΈ, Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π²Π΅ΡΠ²ΠΈ, git ΡΠΌΠΎΡΡΠΈΡ Π½Π° branch.<name>.merge
Π½Π°ΡΡΡΠΎΠΉΠΊΠ°, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΡ, ΠΎΡΠΊΡΠ΄Π° ΡΡΠ½ΡΡΡ. git push -u
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅.
ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·Π½ΠΈΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΏΡΡΡΡΡ Π²Π΅ΡΠΊΡ:
$ git checkout -b test
Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΌΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π±Π΅Π· -u
:
$ git push origin test
$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.test.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "test"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
ΡΠ΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ -u
:
$ git push -u origin test
Branch test set up to track remote branch test from origin.
Everything up-to-date
$ git pull
Already up-to-date.
ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ»Π° Π½Π°ΡΡΡΠΎΠ΅Π½Π° ΡΠ°ΠΊ, ΡΡΠΎ git pull
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ, Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π²Π΅ΡΠ²ΠΈ.
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: ΡΠ°Π΅Π²ΡΠ΅:
- ΠΊΠ°ΠΊ ΠΠ°ΡΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ
git pull
ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡgit push
. ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΠ²ΡΠΊΠ½Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ-u
ΡΡΠΎΠ±Ρ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π°Ρpush.default
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ config Π΄Π»Ρupstream
. -
git push -u <remote> HEAD
Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΠΊΠ°ΡΡ ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠ²Ρ ΠΊ Π²Π΅ΡΠ²ΠΈ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π°<remote>
(Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡgit push
ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ).
git push -u origin master
— ΡΡΠΎ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ:
git push origin master ; git branch --set-upstream master origin/master
ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π±ΡΠ»ΠΈ -u
!
ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ:
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π΄Π»Ρ Π²Π°Ρ ΠΎΠ½Π° Π²ΡΠ±Π΅ΡΠ΅Ρ Π²Π°ΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ Π½Π°Π±ΡΠ°Π»ΠΈ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ»ΠΈ Π²Ρ Π½Π΅ git remote add
, Ρ
ΠΎΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ :).
Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ :
ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ -u
ΡΠ»Π°Π³ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΡΡΠ»ΠΊΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π½Π° Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅.
Π²Π°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ git pull
Π±Π΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ git push -u origin master
ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ git pull
ΠΈ git Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ Π²Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈΠΌΠ΅Π»ΠΈ Π² Π²ΠΈΠ΄Ρ git pull origin master
.
Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
4
Π°Π²ΡΠΎΡ: Adepoju Oluwasegun
Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git bash, ΡΡΠΎΠ±Ρ ΡΠΎΠ»ΠΊΠ°ΡΡ ΠΈ ΡΡΠ½ΡΡΡ Π² Github:
git status
git pull
git add filefullpath
git commit -m "comments for checkin file"
git push origin branch/master
git remote -v
git log -2
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΡΡΡ:
edit filename.*
ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ Π²Π΅ΡΠ²ΠΈ ΠΈ ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΡ:
git show-branch
-7
Π°Π²ΡΠΎΡ: Kamta Mishra
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «git remote add …» ΠΈ «git push origin master»?
Update: ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ½ΡΡΡΠΉ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅Ρ ΡΠ²Π΅ΠΊΠΎΠ²Π΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ git push
, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ» ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° ΡΡΠΎ.
Π²Π°ΡΠ΅ ΡΠ΅Π·ΡΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠ»ΡΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ-ΠΊΠ°ΠΊ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ URL-Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ-ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΡΠ°ΠΊ ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ URL Π½Π΅ git://[email protected]/peter/first_app.git Π½ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ — ΡΡΠΎ ΡΡΠΎ Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ? ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡΡ? Ρ.ΠΠΠ’? Π― ΡΡΠ°ΡΠ°Π»ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ .git Π² ΠΊΠΎΠ½ΡΠ΅, ΠΈ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠ»ΠΈ Π½Π΅Ρ .ΠΠΠ’, ΡΡΠΎ Π΅ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ? Git Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ git?
Π΄Π²Π° URL-Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ
ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. Π’ΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ git://
Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° git, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ. ΠΡΡΠ³ΠΎΠΉ, [email protected]:peter/first_app.git
, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΠΎ SSH-ΡΡΠΎ «ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΈΠ»Ρ scp», ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. Π§ΡΠΎ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ ΡΡΠΈΠ»Ρ scp ΡΠ²Π»ΡΠ΅ΡΡΡ git
ΠΈΠ· — Π·Π° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ GitHub ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅Π»ΠΎ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ-ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ, ΡΡΠΎ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ, ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ SSH, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²ΠΈΡ git push origin master
, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΎΠ»ΡΠΊΠ°, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ git push
. ΠΡΠΎ ΠΈΠ·-Π·Π° ΡΠ΅ΡΠΈΡ ΡΡΡΠ΄Π½ΡΡ
Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:)
- Π΅ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ (Π²
remote.master.url
Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ, ΡΠΎ ΡΡΠΎ. - Π΅ΡΠ»ΠΈ Π½Π΅Ρ «refspec» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
master
,master:my-experiment
, etc.) ΡΠΊΠ°Π·Π°Π½ΠΎ, Π·Π°ΡΠ΅ΠΌ git ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ, ΡΡΠΎ ΠΈ Π²Π΅ΡΠ²Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΡΠΎΡΡΠΎ Π΅ΡΡΡ Π²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌmaster
ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎmaster
Π½Π° ΠΏΡΠ»ΡΡmaster
.
Π»ΠΈΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ (ΠΈ ΡΠ°ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ»ΡΡΠΎΠ²), Ρ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡΠΌΡ:
git push origin master
… ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΠΊΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ.
Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΎΡΠ²Π΅ΡΠΎΠ², ΡΡΠΎ Π·Π²ΡΡΠΈΡ Π΄Π»Ρ ΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ are ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ git ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ — Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈ Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ, ΠΠΎΡΠ΅ΠΌΡ π ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌ, git can ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ SVN, Π½ΠΎ Π·Π½Π°Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΏΡΠ»ΡΡΠ°Ρ ΠΈ Π²Π΅ΡΠ²ΡΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎ, ΠΈ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π±ΠΎΡΡ ΠΊ Π»ΡΡΡΠ΅ΠΌΡ. ΠΠ°ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎ ΡΠ΅ΠΌΠ΅ΡΡΡΠΎΠ²ΠΎΠΌ ΠΊΡΡΡΠ΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π» Π‘ΠΊΠΎΡΡ Π§Π°ΠΊΠΎΠ½ Π² ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠ°-ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² ΡΡΠ°Ρ Π²ΡΠ΅ΠΌ Π²ΠΈΠ΄Π°ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ git ΠΈ Mercurial, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½Ρ ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π³ΠΈΠ±ΠΊΠΈ, ΡΡΠΎ ΡΡΠΎΠΈΠ»ΠΎ Π±Ρ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΡ ΠΊΡΡΡΡ ΠΏΠΎ Π½ΠΈΠΌ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π»ΡΠ΄ΡΠΌ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ Ρ git
, ΡΡΠ° ΠΊΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΡΠΎΠ³ΠΎ-ΡΠ°Π±ΠΎΡΠ° Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π²Π΅ΡΠ²Π΅ΠΉ, Π»Π΅Π³ΠΊΠΎ ΠΈΡ
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ, ΠΈ ΡΠΎΠ»ΠΊΠ°Ρ ΠΈ Π²ΡΡΡΠ³ΠΈΠ²Π°Ρ ΠΈΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΡΠ°Π½Π΅ΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ°Π»Ρ ΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ:
- ΠΏΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ git ΡΠ°ΠΊ ΡΡΡΠ΄Π½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². (Π₯ΠΎΡΡ Ρ Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΡ Google Π΄Π»Ρ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° git, ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΡΠ΅Π±Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» (ΠΈΠ»ΠΈ ΠΎΡΠ²Π΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° :)) ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ.)
- Π² git Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΉΡΠ°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π½ΠΈΡ , Π½ΠΎ Π·Π°ΠΏΡΡΡΠ²Π°ΡΡ Π»ΡΠ΄Π΅ΠΉ.
Git push | Atlassian Git Tutorial
ΠΠΎΠΌΠ°Π½Π΄Π° git push
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git fetch
: ΠΏΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ fetch ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ, Π° ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ push ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΡΡΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ. ΠΠ°ΡΡΡΠΎΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git remote
. ΠΠΎΠΌΠ°Π½Π΄Π° push ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ. ΠΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π½ΠΈΠΆΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ git push
gitΒ pushΒ <remote>Β <branch>
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Git Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π΅ΡΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅Π»ΡΠ·Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅.
gitΒ pushΒ <remote>Β --force
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅Π»ΡΠ·Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π°Π³ --force
, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠ²ΠΎΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ
.
gitΒ pushΒ <remote>Β --all
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π²ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΎΠΊ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
gitΒ pushΒ <remote>Β --tags
ΠΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π²Π΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΈ --all
ΡΠ΅Π³ΠΈ Π½Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π€Π»Π°Π³ --tags
ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ git push
ΠΠΎΠΌΠ°Π½Π΄Π° git push
ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ
Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ push.
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ Π²ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΠΊΠ° master
ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²Π΅ΡΠΊΠΈ master
ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ Π²Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push origin master
. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git push
ΠΏΠΎ ΡΡΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git merge master
, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
Git push ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ
ΠΠΎΠΌΠ°Π½Π΄Π° git push
β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π² Git. ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git remote
. ΠΠΎΠΌΠ°Π½Π΄Ρ git push
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«Π²ΡΠ³ΡΡΠ·ΠΊΠΈΒ», Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ git fetch
ΠΈ git pull
β ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ». ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Β«Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ» ΠΈΠ»ΠΈ Β«Π²ΡΠ³ΡΡΠ·ΠΊΠΈΒ», Π² ΠΌΠ΅ΡΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΈΡ
ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git merge
.
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π² ΡΠΈΡΡΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΡΡΡΠΉ (--bare
) ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΡΠΎΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠ° Ρ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Bitbucket. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ
Π²Π΅ΡΠΎΠΊ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ β ΡΡΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Ρ ΡΠ»Π°Π³ΠΎΠΌ --bare
. Π§ΠΈΡΡΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΈΡΡΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΡΠΌ. Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git init
.
ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ
Git ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΎΡΠΊΠ»ΠΎΠ½ΡΡ push-Π·Π°ΠΏΡΠΎΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅Π»ΡΠ·Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΡ
ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ ΠΈΡΡΠΎΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pull ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅Π΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ merge, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ push Π΅ΡΠ΅ ΡΠ°Π·. ΠΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π² SVN Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ svn update
ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π°Π±ΠΎΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Π€Π»Π°Π³ --force
ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΠ΅Ρ Π²Π΅ΡΠΊΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΠΎΠ΄ Π²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ, ΡΠ΄Π°Π»ΡΡ Π»ΡΠ±ΡΠ΅ Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ Π²Π½Π΅ΡΠ΅Π½Ρ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pull. ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ push ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ Π»ΠΈΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±ΡΠ»ΠΈ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΈ Π²Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git commit --amend
ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ --force
, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΠΈΠΊΡΠΎ ΠΈΠ· ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ Π·Π°Π±ΠΈΡΠ°Π» ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pull.
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΠΎΠΌΠ°Π½Π΄Π° git push ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
Π²ΠΊΠ»Π°Π΄ΠΎΠ² Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ push. Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΏΡΡΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΈΡ
. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΈΡΡΠΈΡΡ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠΌΠΈ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push
.
gitΒ checkoutΒ master
gitΒ fetchΒ originΒ master
gitΒ rebaseΒ -iΒ origin/master
#Β SquashΒ commits,Β fixΒ upΒ commitΒ messagesΒ etc.
gitΒ pushΒ originΒ master
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠΆΠ΅ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ, ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π³Π»Π°Π²Π½Π°Ρ Π²Π΅ΡΠΊΠ° Π±ΡΠ»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° git push
Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
Π²ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ.
ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° push ΠΏΡΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΠΎΠΌΠ°Π½Π΄Π° git commit
ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠΈΡ --amend
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. Π ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ°ΡΡΠΎ Π²Π½ΠΎΡΡΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ» ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½, ΡΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push
ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΠ±ΠΎΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Git Π²ΠΎΡΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΠΏΡΠΈΡ --force
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ push ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
#Β makeΒ changesΒ toΒ aΒ repoΒ andΒ gitΒ add
gitΒ commitΒ --amend
#Β updateΒ theΒ existingΒ commitΒ message
gitΒ pushΒ --forceΒ originΒ master
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠΎΠΌΠ°Π½Π΄Π° git commit --amend
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ push Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ --force
.
Π‘ΡΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π³Π°
ΠΠ½ΠΎΠ³Π΄Π° Π²Π΅ΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΈΡΡΠΈΡΡ Π΄Π»Ρ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ°. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΠ΅ΡΠ΅ΡΡ Π²Π΅ΡΠΊΡ, Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ΅ΡΠ΅ΡΡ ΠΊΠ°ΠΊ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ.
gitΒ branchΒ -DΒ branch_name
gitΒ pushΒ originΒ :branch_name
ΠΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΡΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ branch_name. ΠΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git push
ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅ΡΠΊΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅, Π±ΡΠ΄Π΅Ρ ΡΡΠ΅ΡΡΠ° ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΠΊΠ°.
ΠΡΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ git push origin master -f Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ? β Π₯Π°Π±Ρ Q&A
Π ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΆΠ΅ΡΡΠΊΠ° Π΄ΠΈΡΠΊΡΡΡΠΈΡ ΠΎ ΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ Π΄Π΅Π»Π°ΡΡ push’Ρ Π² ΠΌΠ°ΡΡΠ΅ΡΠ° Ρ ΠΊΠ»ΡΡΠ΅ΠΌ force Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΎΠ³Π΄Π° Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ Π±Π΅ΡΠ΅Ρ ΡΠ΅Π±Π΅ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠ°ΡΠΊ, ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅Π±Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ±ΠΈΡΠ° ΠΎΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΊ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½ Ρ Π½Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ merge request, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΡΠΎ-ΡΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΡΠ»ΠΈ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΡΠΎ Π²Π΅ΡΠΊΠ° ΡΠ»ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π³ΠΈΡΠ»Π°Π±, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ»ΠΈΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠ»ΠΈΠΊΡ.
ΠΠ΄Π½Π°ΠΆΠ΄Ρ Π² ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΠΎΠΏΠ°Π»Π° Π²Π΅ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΌ Π±ΡΡΡ Π΅ΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π°. Π’Π°ΠΊ Π²ΡΡΠ»ΠΎ, ΡΡΠΎ Π²ΠΈΡΠ΅Π» merge request ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ»ΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ, Π½ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π» ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠΊΠ½ΡΠ» Π½Π΅ Π² ΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π³Π΄Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈ ΡΠ»ΠΈΠ» Π½Π΅Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ. Π‘ΡΠ°Π·Ρ ΠΆΠ΅ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ ΡΠ΅Π²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ merge. ΠΡΠΎΡ ΡΠ°ΠΌΡΠΉ ΡΠ΅Π²Π΅ΡΡ ΡΠΏΡΠΎΠ²ΠΎΡΠΈΡΠΎΠ²Π°Π» ΠΏΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π ΠΈΡΠΎΠ³Π΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ — ΡΡΠΎΡ ΡΠ°ΠΌΡΠΉ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ merge Π±ΡΠ» «Π²ΡΡΠ΅Π·Π°Π½», ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Π»Π° ΡΡΡΠ°ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° git push origin master --force-with-lease
.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ:
- Π ΠΈΡΡΠΎΡΠΈΠΈ Π²Π΅ΡΡΠΈΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΌΡΡΠΎΡΠ°. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ — ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΡΠ΅Π» merge ΠΏΠΎ Π½Π΅ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ²Π΅ΡΡ Ρ Π½Π° Π½Π΅Π³ΠΎ ΡΠΏΠ°Π» ΡΠ΅Π²Π΅ΡΡ-ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠ΄ΡΡ Π·Π°ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π²ΡΡ, Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ merge Ρ ΡΠΎΠΉ Π»ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΠ΅ΠΉ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅. Π ΠΈΡΠΎΠ³Π΅ ΠΈΠΌΠ΅Π΅ΠΌ ΠΊΡΡΡ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠ΄Π°.
- Π Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΡΠ΅Π·Π°ΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠΉ merge, ΡΠΎ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π΄Π΅Π»Π°ΡΡ rebase Π½Π° Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ° (Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π±ΡΠ» ΡΠ΅Π²Π΅ΡΡ-ΠΊΠΎΠΌΠΌΠΈΡ) ΠΈ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΎ Π±Ρ ΠΊΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΡΠ°Π·Π²ΡΠ·ΡΠ²Π°ΡΡ.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½Π°ΡΠ°Π»ΡΡ Ρ ΠΎΠ»ΠΈΠ²Π°Ρ.
ΠΠΎΠΏΡΠΎΡΡ:
- ΠΡΠΎ ΠΊΠ°ΠΊ ΡΡΠΈΡΠ°Π΅Ρ — Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ push’Π° Ρ ΡΠΎΡΡΠΎΠΌ?
- Π§ΡΠΎ Ρ ΠΠ°Ρ Π΄Π΅Π»Π°ΡΡ Π΅ΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠ΅ΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎΠΏΠ°Π»ΠΎ ΡΡΠΎ-ΡΠΎ, ΡΠ΅Π³ΠΎ ΡΠ°ΠΌ Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ?
ΠΠΏΠ°ΡΠ½ΠΎΡΡΡ git push βforce ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ git push βforce-with-lease β urvanov.ru
ΠΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ git β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Ρ ΠΎΡΠ΅ΡΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ. Π’ΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ. ΠΡΠ³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡ Π²Π°Ρ Π½Π΅ Π±ΡΠ΄Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ git, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ° ΠΈΠ»ΠΈ e-mail, ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ amend ΠΈΠ»ΠΈ revert, ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ push-Π° git ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Β«ΡΡΠ³Π½ΡΡΡΡΒ»:
$ git push
To https://github.com/urvanov-ru/test0001.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘https://github.com/urvanov-ru/test0001.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push —help’ for details.
$ git push To https://github.com/urvanov-ru/test0001.git ! [rejected]Β Β Β Β Β Β Β Β master -> master (non-fast-forward) error: failed to push some refs to ‘https://github.com/urvanov-ru/test0001.git’ hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: ‘git pull …’) before pushing again. hint: See the ‘Note about fast-forwards’ in ‘git push —help’ for details. |
Π§ΡΠΎΠ±Ρ Π½Π°ΠΌ Π²ΡΡ ΠΆΠ΅ Π·Π°ΠΏΡΡΠΈΡΡ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π»ΠΈΠ±ΠΎ
git push —force origin <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ>
git push —force origin <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ> |
ΠΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΠΈΡΠΊΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅ΡΡ ΡΡΠΈ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Ρ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΊΠ°ΠΊ ΠΌΡ Π·Π°Π±ΠΈΡΠ°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΡΠΎ-ΡΠΎ ΡΡΠΏΠ΅Π» Π·Π°ΠΏΡΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git push —force-with-lease origin <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ>
git push —force-with-lease origin <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ> |
Π’Π°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π»ΡΡΡΠ΅ ΡΠ΅ΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΡΠΏΠ΅Π» Π·Π°ΠΏΡΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π·Π°Π±ΠΈΡΠ°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎ ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡ
ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°ΡΡ, Π° Π²ΡΠ΄Π°ΡΡ Π½Π°ΠΌ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ
push —force-with-lease Π΅ΡΡ ΡΠ°Π·.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ:
Git — ΠΊΠ½ΠΈΠ³Π°
2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (2014)
ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΊΠ½ΠΈΠ³Ρ
ΠΡΡ ΠΊΠ½ΠΈΠ³Π° Pro Git, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π‘ΠΊΠΎΡΡΠΎΠΌ Π§Π°ΠΊΠΎΠ½ΠΎΠΌ ΠΈ ΠΠ΅Π½ΠΎΠΌ Π¨ΡΡΠ°ΡΠ±ΠΎΠΌ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Π°Ρ Apress, Π΄ΠΎΡΡΡΠΏΠ½Π° Π·Π΄Π΅ΡΡ. ΠΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Creative Commons Attribution Non Commercial Share Alike 3.0. ΠΠ΅ΡΠ°ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° Amazon.com.>
- 1.1
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ - 1.2
ΠΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ Git - 1.3
ΠΡΠ½ΠΎΠ²Ρ Git - 1.4
ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° - 1.5
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Git - 1.6
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Git - 1.7
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠΌΠΎΡΡ? - 1,8
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- 1.1
- 2.1
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ - 2.2
ΠΠ°ΠΏΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ - 2.3
ΠΡΠΎΡΠΌΠΎΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² - 2.4
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠΌΠ΅Π½Ρ - 2,5
Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ - 2,6
Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ - 2,7
ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ Π² Git - 2,8
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- 2.1
- 3.1
Π Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ - 3.2
- 3.1
.
ΠΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΊΠΎΠ΄Π°, ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ git push -f
ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ
Π½Π°ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΠΏΠ°Π΄Π°Π²Π°Π½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ, Π·Π²ΡΡΠΈΡ ΡΠ°ΠΊ: Β«Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΅ΡΡ ΠΆΡΠ»ΡΡΠΉ ΡΠ½Π΅Π³ Π΄Π΅Π»Π°ΠΉ git push -f
Β». ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠΎΡΠ΅Π½ ΠΌΠ°ΠΊΡΠΈΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠ²ΠΎΠΈΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅ΠΌΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΠ, Π½Π΅ ΡΡΠ°ΡΠΈΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ Π΄Π΅Π»Π°ΡΡ. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΌΠ»Π°Π΄Π΅Π½ΡΡ ΠΈ ΠΎΠ³ΠΎΠ½Ρ: Β«ΡΠΏΠΈΡΠΊΠΈ Π΄Π΅ΡΡΠΌ Π½Π΅ ΠΈΠ³ΡΡΡΠΊΠΈΒ» ΠΈ Π±Π°ΡΡΠ°.ΠΠΎ ΠΌΡ ΡΠ°ΡΡΡΠΌ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Ρ, ΠΈ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ Π²ΠΎΠΏΡΠΎΡ Β«Π° ΠΏΠΎΡΠ΅ΠΌΡ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ?Β» Π²ΡΡΠ°ΡΡ Π² ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΎΡΡ. ΠΡΠ° ΡΡΠ°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΌΠΎΡΠΈΠ²Π°ΠΌ Π½Π°ΡΠ΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΌΠΈΡΠ°ΠΏΠ°, Π½Π° ΡΠ΅ΠΌΡ: Β«ΠΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²Β».
Π― ΡΠ»ΡΡΠ°Π», ΡΡΠΎ ΡΠΌΠ΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅ΠΌ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅Π½ΡΠΎΡΡΠΊΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠΎ ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ²Π΅Ρ Π½Π° Π½Π΅Π³ΠΎ, Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ?
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π±ΡΡΡΡΡΠΉ ΡΠΊΡΠΊΡΡΡ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ, Π½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π²Ρ ΡΠΎΡΠ½ΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ git-ΡΠ΅ΠΏΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π½ΠΈΡ . ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ 40-Π·Π½Π°ΡΠ½ΡΠΉ Ρ ΡΡ (20 Π±Π°ΠΉΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² 16-ΡΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Π²Π·ΡΡΠ° ΠΈΠ· ΠΠ½ΠΈΠ³ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Git
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² — ΡΡΠΎ blob (ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°), Π΄Π΅ΡΠ΅Π²ΠΎ (Π½Π°Π±ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° blob ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ) ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ.ΠΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° commit ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄Π΅ΡΠ΅Π²ΠΎ, Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: Π΄Π°ΡΠ° / Π²ΡΠ΅ΠΌΡ, Π°Π²ΡΠΎΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
ΠΠ΄Π΅ Π·Π΄Π΅ΡΡ Π²Π΅ΡΠΊΠΈ ΠΈ ΡΡΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ? Π ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ: Π²Π΅ΡΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π½Π΅ΠΉ, ΡΡΠ³ — Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΠΏΠΎ. Π’ΠΎ Π΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π² IDE ΠΈΠ»ΠΈ GUI-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΊΡΠ°ΡΠΈΠ²ΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π΅ΡΠΎΡΠΊΠΈ Ρ ΠΊΡΡΠΆΠΎΡΠΊΠ°ΠΌΠΈ-ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ Π½Π° Π½ΠΈΡ — ΠΎΠ½ΠΈ ΡΡΡΠΎΡΡΡΡ Π½Π° Π»Π΅ΡΡ, ΠΏΡΠΎΠ±Π΅Π³Π°Ρ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ² Π²Π΅ΡΠΎΠΊ Π²Π½ΠΈΠ· ΠΊ Β«ΠΊΠΎΡΠ½ΡΒ».Π‘Π°ΠΌΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΠΏΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ°ΠΌ null.
ΠΠ°ΠΆΠ½ΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ: ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π²Π΅ΡΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΠΌΠΌΠΈΡΡ Π½Π΅ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Β«ΡΠ°ΡΡΠΈΒ» Ρ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ Π±ΡΠ» HEAD Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΠ΄Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout -b <ΠΈΠΌΡ-Π²Π΅ΡΠΊΠΈ>
.
ΠΡΠ°ΠΊ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π²ΡΠ΅Π΄Π½ΠΎ?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΈ ΡΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ², Π΄ΡΡΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠ΅ΡΡΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.ΠΠΎΠΌΠ°Π½Π΄Π° git push -f
ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΠ΅.
ΠΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΠΌΠ°Π»ΠΎ ΠΊΡΠΎ Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉΒ» ΠΊΠ»ΡΡ --force-with-lease
, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, Π΅ΡΠ»ΠΈ Π² ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΅ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ . Π― Π²ΡΠ΅Π³Π΄Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠΎ -f / - force
.
ΠΡΠΎΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π° git push -f
ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΡΠ΅Π΄Π½ΠΎΠΉ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ (ΡΠ»ΠΈΡΠ½ΠΈΡ) Π²Π΅ΡΠΊΠΈ Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ, Π³Π΄Π΅ ΠΎΠ½Π° ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»Π°ΡΡ (ΡΠΎΡΠ½Π΅Π΅, ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ), ΠΌΡΠΈΠΌ Π°Π΄ΡΠΊΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² (ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ).ΠΠ° ΡΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΡΠ²Π΅Ρ: Π΅ΡΠ»ΠΈ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Gitflow ΠΈΠ»ΠΈ Gitlab Flow, ΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ.
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ Π΅ΡΡΡ Π½Π΅ΠΏΡΠΈΡΡΠ½Π°Ρ ΠΏΠΎΠ±ΠΎΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ: ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΊ Π±Ρ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ· Π²Π΅ΡΠΊΠΈ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΠΈΡΡΠ΅Π·Π°ΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ°ΡΡΡΡ Π½Π°Π²Π΅ΡΠ½ΠΎ Π²ΠΈΡΠ΅ΡΡ Π² ΡΠ΅ΠΏΠΎ. ΠΠ΅Π»ΠΎΡΡ, Π½ΠΎ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎ. Π ΡΡΠ°ΡΡΡΡ, ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ git ΡΠΎΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ, Π²Π²Π΅Π΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° git gc --prune
. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ git-Ρ
ΠΎΡΡΠΈΠ½Π³ΠΎΠ², ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ GitHub ΠΈ GitLab, Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² ΡΠΎΠ½Π΅.
ΠΡΠ°ΠΊ, ΡΠ°Π·Π²Π΅ΡΠ²Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ: Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ?
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ git Ρ
ΠΎΡΡ ΡΠ°Π·, Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Π΄ΡΡΠ³ ΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ, ΡΡΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ: Π²ΠΊΡΠ°Π»Π°ΡΡ Π΄ΠΎΡΠ°Π΄Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠ° Π² ΠΊΠΎΠ΄, ΡΠ΄Π΅Π»Π°Π» ΠΊΠΎΠΌΠΌΠΈΡ Π½Π΅ ΠΎΡ ΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Ρ Π»ΠΈΡΠ½ΡΠΌ e-mail Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ), Π·Π°Π±ΡΠ» Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» (Π΅ΡΠ»ΠΈ Π²Ρ, ΠΊΠ°ΠΊ Ρ, Π»ΡΠ±ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ git commit -a
).ΠΠ°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ, Π²Π΅Π΄Ρ Ρ
ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΈ ΠΎΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠΆΠ΅!
ΠΠΎ ΡΡΠΎ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΠ»ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ, ΠΎΡΡΡΠ»Π°Π»ΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ (4-5 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²), ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΅Π²ΡΡ. ΠΠ²ΠΎΠ΅-ΡΡΠΎΠ΅ Π½Π΅ΡΡΠΎΠΌΠΈΠΌΡΡ ΡΠ΅Π²ΡΡΠ²Π΅ΡΠΎΠ² Π·Π°ΠΊΠΈΠ΄Π°Π»ΠΈ Π²Π°Ρ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΠΈ ΠΌΠ΅Π»ΠΊΠΈΠΌΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌΠΈ ΠΏΡΠ°Π²ΠΎΠΊ, Π° ΡΠΎ ΠΈ Π²ΠΎΠ²ΡΠ΅ Π½Π°ΡΠ»ΠΈ ΠΊΠΎΡΡΠΊΠΈ (Π΅ΡΡ 4-5 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²).ΠΠ°ΡΠ΅ΠΌ QA Π½Π°ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΠ°Π΅Π²ΡΡ ΡΠ»ΡΡΠ°Π΅Π², ΡΠΎΠΆΠ΅ ΡΡΠ΅Π±ΡΡΡΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ (Π΅ΡΡ 2-3 ΠΊΠΎΠΌΠΌΠΈΡΠ°). Π Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΠΈ ΠΏΡΠΎΠ±Π½ΠΈΠ»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π°Π²ΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΏΠΎΡΠΈΠΊΡΠΈΡΡ.
ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠ°ΡΡ, Π½Π΅ Π³Π»ΡΠ΄Ρ, ΠΊΠ½ΠΎΠΏΠΊΡ Merge, Π½Π° Π³Π»Π°Π²Π½ΡΡ Π²Π΅ΡΠΊΡ (Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΎΠ½Π° ΠΏΠΎ ΡΡΠ°ΡΠΈΠ½ΠΊΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ master) Π²ΠΎΠ»ΡΡΡΡΡ ΠΏΠΎΠ»ΡΠΎΡΠ° Π΄Π΅ΡΡΡΠΊΠ° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠΈΠΏΠ° Β«ΠΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ, Π΄Π΅Π½Ρ 1Β», Β«ΠΠ΅Π½Ρ 2Β», Β«ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΡΡΒ», Β«ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΠ±Π·ΠΎΡ Β»ΠΈ ββΡ.Π΄. ΠΡ ΡΡΠΎΠ³ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅ΠΆΠΈΠΌ ΡΠΊΠ²ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΉΡΠ°Ρ Π΅ΡΡΡ ΠΈ Π² GitHub, ΠΈ Π² GitLab, Π½ΠΎ Ρ Π½ΠΈΠΌ Π½Π°Π΄ΠΎ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌΠΈ: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅, Π° Π²ΠΎ-Π²ΡΠΎΡΠΎΠΌ — Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π°Π²ΡΠΎΡΠ° ΡΠΈΡΠΈ Π½Π° ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ Merge (Ρ Π½Π°Ρ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠΎΠ±ΠΎΡ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠΉ ΡΠ΅Π»ΠΈΠ·-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅ΠΏΠ»ΠΎΠΉ).ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΌΡΠΌ Π³Π»Π°Π²Π½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Π² ΡΠ΅Π»ΠΈΠ· ΡΡ
Π»ΠΎΠΏΠ½ΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²Π΅ΡΠΊΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ git rebase
.
ΠΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ ΠΊ ΠΊΠΎΠ΄-ΡΠ΅Π²ΡΡ Π²Ρ ΡΠΆΠ΅ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΡΠ΅ΠΏΠΎ, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠ΅ΠΉ ΡΠ°Π»Π°Ρ Β«ΠΠ»ΠΈΠ²ΡΠ΅Β». Π’Π°ΠΊΠΎΠ΅ Π±ΡΠ²Π°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΡΠ° ΠΏΠΈΠ»ΠΈΠ»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π΅Π»Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΡΠ»Π° ΠΏΠ»ΠΎΡ ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°Π½Π°, Ρ ΠΎΡΡ Π·Π° ΡΡΠΎ Π² ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π°Ρ Π±ΡΡΡ ΠΊΠ°Π½Π΄Π΅Π»ΡΠ±ΡΠΎΠΌ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ΅Ρ Π°Π» ΠΊΠΎ ΠΌΠ½Π΅ Π½Π° ΡΠ΅Π²ΡΡ Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄:
Π£ ΠΌΠ΅Π½Ρ ΡΡΠΊΠ° ΠΌΠ°ΡΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ½ΡΠ»Π°ΡΡ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Β«Π‘ΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΠΈΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ°ΠΊ Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΠ²Π΅ΡΡ ΠΈΠ· 50 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Ρ ΠΏΠΎΡΡΠΈ 2000 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌΠΈ ΡΡΡΠΎΠΊ? Π ΠΊΠ°ΠΊ Π΅Π³ΠΎ, ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ, ΡΠ΅Π²ΡΡΠΈΡΡ?
Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Ρ ΠΌΠ΅Π½Ρ ΡΡΠ»ΠΎ Π΄Π²Π° Π΄Π½Ρ ΠΏΡΠΎΡΡΠΎ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠ΅Π²ΡΡ.Π ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°; ΠΊΡΠΎ-ΡΠΎ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π³Π»ΡΠ΄Ρ, ΠΆΠΌΡΡ ΠΠ΄ΠΎΠ±ΡΡΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ Π·Π° ΡΠ°Π·ΡΠΌΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΠΎΠ±Π·ΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ.
ΠΠΎ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ ΡΠΎΠ²Π°ΡΠΈΡΡ. ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π»ΡΡΡΠ΅ΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄, ΡΠ°Π·Π±ΠΈΠ² Π½Π° Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ Π·Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΠ°ΠΌΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ: Β«ΡΠΎΠ·Π΄Π°Π» Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π΄Π»Ρ Π½Π΅Π³ΠΎΒ», Β«ΠΏΠΎΡΡΡΠΎΠΈΠ» ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π». ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Β»,Β« Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Β»,Β« Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ΅ΡΡΡ Β».
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π²ΡΡΠΈΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ (ΠΈ GitHub, ΠΈ GitLab ΡΡΠΎ ΡΠΌΠ΅ΡΡ) ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π°Π±Π΅Π³Π°ΠΌΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ²ΠΎΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π² ΠΏΠ΅ΡΠ΅ΡΡΠ²Π°Ρ
.
Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π²ΡΡ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡ ΡΠΎΡ ββΠΆΠ΅ git rebase
Ρ ΠΊΠ»ΡΡΠΎΠΌ --interactive
. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΌΡ Ρ
ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ. ΠΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
50 ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ git rebase --interactive HEAD ~ 50
(ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Β«50Β» Π²Π°ΡΡ ΡΠΈΡΡΡ).
ΠΡΡΠ°ΡΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΠΎΠ΄Π»ΠΈΠ²Π°Π»ΠΈ ΠΊ ΡΠ΅Π±Π΅ Π²Π΅ΡΠΊΡ ΠΌΠ°ΡΡΠ΅Ρ, ΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Π±Π°Π· Π½Π° ΡΡΡ Π²Π΅ΡΠΊΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ-ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΠΌΠ°ΡΡΠ΅ΡΠ° Π½Π΅ ΠΏΡΡΠ°Π»ΠΈΡΡ Ρ Π²Π°Ρ ΠΏΠΎΠ΄ Π½ΠΎΠ³Π°ΠΌΠΈ.
ΠΠΎΠΎΡΡΠΆΠΈΠ²ΡΠΈΡΡ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ rebase Π½Π° master Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Π΅ΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Π½Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π²Π΅ΡΠΊΠ΅, ΠΌΠ°ΡΡΠ΅Ρ. Π‘ΠΌ. ΡΡ Π΅ΠΌΠ°:
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ Π²Π·ΡΡΡ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Pro Git
ΠΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² C4 ΠΈ C3 ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΊΠΎΠΌΠΌΠΈΡ C4 ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΠ²ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π½Π° ΡΡ Π΅ΠΌΡ Π² C4 β.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²Π΅ΡΠΊΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π²Π°ΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈ ΡΠ°ΡΡΡΡΡΡ ΠΈΠ· Π²Π΅ΡΡΠΈΠ½Ρ master. Π‘Π°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ, ΠΌΠ°ΡΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°: git pull --rebase origin / master
(ΠΊΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, git pull
ΡΠ°Π²Π½ΠΎΡΠΈΠ»Π΅Π½ git fetch && git merge
, Π° ΠΊΠ»ΡΡ --rebase
Π·Π°ΡΡΠ°Π²ΠΈΡ git ΡΠ΄Π΅Π»Π°ΡΡ rebase Π²ΠΌΠ΅ΡΡΠΎ merge).
ΠΠ΅ΡΠ½ΡΠΌΡΡ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΊ git rebase --interactive
. ΠΠ³ΠΎ Π΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠ΅ΡΡ Π»ΡΠ΄ΠΈ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅, ΠΏΠΎΡΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΡΠ²Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΎΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ Π½Π°ΠΏΡΡΠ³Π°ΡΡΡΡ.ΠΠΎΡ ΡΡΠΎ Π²Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅:
ΠΡΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Guzzle. ΠΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°ΡΡ Π΅ΠΌΡ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π» Π±Ρβ¦
Π ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠ½ΠΈΠ·Ρ Π²Π°Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΡΠΏΡΠ°Π²ΠΊΠ° ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π΅Π»Π°ΡΡ. ΠΠ°Π»Π΅Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΡΠ΅ΡΠ°Π΅ΡΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ Π² Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅. ΠΡΡ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΠ°Π»ΠΊΠ°: pick — ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ, reword — ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°, squash — ΡΠ»ΠΈΡΡ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ (ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ
, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ — ΡΡΠΎ ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠΎΡΠΊΠΎΠΉ Π½ΠΈΠΆΠ΅), drop — Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ, ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ — ΠΈ ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ — ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΈ Π·Π°ΠΌΠ΅ΡΠ΅ΡΡ.ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ git Π²ΡΡΡΠ΅ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ edit, ΠΎΠ½ Π²ΡΡΠ°Π½Π΅Ρ Π² ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π²ΡΡ, ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠ²Π°ΡΡ git rebase --continue
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ rebase.
ΠΠ°, ΠΈ ΠΊΡΡΠ°ΡΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅Π΄ΠΊΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΆ Π±Π΅Π· ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ². ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΠ½ΡΠ²ΡΠΈ Π³ΠΎΠ»ΠΎΠ²Ρ, ΠΏΠΎ Π²ΠΎΠ»ΠΎΡΠ°ΠΌ Π½Π΅ ΠΏΠ»Π°ΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΈ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π²ΡΡ ΠΏΡΠΎΠΏΠ°Π»ΠΎ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°ΠΏΡΠ»ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ git rebase --abort
, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Π΅ΡΠ½ΡΡ Π²ΡΡ ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ.
. Π₯ΠΎΡΠΎΡΠΈΠΌ ΡΠΎΠ½ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π» Π²ΡΡΠ΅, ΡΡΠΎ ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π΅Π»ΡΠ½ΡΠΌΠΈ (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΡ ΠΎΠ΄Π΅ — ΡΠΊΠ²ΠΎΡ).
ΠΡΡ ΠΎΠ΄Π½Π° ΡΠΈΠ³ΡΡΠ° Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΈΠ»ΠΎΡΠ°ΠΆΠ°, ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π΅ ΡΠ°Π·Π»ΠΎΠΆΠΈΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌ — git add --patch
. ΠΠ½Π° ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈ ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅, Π½ΠΎ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ edit ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΡΡΠΎΠΊΠ°Ρ
, ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π½Π΅ ΠΎΡΠΈΠ±Π°ΡΡΡ, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ GUI-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° IDE.
Π£Π±Π΅Π΄ΠΈΠ²ΡΠΈΡΡ Π΅ΡΡ ΡΠ°Π·, ΡΡΠΎ Π²ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π²Ρ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎΠΉ Π΄ΡΡΠΎΠΉ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°Π»ΡΡ ΡΡΠΎΡ ΡΡΡΠΎΡΠΈΠ°Π»: git push --force
.ΠΠΉ, ΡΠΎ Π΅ΡΡΡ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, - force-with-lease
!
ΠΠ°Π»Ρ Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΡΡ Π½Π° ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ rebase Π½Π° master) ΡΠ°Ρ, Π° ΡΠΎ ΠΈ Π΄Π²Π°, Π΅ΡΠ»ΠΈ ΡΠΈΡΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΠΈΡΡΠ°Ρ. ΠΠΎ Π΄Π°ΠΆΠ΅ ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΆΠ΄Π°ΡΡ Π΄Π²Π° Π΄Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π²ΡΡΠ²Π΅Ρ Π·Π°ΡΡΠ°Π²ΠΈΡ ΡΠ΅Π±Ρ Π½Π°ΠΊΠΎΠ½Π΅Ρ Π²Π·ΡΡΡΡΡ Π·Π° Π²Π°Ρ ΡΠ΅ΠΊΠ²Π΅ΡΡ, ΠΈ Π΅ΡΠ΅ ΠΏΠ°ΡΡ Π΄Π½Π΅ΠΉ, ΠΏΠΎΠΊΠ° ΠΎΠ½ ΡΠΊΠ²ΠΎΠ·Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠ΄Π΅ΡΡΡΡΡ. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΆΠ΅ Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² 30-40 ΠΌΠΈΠ½ΡΡ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ IntelliJ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ (ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠ°ΡΠΊΡΡΡΠΈΠ΅: ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ FunCorp ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ).
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, ΠΎΡ ΡΠ΅Π³ΠΎ Ρ ΠΎΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΡΡ, — Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ Π²Π΅ΡΠΊΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠ΄-ΡΠ΅Π²ΡΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ±ΡΠΎΡΠΎΠ²Π΅ΡΡΠ½ΡΠΉ ΡΠ΅Π²ΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΊ ΡΠ΅Π±Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π½Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· IDE ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΡΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌ, ΠΊΡΠΎ Π΄ΠΎΡΠΈΡΠ°Π» Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°! ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ, Π½ΠΎ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ, Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΡΠ΅Π²ΡΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ»ΡΠ²ΡΠ΅ Ρ Π°ΠΊΠΈ Π΄Π»Ρ git — Π΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΈΠΌΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ !
.
Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ «u»? Β«git push-U origin masterΒ» ΠΏΡΠΎΡΠΈΠ² Β«git push origin masterΒ»
Ρ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, ΡΠΆΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΌΠΎΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΠΎΠ½ΡΡΡ.
ΠΎΡ kernel.org Π΄Π»Ρ git push
:
— u
— ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ββΠΈΠ»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΠΆΠ°ΡΠ°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΡΡΡΠ»ΠΊΠ° Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ (ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² git-pull (1) ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ.Π ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Π΅ΡΠΊΠ°
. <ΠΠΌΡ> .merge
Π² git-config (1).
Π·Π΄Π΅ΡΡ Π²Π΅ΡΠΊΠ°. <ΠΠΌΡ> .merge
Π‘ git config
:
ΡΠΈΠ»ΠΈΠ°Π». <ΠΠΌΡ> .merge
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ
Π²Π΅ΡΠ²Ρ. <ΠΠΌΡ> .remote
, Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ°Ρ Π²Π΅ΡΠ²Ρ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ. ΠΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ git fetch / git pull, ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΠ²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° git push (ΡΠΌ. Push.Π½Π΅ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.) ΠΠΎΠ³Π΄Π° Π² Π²Π΅ΡΠ²ΠΈ, ΠΎΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ git fetch, ΡΡΠΎ refspec ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΌΠ΅ΡΠ΅Π½ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² FETCH_HEAD.ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ ΡΠ°ΡΡΡ refspec ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ref, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ
"Π²Π΅ΡΠΊΠ°. <ΠΠΌΡ> .remote"
. ΠΡΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ git pull (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ½Π°ΡΠ°Π»Π° git fetch) Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ΅Π· ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ git pull ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ»ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΠΉ refspec. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³ΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ git pull ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠ»ΠΈΠ²Π°Π»ΡΡ Π²<ΠΈΠΌΡ>
ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π²Π΅ΡΠΊΡ.<ΠΈΠΌΡ> .merge
Π² Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΠΊΡ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ. (ΡΠΎΡΠΊΠ°) Π΄Π»Ρ Π²Π΅ΡΠΊΠΈ. <ΠΈΠΌΡ> .remote
.
Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΠ» ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ github, ΠΈ Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΠΆΠ°Π» ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π½Π° Π½Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
git push -u origin master
Ρ Π½Π΅Π²ΠΎΠ»ΡΠ½ΠΎ Π½Π°ΠΆΠ°Π» ΡΠ²ΠΎΡ Π²ΡΠΎΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ:
git commit -m '[...]'
ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΠ½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠ°ΡΡ Π½Π° origin
Π‘ master
, Ρ ΠΏΠΎΠ±Π΅ΠΆΠ°Π»:
# ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: no -u
git push origin master
ΡΡΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ? ΠΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°.Π Π°Π·Π²Π΅ Ρ «ΠΎΡΠΌΠ΅Π½ΡΠ»» git push -u origin master
?
222
Π°Π²ΡΠΎΡ: ClosureCowboy
ΠΊΠ»ΡΡ «Π°ΡΠ³ΡΠΌΠ΅Π½Ρ-ΠΌΠ΅Π½Π΅Π΅ git-pull». ΠΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ git pull
ΠΈΠ· Π²Π΅ΡΠ²ΠΈ, Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π²Π΅ΡΠ²ΠΈ, git ΡΠΌΠΎΡΡΠΈΡ Π½Π° Π²Π΅ΡΠΊΡ .<ΠΈΠΌΡ> .merge
Π½Π°ΡΡΡΠΎΠΉΠΊΠ°, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΡ, ΠΎΡΠΊΡΠ΄Π° ΡΡΠ½ΡΡΡ. git push -u
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅.
ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·Π½ΠΈΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΏΡΡΡΡΡ Π²Π΅ΡΠΊΡ:
$ git checkout -b ΡΠ΅ΡΡ
Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΌΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π±Π΅Π· -u
:
$ git push origin test
$ git pull
Π’Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΠ» ΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΠ½ΡΡΡ, Π½Π΅ ΡΠΊΠ°Π·Π°Π², ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΠΊΡ ΡΡ
Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΈ "branch.test.merge" Π²
Π²Π°Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΎΠΆΠ΅ Π½Π΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΌΠ½Π΅ ΠΎΠ± ΡΡΠΎΠΌ.ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°
ΡΠΊΠ°ΠΆΠΈΡΠ΅, ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΠΊΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π· (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 'git pull ').
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Git-pull (1).
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΠΊΠΎΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ
ΠΎΡΠ΅ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ:
[Π²Π΅ΡΠΊΠ° "ΡΠ΅ΡΡ"]
remote = <Π½ΠΈΠΊ>
merge =
[ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ "<Π½ΠΈΠΊ>"]
url =
fetch =
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Git-config (1).
ΡΠ΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ -u
:
$ git push -u origin test
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΡΠ° Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°.ΠΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ
$ git pull
Π£ΠΆΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ.
ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π±ΡΠ»Π° Π½Π°ΡΡΡΠΎΠ΅Π½Π° ΡΠ°ΠΊ, ΡΡΠΎ git pull
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ, Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π²Π΅ΡΠ²ΠΈ.
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: ΡΠ°Π΅Π²ΡΠ΅:
- ΠΊΠ°ΠΊ ΠΠ°ΡΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ
git pull
ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡgit push
. ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ-u
, ΡΡΠΎΠ±Ρ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π°Ρpush.ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ config Π΄Π»ΡΠ²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°
. -
git push -u
Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΠΊΠ°ΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠ²Ρ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π°HEAD git push
ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ).
git push -u origin master
— ΡΡΠΎ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ:
git push origin master; git branch --set-upstream master origin / master
ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π±ΡΠ»ΠΈ -u
!
ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ:
git config branch.master.remote origin
git config branch.master.merge ΡΡΡΠ»ΠΊΠΈ / Π³ΠΎΠ»ΠΎΠ²Ρ / ΠΌΠ°ΡΡΠ΅Ρ
, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π²Π°ΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π½Π°Π±ΡΠ°Π»ΠΈ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π²Π΅ΡΠΊΡ, ΠΈΠ»ΠΈ Π²Ρ Π½Π΅ git remote add
, Ρ
ΠΎΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ :).
Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ :
ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ -u
ΡΠ»Π°Π³ ΡΡΡΠ»ΠΊΡ Π½Π° Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΡΠ΅.
Π²Π°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ git pull
Π±Π΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ git push -u origin master
ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ git pull
ΠΈ git Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ Π²Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈΠΌΠ΅Π»ΠΈ Π² Π²ΠΈΠ΄Ρ git pull origin master
.
|
4
Π°Π²ΡΠΎΡ: Adepoju Oluwasegun
Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git bash, ΡΡΠΎΠ±Ρ ΡΠΎΠ»ΠΊΠ°ΡΡ ΠΈ ΡΡΠ½ΡΡΡ Π² Github:
git ΡΡΠ°ΡΡΡ
git pull
git add filefullpath
git commit -m "ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° ΠΎΡΠΌΠ΅ΡΠΊΠΈ"
git push origin Π²Π΅ΡΠΊΠ° / ΠΌΠ°ΡΡΠ΅Ρ
git ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ -v
git ΠΆΡΡΠ½Π°Π» -2
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΡΡΡ:
ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°.*
ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ Π²Π΅ΡΠ²ΠΈ ΠΈ ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΡ:
git ΡΠΎΡ-Π²Π΅ΡΠΊΠ°
-7
Π°Π²ΡΠΎΡ: ΠΠ°ΠΌΡΠ° ΠΠΈΡΡΠ°
.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «git remote add …» ΠΈ «git push origin master»?
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ : ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ½ΡΡΡΠΉ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅Ρ ΡΠ²Π΅ΠΊΠΎΠ²Π΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ git push
, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ» ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° ΡΡΠΎ.
ΡΠ΅Π·ΡΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠ»ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ-ΠΊΠ°ΠΊ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ URL-Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ-ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΡΠ°ΠΊ ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ URL Π½Π΅ git: //[email protected]/peter/first_app.git Π½ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ — ΡΡΠΎ ΡΡΠΎ Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ? ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡΡ? Ρ.ΠΠΠ’? Π― ΡΡΠ°ΡΠ°Π»ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ .git Π² ΠΊΠΎΠ½ΡΠ΅, ΠΈ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠ»ΠΈ Π½Π΅Ρ .ΠΠΠ’, ΡΡΠΎ Π΅ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ? Git Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ git?
URL-Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π»ΠΈ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ
ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. Π’ΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ git: //
Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° git, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ.ΠΡΡΠ³ΠΎΠΉ, [email protected]: peter / first_app.git
, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ SSH-ΡΡΠΎ «ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΈΠ»Ρ scp», Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. Π§ΡΠΎ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ ΡΡΠΈΠ»Ρ scp ΡΠ²Π»ΡΠ΅ΡΡΡ git
ΠΈΠ· — Π·Π° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ GitHub ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅Π»ΠΎ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ-ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ, ΡΡΠΎ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ, ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ SSH, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²ΠΈΡ git push origin master
, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΎΠ»ΡΠΊΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ git push
.ΠΡΠΎ ΠΈΠ·-Π·Π° ΡΠ΅ΡΠΈΡ ΡΡΡΠ΄Π½ΡΡ
Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ π
- , Π΅ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ (Π²
remote.master.url
Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ, ΡΠΎ ΡΡΠΎ. - Π΅ΡΠ»ΠΈ Π½Π΅Ρ «refspec» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
master
,master: my-ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ
ΠΈ Ρ. Π.) Π£ΠΊΠ°Π·Π°Π½ΠΎ, Π·Π°ΡΠ΅ΠΌ git ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ, ΡΡΠΎ ΠΈ Π²Π΅ΡΠ²Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΡΠΎΡΡΠΎ Π΅ΡΡΡ Π²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌmaster
ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠΈΠΌ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ Π²Π°ΡΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌmaster
Π½Π° ΠΏΡΠ»ΡΡmaster
.
Π»ΠΈΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ»ΡΡΠΎΠ², Ρ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡΠΌΡΠ»Ρ:
ΠΌΠ°ΡΡΠ΅Ρ git push origin
… ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΠΊΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ.
Π² ΠΎΡΠ²Π΅Ρ Π½Π° Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΎΡΠ²Π΅ΡΠΎΠ², ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ — ΡΡΠΎ ΠΈΠ·ΡΡΠ°Π΅ΡΡΡ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ — Π²Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈ Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ, ΠΠΎΡΠ΅ΠΌΡ;), ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌ, git ΠΌΠΎΠΆΠ΅Ρ , Π½ΠΎ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π±ΠΎΡΡ ΠΊ Π»ΡΡΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ SVN, Π½ΠΎ Π·Π½Π°Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΏΡΠ»ΡΡΠ°Ρ ΠΈ ββΠ²Π΅ΡΠ²ΡΡ .Π‘ΠΊΠΎΡΡ Π§Π°ΠΊΠΎΠ½ Π² ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠ°-ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² ΡΡΠ°Ρ Π²ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ git ΠΈ Mercurial, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½Ρ ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π³ΠΈΠ±ΠΊΠΈ, ΡΡΠΎ ΡΡΠΎΠΈΠ»ΠΎ Π±Ρ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΡ ΠΊΡΡΡΡ ΠΏΠΎ Π½ΠΈΠΌ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π»ΡΠ΄ΡΠΌ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ Ρ git
, ΡΡΠ° ΠΊΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΡΠΎΠ³ΠΎ-ΡΠ°Π±ΠΎΡΠ° Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π²Π΅ΡΠ²Π΅ΠΉ, Π»Π΅Π³ΠΊΠΎ ΠΈΡ
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ, ΠΈ ΡΠΎΠ»ΠΊΠ°Ρ ΠΈ Π²ΡΡΡΠ³ΠΈΠ²Π°Ρ ΠΈΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΡΠ°Π½Π΅ΡΠ΅ ΡΡΠ°Π½Π΅ΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.ΠΠ°Π»Ρ ΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ:
- ΠΏΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ git ΡΠ°ΠΊ ΡΡΡΠ΄Π½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². (Π₯ΠΎΡΡ Ρ Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π΅ΡΠ»ΠΈ Google Π΄Π»Ρ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° git, ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΡΠ΅Π±Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» (ΠΈΠ»ΠΈ ΠΎΡΠ²Π΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° :)) ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ.)
- Π² git Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ.
.