Title: 🧬 Git β€” Basics Group: Dev & Tools Icon: 🧬 Order: 1 ## Table of Contents - [Setup & Initialization](#-setup--initialization--настройка-ΠΈ-инициализация) - [Basic Workflow](#-basic-workflow--Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ-Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ-процСсс) - [Branching & Merging](#-branching--merging--Π²Π΅Ρ‚ΠΊΠΈ-ΠΈ-слияниС) - [Remote Operations](#-remote-operations--ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ) - [Stashing](#-stashing--Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅-сохранСниС) - [History & Logs](#-history--logs--история-ΠΈ-Π»ΠΎΠ³ΠΈ) - [Undoing Changes](#-undoing-changes--ΠΎΡ‚ΠΌΠ΅Π½Π°-ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) - [Tags](#-tags--Ρ‚Π΅Π³ΠΈ) - [Real-World Examples](#-real-world-examples--ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹-ΠΈΠ·-ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ) --- # πŸ› οΈ Setup & Initialization / Настройка ΠΈ инициализация ### Configuration / ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ git config --global user.name "Your Name" # Set name / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ имя git config --global user.email "you@example.com" # Set email / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ email git config --global init.defaultBranch main # Default branch name / НазваниС Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ git config --global core.editor vim # Set default editor / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ git config --global pull.rebase true # Rebase on pull / Rebase ΠΏΡ€ΠΈ pull git config --list # Show all config / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всю ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ git config --global --edit # Edit config file / Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ### Initialize Repository / Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ рСпозитория git init # Init new repo / Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git init --bare # Init bare repo / Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ bare Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git clone # Clone repo / ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎ git clone --depth 1 # Shallow clone / ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚Π½ΠΎΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ git clone --branch # Clone specific branch / ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ --- # πŸ“ Basic Workflow / Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ### Status & Staging / Бтатус ΠΈ индСксация git status # Show status / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ статус git status -s # Short status / ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ статус git add . # Stage all changes / Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС измСнСния git add file.txt # Stage specific file / Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» git add -p # Interactive staging / Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ индСксация git add -u # Stage modified/deleted / Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅/ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ git reset file.txt # Unstage file / Π£Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· индСкса ### Commit / ΠšΠΎΠΌΠΌΠΈΡ‚ git commit -m "message" # Commit with message / ΠšΠΎΠΌΠΌΠΈΡ‚ с сообщСниСм git commit -am "message" # Add and commit / Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ git commit --amend # Amend last commit / Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ git commit --amend --no-edit # Amend without editing message / Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Π΅Π· рСдактирования сообщСния git commit --allow-empty -m "trigger CI" # Empty commit / ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ### Differences / Различия git diff # Show unstaged changes / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ нСиндСксированныС измСнСния git diff --staged # Show staged changes / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ индСксированныС измСнСния git diff HEAD # Show all changes / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС измСнСния git diff branch1 branch2 # Compare branches / Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ git diff # Compare commits / Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ --- # 🌿 Branching & Merging / Π’Π΅Ρ‚ΠΊΠΈ ΠΈ слияниС ### Branches / Π’Π΅Ρ‚ΠΊΠΈ git branch # List local branches / Бписок Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ git branch -a # List all branches / Бписок всСх Π²Π΅Ρ‚ΠΎΠΊ git branch feature/new # Create branch / Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ git checkout feature/new # Switch branch / ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ git checkout -b feature/new # Create and switch / Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ git switch feature/new # Modern switch / Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ git switch -c feature/new # Create and switch (modern) / Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ (соврСмСнно) git branch -d feature/old # Delete merged branch / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡΠ»ΠΈΡ‚ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ git branch -D feature/old # Force delete branch / ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ git branch -m old-name new-name # Rename branch / ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ### Merging / БлияниС git merge feature/new # Merge branch / Π‘Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ git merge --no-ff feature/new # No fast-forward merge / БлияниС Π±Π΅Π· fast-forward git merge --squash feature/new # Squash merge / БлияниС с объСдинСниСм ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² git merge --abort # Abort merge / ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС git mergetool # Launch merge tool / Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ инструмСнт слияния ### Rebasing / ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ git rebase main # Rebase onto main / ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° main git rebase -i HEAD~3 # Interactive rebase last 3 / Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ rebase послСдних 3 git rebase --continue # Continue rebase / ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ rebase git rebase --abort # Abort rebase / ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ rebase git rebase --skip # Skip current patch / ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠ°Ρ‚Ρ‡ --- # 🌐 Remote Operations / Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ### Remote Management / Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ git remote -v # List remotes / Бписок ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² git remote add origin # Add remote / Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git remote remove origin # Remove remote / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git remote rename origin upstream # Rename remote / ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ git remote set-url origin # Change URL / Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ URL git remote show origin # Show remote info / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ ### Push / ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° git push # Push to upstream / ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² upstream git push origin main # Push to branch / ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² Π²Π΅Ρ‚ΠΊΡƒ git push -u origin feature/new # Set upstream and push / Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ upstream ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ git push --all # Push all branches / ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ всС Π²Π΅Ρ‚ΠΊΠΈ git push --tags # Push tags / ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ΠΈ git push --force # Force push / ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° git push --force-with-lease # Safer force push / БСзопасная ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° git push origin --delete feature/old # Delete remote branch / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ### Pull & Fetch / ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° git pull # Fetch and merge / Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΡΠ»ΠΈΡ‚ΡŒ git pull --rebase # Fetch and rebase / Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ git pull origin main # Pull specific branch / ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ git fetch # Fetch all remotes / Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ всС ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ git fetch origin # Fetch specific remote / Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ git fetch --prune # Remove deleted remote branches / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ git fetch --tags # Fetch tags / Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ΠΈ --- # πŸ’Ύ Stashing / Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ сохранСниС git stash # Stash changes / Π‘ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ измСнСния git stash push -m "WIP: feature" # Stash with message / Π‘ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ с сообщСниСм git stash list # List stashes / Бписок спрятанных git stash show # Show latest stash / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ послСднСС спрятанноС git stash show -p stash@{0} # Show stash diff / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ diff спрятанного git stash pop # Apply and drop stash / ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ git stash apply # Apply stash / ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ спрятанноС git stash drop stash@{0} # Drop stash / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ спрятанноС git stash clear # Clear all stashes / ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС спрятанныС git stash branch feature/from-stash # Create branch from stash / Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· спрятанного --- # πŸ“œ History & Logs / Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈ Π»ΠΎΠ³ΠΈ git log # Show commit history / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² git log --oneline # Compact log / ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ Π»ΠΎΠ³ git log --graph # Show graph / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ git log --oneline --graph --decorate --all # Pretty history / ΠšΡ€Π°ΡΠΈΠ²Π°Ρ история git log -n 10 # Last 10 commits / ПослСдниС 10 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² git log --since="2 weeks ago" # Commits since date / ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ с Π΄Π°Ρ‚Ρ‹ git log --author="John" # By author / По Π°Π²Ρ‚ΠΎΡ€Ρƒ git log --grep="fix" # Search commit messages / Поиск Π² сообщСниях ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² git log -- file.txt # File history / Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Ρ„Π°ΠΉΠ»Π° git log -p file.txt # File history with diff / Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Ρ„Π°ΠΉΠ»Π° с diff git log --stat # Show file stats / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ статистику Ρ„Π°ΠΉΠ»ΠΎΠ² git log --follow file.txt # Follow file renames / Π‘Π»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° пСрСимСнованиями git show # Show commit details / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° git show :file.txt # Show file at commit / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ --- # ↩️ Undoing Changes / ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ### Discard Changes / ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git checkout -- file.txt # Discard file changes / ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Ρ„Π°ΠΉΠ»Π° git restore file.txt # Modern discard / БоврСмСнная ΠΎΡ‚ΠΌΠ΅Π½Π° git restore --staged file.txt # Unstage file / Π£Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· индСкса git clean -fd # Remove untracked files/dirs / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ нСотслСТиваСмыС ### Reset / Бброс git reset HEAD~1 # Undo last commit (keep changes) / ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ (ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния) git reset --soft HEAD~1 # Undo commit (keep staged) / ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ (ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ индСкс) git reset --hard HEAD~1 # Undo commit (discard changes) / ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ (ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния) git reset # Reset to commit / Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° git reset --hard origin/main # Reset to remote / Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΄ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ### Revert / ΠžΡ‚ΠΊΠ°Ρ‚ git revert # Create revert commit / Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ git revert HEAD # Revert last commit / ΠžΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ git revert --no-commit # Revert without committing / ΠžΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΊΠΎΠΌΠΌΠΈΡ‚Π° --- # 🏷️ Tags / Π’Π΅Π³ΠΈ git tag # List tags / Бписок Ρ‚Π΅Π³ΠΎΠ² git tag v1.0.0 # Create lightweight tag / Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π»Ρ‘Π³ΠΊΠΈΠΉ Ρ‚Π΅Π³ git tag -a v1.0.0 -m "Release 1.0.0" # Create annotated tag / Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Π³ git tag -a v1.0.0 # Tag specific commit / ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ git show v1.0.0 # Show tag info / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅Π³Π΅ git push origin v1.0.0 # Push tag / ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ git push --tags # Push all tags / ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ всС Ρ‚Π΅Π³ΠΈ git tag -d v1.0.0 # Delete local tag / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Π³ git push origin --delete v1.0.0 # Delete remote tag / Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ‚Π΅Π³ --- # 🌟 Real-World Examples / ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ### Quick Start / Быстрый старт git init && git add . && git commit -m "Initial commit" # Initialize project / Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ git clone && cd $(basename .git) # Clone and enter / ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΠΉΡ‚ΠΈ ### Feature Development / Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ git checkout -b feature/login # Start feature / ΠΠ°Ρ‡Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ git add . && git commit -m "Add login UI" # Save progress / Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ прогрСсс git push -u origin feature/login # Push feature / ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ git checkout main && git pull --rebase # Update main / ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ main git rebase main feature/login # Rebase feature / ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ git checkout main && git merge --no-ff feature/login # Merge feature / Π‘Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ### Emergency Hotfix / ЭкстрСнноС исправлСниС git checkout -b hotfix/critical main # Create hotfix branch / Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ исправлСния git commit -am "Fix critical bug" # Quick fix / БыстроС исправлСниС git checkout main && git merge hotfix/critical # Merge to main / Π‘Π»ΠΈΡ‚ΡŒ Π² main git push && git branch -d hotfix/critical # Push and cleanup / ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ### Cleanup History / ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° истории git log --oneline -n 5 # Review recent commits / ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ git rebase -i HEAD~5 # Interactive rebase / Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ rebase git push --force-with-lease # Safe force push / БСзопасная ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ### Collaboration / БовмСстная Ρ€Π°Π±ΠΎΡ‚Π° git fetch --prune # Clean remote branches / ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ git branch -vv # Show tracking branches / ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ отслСТиваСмыС Π²Π΅Ρ‚ΠΊΠΈ git log --oneline origin/main..HEAD # Commits ahead of origin / ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ origin git log --oneline HEAD..origin/main # Commits behind origin / ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠ·Π°Π΄ΠΈ origin # πŸ’‘ Tips & Best Practices / Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ # Always pull before push / всСгда pull ΠΏΠ΅Ρ€Π΅Π΄ push # Use --force-with-lease instead of --force / Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ --force-with-lease вмСсто --force # Write meaningful commit messages / ΠŸΠΈΡˆΠΈΡ‚Π΅ осмыслСнныС сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² # Commit often, push once working / ΠšΠΎΠΌΠΌΠΈΡ‚ΡŒΡ‚Π΅ часто, ΠΏΡƒΡˆΡŒΡ‚Π΅ ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ # Use branches for features / Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Π΅Ρ‚ΠΊΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ