by Progmatic_programmer
π Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Git ΠΠ°Π½Π½Π°Ρ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Git, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅, ΡΡΠΎ ΠΈΠ·ΡΡΠ΅Π½Ρ Π² ΡΡΠΎΠΌ ΠΊΡΡΡΠ΅.
π ΠΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Π±Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΊΡΡΡΠ΅ Git + GitHub. ΠΠΎΠ»Π½ΡΠΉ ΠΊΡΡΡ.
βοΈ 1. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git config --global user.name "ΠΠΌΡ" Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ git config --global user.email "email" Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ email ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ git config --list ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ git config --global core.editor "editor" Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β¨ 2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git init Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ git clone Π‘ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ git remote add origin ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ git remote -v ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΄Π°Π»ΡΠ½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² π οΈ 3. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ workflow Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git status ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ git add ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ» Π² ΠΈΠ½Π΄Π΅ΠΊΡ git add . ΠΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡ git commit -m "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅" Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ git commit --amend ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΡΠΎΡΠΌΠΎΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git log ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² git log --oneline ΠΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² git log --graph ΠΡΡΠΎΡΠΈΡ Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π²Π΅ΡΠΎΠΊ git show ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ π‘ 4. ΠΠ΅ΡΠΊΠΈ (Branches) Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git branch ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠΎΠΊ git branch Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ git checkout ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ git checkout -b Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ git switch ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ (Π½ΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ) git switch -c Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ (Π½ΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ) Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git merge Π‘Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ Π² ΡΠ΅ΠΊΡΡΡΡ git merge --abort ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ git branch -d Π£Π΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ git branch -D ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ π 5. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git fetch ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ git pull ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΡΠ»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ git push ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ git push -u origin ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ git push --force ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° (ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ!) β© 6. ΠΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git restore ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ git restore --staged Π£Π±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° git reset --soft ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠΎΡ ΡΠ°Π½ΠΈΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ git reset --hard ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ git revert Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎΡΠΌΠ΅Π½ΡΡΡΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ πΎ 7. ΠΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git stash ΠΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ git stash list ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git stash pop ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ git stash apply ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ git stash drop Π£Π΄Π°Π»ΠΈΡΡ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ π 8. ΠΠ½ΡΠΏΠ΅ΠΊΡΠΈΡ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ git diff ΠΠΎΠΊΠ°Π·Π°ΡΡ Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ git diff --staged ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ git diff Π‘ΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° git blame ΠΠΎΠΊΠ°Π·Π°ΡΡ Π°Π²ΡΠΎΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΠΉΠ»Π° git grep "ΡΠ΅ΠΊΡΡ" ΠΠΎΠΈΡΠΊ ΡΠ΅ΠΊΡΡΠ° Π² ΡΠ°ΠΉΠ»Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ π Π‘ΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ git status ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git diff Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΡΡΡΠ΅ ΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠΈΡΠΈΡΠ΅ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ. β ΠΡΠ° ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ 90% ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΡ Π·Π°Π΄Π°Ρ Π² Git!