ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ»ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ git flow, git flow ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ:
ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΉ: Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅ Π΅ΡΡΡ Π½Π΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅.
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½Π΅ΡΠ΅Π³ΠΎ ΡΡΠ½ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡ ΠΊ / Ρ ΠΏΡΠ»ΡΡΠ° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π Π°Π±ΠΎΡΠ°Ρ ΠΊΠΎΠΏΠΈΡ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
ΠΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠΎΠ·Π΄Π°Π² Π»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π΅ Β«readme.txtΒ», ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΈ ΡΠ°Π³ΠΈ, Π½ΠΎ ΡΡΠΎ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΡΡ Π»ΠΈ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git flow start / finish?
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡ Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΠ»ΠΎ Π±Ρ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΡΠΎΡΠ΅.
ΠΡΠΎ ΠΌΠΎΠ³Π»ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ Π½Π΅ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΠ΅ ΠΈΡ
. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git diff --cached
ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π° Ρ git diff --cached
. ΠΡΡΡ ΠΈΠ΄Π΅ΠΈ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡ Π½Π°ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅?
Π‘Π°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ΅ΠΏΠΎ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ.
Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Ρ eGit
Π½Π° ΠΈΠ΄Π΅ΡΡ
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Eclipse
, ΠΊΠΎΠ³Π΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git bash
ΠΈΠ»ΠΈ tortoise git
ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ
git reset --hard origin / master ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΠ°ΡΡΠΈ Π²Π°ΠΌ ΠΆΠΈΠ·Π½Ρ!
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ°Π½Π½ΠΎ:
git ΡΡΠ°ΡΡΡ
ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠ΅ΠΉ ΡΡΠ΅Π΄Π΅ .:-)
ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ, ΡΡΠΎ ΠΈ @georgezlatev, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° MAC OS X Ρ intellij Idea 13. ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ git-flow Π½Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ;-)
ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ?
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ git flow finish ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ· ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π².
Π£ΡΠ°, ΡΠ΅Π±ΡΡΠ°
ΠΡΠ΅Π½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ° Π²Π΅ΡΠΊΠ° ΡΡΡΠ°ΡΠ΅Π»Π°, Π½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ Π½Π°ΠΉΠ΄ΡΡ Π΅Π΅. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ SourceTree ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π½Π° ΠΌΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ»ΠΈΡΡΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ / ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΡΠ΅ΠΌ Ρ ΡΠΌΠΎΠ³ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π±ΡΠ»ΠΎ Π±Ρ, Π΅ΡΠ»ΠΈ Π±Ρ ΡΠΊΡΠΈΠΏΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈ ΡΡΠ°ΡΡΡ git ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
Π΅ΡΠ»ΠΈ output = $ (git status --porcelain) && [-z "$ output"]; ΡΠΎΠ³Π΄Π°
# ΠΠΎΠ½Π΅Ρ
Π΅ΡΠ΅
# Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°
ΡΠΈ
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π²Π΅ΡΠΊΠΈ Π²ΡΠΏΡΡΠΊΠ° / ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ?
Π΄Π°. Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Intellj-Gitflow ΠΈ Π² Bash.
ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ 'git status' Π² bash ΠΈ Π·Π°Π²Π΅ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ / Π²ΡΠΏΡΡΠΊ / ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π SourceTree Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ (Ρ ΠΏΡΡΠ°Π»ΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ), ΠΊΠΎΠ³Π΄Π° SourceTree ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π», ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅Ρ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΡΡ Π½Π° Π’Π΅ΡΠΌΠΈΠ½Π°Π» ΠΈ ΡΠ΄Π΅Π»Π°Π» git status, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ» Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΡΡ Π² SourceTree). ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π²Π½Π΅Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π»ΠΈΡΡ Π² Π·Π°ΠΌΠ΅Π½Π΅ Π΄Π²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² .framework, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ .framework ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄. Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΎΡΠΈΠ±ΠΊΠ° SourceTree Π±ΡΠ»Π° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ, Π½ΠΎ Ρ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°Π½ ΡΠ΅ΠΌ, ΡΡΠΎ SourceTree Π½Π΅ ΡΠΌΠΎΠ³ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ½Π΅ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠ΅ΡΠ°Π»ΠΎ ΠΌΠ½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΌΠΎΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ :(
Π― ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Ρ, ΡΡΠΎ ΡΡΠ°ΡΡΡ git Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅ΡΡΠ°ΠΏΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
git reset --hard
Ρ ΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
git reset --hard ΡΡΠ°Π±ΠΎΡΠ°Π» Π΄Π»Ρ ΠΌΠ΅Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ git status Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π» Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅:
git status
git add .
git status
git commit -m 'Commit typechanges'
Π£ ΠΌΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ;)
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Β«Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈΒ». Π― ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π·Π°ΠΏΡΡΡΠΈΠ» git flow feature finish
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅:
Π£ ΠΌΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ;)