Git: āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰ āĻ“ āĻļāĻŋāĻ•ā§āώāĻžāĻ°ā§āĻĨā§€āĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ—āĻžāχāĻĄ

ėž‘ė„ąėž

ėš´í…Œęŗ ëĻŦ:

← í”ŧ드로
DEV Community · Jeyaul Hoque · 2026-08-10 개발(SW)

🚀 Git: āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āϜāĻ¨ā§āϝ Version Control-āĻāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ—āĻžāχāĻĄ

“Code āϞāĻŋāĻ–āĻž āϝāϤāϟāĻž āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ, āϏ⧇āχ code-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞ⧋ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ manage āĻ•āϰāĻžāĻ“ āϤāϤāϟāĻžāχ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤”

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ Web Development, Software Development āĻ…āĻĨāĻŦāĻž Programming āĻļ⧇āϖ⧇āύ, āϤāĻžāĻšāϞ⧇ āϖ⧁āĻŦ āĻĻā§āϰ⧁āϤāχ Git āύāĻžāĻŽāϟāĻŋāϰ āϏāĻ™ā§āϗ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻšāĻŦ⧇āύāĨ¤

āĻļ⧁āϰ⧁āϤ⧇ Git-āĻāϰ commandāϗ⧁āϞ⧋ āĻāĻ•āϟ⧁ āĻ•āĻ āĻŋāύ āĻŽāύ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ git add, git commit, git push, git pull, branch, merge—āϏāĻŦāĻ•āĻŋāϛ⧁ āĻāĻ•āϏāĻžāĻĨ⧇ āĻĻ⧇āĻ–āϞ⧇ āĻŽāĻžāĻĨāĻž āϘ⧁āϰ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇! 😅

āĻ•āĻŋāĻ¨ā§āϤ⧁ āϚāĻŋāĻ¨ā§āϤāĻžāϰ āĻ•āĻŋāϛ⧁ āύ⧇āχāĨ¤

āĻāχ āϞ⧇āĻ–āĻžā§Ÿ āφāĻŽāϰāĻž āĻāĻ•āĻĻāĻŽ āĻļ⧁āϰ⧁ āĻĨ⧇āϕ⧇ Git-āĻāϰ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāώ⧟āϗ⧁āϞ⧋ āϏāĻšāϜ āĻ­āĻžāώāĻžā§Ÿ āĻŦ⧁āĻāĻŦ āĻāĻŦāĻ‚ āĻļ⧇āώ⧇ āĻāĻ•āϟāĻŋ practical workflow āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤

📌 āĻāχ āϞ⧇āĻ–āĻžā§Ÿ āϕ⧀ āĻļāĻŋāĻ–āĻŦ⧇āύ?

āĻāχ āĻŦā§āϞāĻ—āϟāĻŋ āĻĒ⧜āĻžāϰ āĻĒāϰ āφāĻĒāύāĻŋ āϜāĻžāύāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ:

  • Git āϕ⧀ āĻāĻŦāĻ‚ āϕ⧇āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ
  • Git āĻāĻŦāĻ‚ GitHub-āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ
  • Repository āϕ⧀
  • Working Directory āϕ⧀
  • Staging Area āϕ⧀
  • Commit āϕ⧀
  • Branch āϕ⧀
  • HEAD āϕ⧀
  • Merge āϕ⧀
  • Remote Repository āϕ⧀
  • push āĻāĻŦāĻ‚ pull āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇
  • Merge Conflict āϕ⧀ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāϤ⧇ āĻšā§Ÿ
  • reset, revert, rebase, cherry-pick āϕ⧀
  • .gitignore āϕ⧀
  • Git-āĻāϰ āϏāĻžāϧāĻžāϰāĻŖ workflow
  • āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ Git commands
  • Git-āĻāϰ āĻ­āĻžāϞ⧋ practice

🧠 Git āϕ⧀?

Git āĻšāϞ⧋ āĻāĻ•āϟāĻŋ Distributed Version Control System (DVCS)āĨ¤

āϏāĻšāϜ āĻ­āĻžāώāĻžā§Ÿ āĻŦāϞāĻ˛ā§‡â€”

Git āφāĻĒāύāĻžāϰ project-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ history āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤

āϧāϰ⧁āύ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ website āϤ⧈āϰāĻŋ āĻ•āϰāϛ⧇āύāĨ¤

āφāϜ āφāĻĒāύāĻžāϰ project āĻāĻŽāύ:

index.html
style.css
script.js

Enter fullscreen mode Exit fullscreen mode

āφāĻ—āĻžāĻŽā§€āĻ•āĻžāϞ āφāĻĒāύāĻŋ āĻ…āύ⧇āĻ• āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϞ⧇āύāĨ¤

āϤāĻžāϰāĻĒāϰ āϭ⧁āϞ āĻ•āϰ⧇ āĻĒ⧁āϰ⧋ website āύāĻˇā§āϟ āĻšā§Ÿā§‡ āϗ⧇āϞ! 😱

āĻāĻ–āύ āϝāĻĻāĻŋ Git āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ, āϤāĻžāĻšāϞ⧇ āφāϗ⧇āϰ āϕ⧋āύ⧋ āĻāĻ•āϟāĻŋ commit-āĻ āĻĢāĻŋāϰ⧇ āĻ—āĻŋā§Ÿā§‡ project-āĻāϰ āĻĒ⧁āϰ⧋āύ⧋ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻŦāĻž āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤

āĻ…āĻ°ā§āĻĨāĻžā§Ž Git āĻ…āύ⧇āĻ•āϟāĻž āφāĻĒāύāĻžāϰ project-āĻāϰ time machine-āĻāϰ āĻŽāϤ⧋āĨ¤ ⏰

đŸ•°ī¸ Git-āĻāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āχāϤāĻŋāĻšāĻžāϏ

Git āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿ ⧍ā§Ļā§Ļā§Ģ āϏāĻžāϞ⧇, Linux Kernel-āĻāϰ development-āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻĨ⧇āϕ⧇āĨ¤

Git-āĻāϰ āĻĒā§āϰāϧāĻžāύ āϞāĻ•ā§āĻˇā§āϝ āĻ›āĻŋāϞ:

  • ⚡ āĻĻā§āϰ⧁āϤ āĻ•āĻžāϜ āĻ•āϰāĻž
  • đŸ“Ļ āĻŦ⧜ project handle āĻ•āϰāĻž
  • 🔀 āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ branching āĻ“ merging
  • 🌐 Distributed āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž

āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ Git software development-āĻāϰ āĻ…āĻ¨ā§āϝāϤāĻŽ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ toolāĨ¤

🤔 Git āϕ⧇āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ?

āĻāĻ•āϜāύ developer āĻšāĻŋāϏ⧇āĻŦ⧇ Git āφāĻĒāύāĻžāϰ āĻ…āύ⧇āĻ• āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻšāϜ āĻ•āϰ⧇ āĻĻā§‡ā§ŸāĨ¤

Git āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻĒā§āϰāϧāĻžāύ āĻ•āĻžāϰāĻŖ:

  1. Code-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ track āĻ•āϰāĻž āϝāĻžā§Ÿ
  2. āφāϗ⧇āϰ version āĻĻ⧇āĻ–āĻž āϝāĻžā§Ÿ
  3. āĻĒ⧁āϰ⧋āύ⧋ āĻ…āĻŦāĻ¸ā§āĻĨāĻžā§Ÿ āĻĢāĻŋāϰ⧇ āϝāĻžāĻ“ā§ŸāĻž āϝāĻžā§Ÿ
  4. āĻāĻ•āĻžāϧāĻŋāĻ• developer āĻāĻ•āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇
  5. āφāϞāĻžāĻĻāĻž feature-āĻāϰ āϜāĻ¨ā§āϝ branch āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžā§Ÿ
  6. Code merge āĻ•āϰāĻž āϝāĻžā§Ÿ
  7. Project-āĻāϰ history āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āϝāĻžā§Ÿ
  8. Remote repository-āϤ⧇ code āϰāĻžāĻ–āĻž āϝāĻžā§Ÿ

Git āĻŦāύāĻžāĻŽ GitHub — āĻāĻ•āχ āϜāĻŋāύāĻŋāϏ āύ⧟! âš ī¸

āĻ…āύ⧇āĻ• beginner āĻāĻ–āĻžāύ⧇ āϭ⧁āϞ āĻ•āϰ⧇āύāĨ¤

Git āĻāĻŦāĻ‚ GitHub āĻāĻ• āϜāĻŋāύāĻŋāϏ āύ⧟āĨ¤

Git

Git āĻšāϞ⧋ āĻāĻ•āϟāĻŋ Version Control SystemāĨ¤

āĻāϟāĻŋ āφāĻĒāύāĻžāϰ computer-āĻ install āĻ•āϰ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

GitHub

GitHub āĻšāϞ⧋ āĻāĻ•āϟāĻŋ online platform, āϝ⧇āĻ–āĻžāύ⧇ Git repository host āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

āϏāĻšāϜāĻ­āĻžāĻŦ⧇:

Git
 ↓
Version Control System

GitHub
 ↓
Git Repository Hosting Platform

Enter fullscreen mode Exit fullscreen mode

āφāϰāĻ“ āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āĻŦāϞāϞ⧇:

Git āĻšāϞ⧋ tool, āφāϰ GitHub āĻšāϞ⧋ Git repository āϰāĻžāĻ–āĻžāϰ āĻāĻ•āϟāĻŋ online āϜāĻžā§ŸāĻ—āĻžāĨ¤

Git-āĻāϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ GitHub, GitLab āĻāĻŦāĻ‚ Bitbucket-āĻāϰ āĻŽāϤ⧋ platform-āĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

📁 Repository āϕ⧀?

Repository āĻŦāĻž Repo āĻšāϞ⧋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϜāĻžā§ŸāĻ—āĻž āϝ⧇āĻ–āĻžāύ⧇ āφāĻĒāύāĻžāϰ project āĻāĻŦāĻ‚ āϤāĻžāϰ Git history āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻĨāĻžāϕ⧇āĨ¤

āϝāĻ–āύ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ project-āĻ Git initialize āĻ•āϰ⧇āύ, āϤāĻ–āύ āϏ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ .git directory āϤ⧈āϰāĻŋ āĻšā§ŸāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

mkdir my-project
cd my-project
git init

Enter fullscreen mode Exit fullscreen mode

Output:

Initialized empty Git repository in /path/to/my-project/.git/

Enter fullscreen mode Exit fullscreen mode

āĻāĻ–āύ my-project āĻāĻ•āϟāĻŋ Git repositoryāĨ¤

🔄 Git āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇?

Git-āĻāϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϧāĻžāϰāĻŖāĻžāϗ⧁āϞ⧋āϰ āĻāĻ•āϟāĻŋ āĻšāϞ⧋ āĻāϰ āϤāĻŋāύāϟāĻŋ āĻĒā§āϰāϧāĻžāύ state:

Working Directory
       ↓
Staging Area
       ↓
Repository

Enter fullscreen mode Exit fullscreen mode

āĻāϗ⧁āϞ⧋ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāϞ⧇ Git āĻ…āύ⧇āĻ• āϏāĻšāϜ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤

1ī¸âƒŖ Working Directory

āφāĻĒāύāĻŋ āϝāĻ–āύ project-āĻāϰ file edit āĻ•āϰ⧇āύ, āϤāĻ–āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϟāĻŋ āĻĒā§āϰāĻĨāĻŽā§‡ Working Directory-āϤ⧇ āĻĨāĻžāϕ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

index.html
style.css
script.js

Enter fullscreen mode Exit fullscreen mode

āφāĻĒāύāĻŋ style.css āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϞ⧇āύāĨ¤

āĻāĻ–āύ Git āϏ⧇āχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ detect āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤

2ī¸âƒŖ Staging Area

āφāĻĒāύāĻŋ āϝāĻ–āύ āĻŦāϞ⧇āĻ¨â€”

“āĻāχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϟāĻŋ āφāĻŽāĻŋ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ commit-āĻ āϰāĻžāĻ–āϤ⧇ āϚāĻžāχāĨ¤”

āϤāĻ–āύ git add āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύāĨ¤

git add style.css

Enter fullscreen mode Exit fullscreen mode

āĻāĻ–āύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϟāĻŋ Staging Area-āϤ⧇ āϚāϞ⧇ āϝāĻžāĻŦ⧇āĨ¤

3ī¸âƒŖ Repository

āĻāϰāĻĒāϰ git commit āĻ•āϰāϞ⧇ staging āĻ•āϰāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ Git history-āϤ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻšā§ŸāĨ¤

git commit -m "Update website styling"

Enter fullscreen mode Exit fullscreen mode

āϤāĻžāĻšāϞ⧇ āĻĒ⧁āϰ⧋ flow āĻšāϞ⧋:

Edit File
   ↓
Working Directory
   ↓
git add
   ↓
Staging Area
   ↓
git commit
   ↓
Repository

Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻŋ Git āĻļ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ flow-āϗ⧁āϞ⧋āϰ āĻāĻ•āϟāĻŋāĨ¤ đŸ”Ĩ

📸 Commit āϕ⧀?

Commit āĻšāϞ⧋ project-āĻāϰ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϰ snapshotāĨ¤

āĻĒā§āϰāϤāĻŋāϟāĻŋ commit-āĻāϰ āϏāĻ™ā§āϗ⧇ āĻāĻ•āϟāĻŋ message āĻĨāĻžāϕ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

git add .
git commit -m "Add homepage design"

Enter fullscreen mode Exit fullscreen mode

āĻāĻ–āĻžāύ⧇:

  • git add . → āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞ⧋ staging-āĻ āĻ¨ā§‡ā§Ÿ
  • git commit → āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇
  • -m → commit message
  • "Add homepage design" → āϕ⧀ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšā§Ÿā§‡āϛ⧇ āϤāĻžāϰ āĻŦāĻ°ā§āĻŖāύāĻž

āĻ­āĻžāϞ⧋ Commit Message āϕ⧇āĻŽāύ āĻšāĻ“ā§ŸāĻž āωāϚāĻŋāϤ?

❌ āĻ–āĻžāϰāĻžāĻĒ:

update

Enter fullscreen mode Exit fullscreen mode

❌ āφāϰāĻ“ āĻ–āĻžāϰāĻžāĻĒ:

changes

Enter fullscreen mode Exit fullscreen mode

✅ āĻ­āĻžāϞ⧋:

Add responsive navigation menu

Enter fullscreen mode Exit fullscreen mode

āĻ…āĻĨāĻŦāĻž:

Fix login form validation bug

Enter fullscreen mode Exit fullscreen mode

Commit message āĻāĻŽāύ āĻšāĻ“ā§ŸāĻž āωāϚāĻŋāϤ āϝāĻžāϤ⧇ āĻĒāϰ⧇ history āĻĻ⧇āĻ–āϞ⧇ āφāĻĒāύāĻŋ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇āύ āϕ⧀ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύāĨ¤

đŸŒŋ Branch āϕ⧀?

Git-āĻāϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ feature-āĻāϰ āĻāĻ•āϟāĻŋ āĻšāϞ⧋ BranchāĨ¤

āϧāϰ⧁āύ āφāĻĒāύāĻžāϰ main project āϚāϞāϛ⧇ āĻ āĻŋāĻ•āĻ āĻžāĻ•āĨ¤

āĻāĻ–āύ āφāĻĒāύāĻŋ āύāϤ⧁āύ āĻāĻ•āϟāĻŋ Login System āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϚāĻžāύāĨ¤

āφāĻĒāύāĻŋ āϏāϰāĻžāϏāϰāĻŋ main branch-āĻ āĻ•āĻžāϜ āύāĻž āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ branch āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

git branch feature/login

Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ branch-āĻ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύ:

git checkout feature/login

Enter fullscreen mode Exit fullscreen mode

āĻāĻ–āύ āφāĻĒāύāĻŋ feature/login branch-āĻ āĻ•āĻžāϜ āĻ•āϰāϛ⧇āύāĨ¤

Branch āϕ⧇āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ?

Branch āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇:

  • āύāϤ⧁āύ feature āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžā§Ÿ
  • Main code āύāĻŋāϰāĻžāĻĒāĻĻ āĻĨāĻžāϕ⧇
  • āĻāĻ•āĻžāϧāĻŋāĻ• developer āĻāĻ•āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇
  • Feature test āĻ•āϰāĻž āϝāĻžā§Ÿ
  • āĻ•āĻžāϜ āĻļ⧇āώ āĻšāϞ⧇ main branch-āĻ merge āĻ•āϰāĻž āϝāĻžā§Ÿ

āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ structure:

main
 │
 ├── feature/login
 │
 ├── feature/payment
 │
 └── feature/profile

Enter fullscreen mode Exit fullscreen mode

👀 HEAD āϕ⧀?

HEAD āĻšāϞ⧋ Git-āĻāϰ āĻāĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ referenceāĨ¤

āϏāĻšāϜ āĻ­āĻžāώāĻžā§Ÿ:

HEAD āϏāĻžāϧāĻžāϰāĻŖāϤ āφāĻĒāύāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ āϕ⧋āύ branch/commit-āĻ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ āĻ•āϰāϛ⧇āύ āϏ⧇āϟāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

main
  ↓
Commit A
  ↓
Commit B
  ↓
Commit C
       ↑
      HEAD

Enter fullscreen mode Exit fullscreen mode

āφāĻĒāύāĻŋ āϝāĻ–āύ branch āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āύ, HEAD-āĻ“ āϏ⧇āχ branch-āĻāϰ āĻĻāĻŋāϕ⧇ āϚāϞ⧇ āϝāĻžā§ŸāĨ¤

🔀 Merge āϕ⧀?

āϧāϰ⧁āύ āφāĻĒāύāĻŋ feature/login branch-āĻ Login System āϤ⧈āϰāĻŋ āĻ•āϰāϞ⧇āύāĨ¤

āĻāĻ–āύ āϏ⧇āχ āĻ•āĻžāϜāϟāĻŋ main branch-āĻ āφāύāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻĒā§āϰāĻĨāĻŽā§‡ main branch-āĻ āϝāĻžāύ:

git checkout main

Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ merge āĻ•āϰ⧁āύ:

git merge feature/login

Enter fullscreen mode Exit fullscreen mode

āĻāĻ–āύ feature/login-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ main branch-āĻ āϚāϞ⧇ āφāϏāĻŦ⧇āĨ¤

āϏāĻšāϜāĻ­āĻžāĻŦ⧇:

main
  \
   feature/login
        |
        | āĻ•āĻžāϜ āĻļ⧇āώ
        ↓
      merge
        ↓
      main

Enter fullscreen mode Exit fullscreen mode

âš ī¸ Merge Conflict āϕ⧀?

āĻ•āĻ–āύ⧋ āĻ•āĻ–āύ⧋ Git āύāĻŋāĻœā§‡ āĻĨ⧇āϕ⧇ āĻĻ⧁āχ branch-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ merge āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤

āϝ⧇āĻŽāύ āĻĻ⧁āχ developer āĻāĻ•āχ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āĻāĻ•āχ file āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āϛ⧇āĨ¤

āϤāĻ–āύ Git āĻŦāϞāϤ⧇ āĻĒāĻžāϰ⧇:

CONFLICT (content): Merge conflict in hello.py
Automatic merge failed; fix conflicts and then commit the result.

Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻŋ āĻšāϞ⧋ Merge ConflictāĨ¤

āϕ⧀ āĻ•āϰāĻŦ⧇āύ?

āĻĒā§āϰāĻĨāĻŽā§‡:

git status

Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ conflicted file āϖ⧁āϞ⧇ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϜāĻžā§ŸāĻ—āĻžāϟāĻŋ āĻ āĻŋāĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

Git āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻŽāύ marker āĻĻ⧇āĻ–āĻžāϤ⧇ āĻĒāĻžāϰ⧇:

<<<<<<< HEAD
Your changes
=======
Other branch changes
>>>>>>> feature/login

Enter fullscreen mode Exit fullscreen mode

āφāĻĒāύāĻžāϕ⧇ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ code āϰ⧇āϖ⧇ conflict markers āϏāϰāĻŋā§Ÿā§‡ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤

āϤāĻžāϰāĻĒāϰ:

git add hello.py

Enter fullscreen mode Exit fullscreen mode

āĻāĻŦāĻ‚:

git commit -m "Resolve merge conflict"

Enter fullscreen mode Exit fullscreen mode

â˜ī¸ Remote Repository āϕ⧀?

āφāĻĒāύāĻžāϰ computer-āĻāϰ repository āĻšāϞ⧋ local repositoryāĨ¤

āφāϰ GitHub/GitLab-āĻāϰ āĻŽāϤ⧋ platform-āĻ āĻĨāĻžāĻ•āĻž repository āĻšāϞ⧋ remote repositoryāĨ¤

āϏāĻžāϧāĻžāϰāĻŖāϤ remote-āĻāϰ āύāĻžāĻŽ:

origin

Enter fullscreen mode Exit fullscreen mode

āϤāĻžāχ āφāĻĒāύāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ:

Local Repository
       ↓
     origin
       ↓
Remote Repository

Enter fullscreen mode Exit fullscreen mode

📤 Git Push āϕ⧀?

āφāĻĒāύāĻžāϰ local commit remote repository-āϤ⧇ āĻĒāĻžāĻ āĻžāϤ⧇:

git push origin main

Enter fullscreen mode Exit fullscreen mode

āĻ…āĻ°ā§āĻĨāĻžā§Ž:

Local → Remote

đŸ“Ĩ Git Pull āϕ⧀?

Remote repository-āϤ⧇ āĻ…āĻ¨ā§āϝ āϕ⧇āω āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āϛ⧇āĨ¤

āϏ⧇āχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āφāĻĒāύāĻžāϰ local repository-āϤ⧇ āφāύāϤ⧇:

git pull origin main

Enter fullscreen mode Exit fullscreen mode

āĻ…āĻ°ā§āĻĨāĻžā§Ž:

Remote → Local

🔁 Push āĻāĻŦāĻ‚ Pull āĻāĻ• āύāϜāϰ⧇

Your Computer                 GitHub
     │                          │
     │ ─────── git push ─────→ │
     │                          │
     │ ←────── git pull ────── │
     │                          │

Enter fullscreen mode Exit fullscreen mode

đŸ“Ĩ Existing Project Clone āĻ•āϰāĻž

āϝāĻĻāĻŋ āϕ⧋āύ⧋ remote repository āφāĻĒāύāĻžāϰ computer-āĻ āφāύāϤ⧇ āϚāĻžāύ, āϤāĻžāĻšāϞ⧇:

git clone <repository-url>

Enter fullscreen mode Exit fullscreen mode

āωāĻĻāĻžāĻšāϰāĻŖ:

git clone https://github.com/example/project.git

Enter fullscreen mode Exit fullscreen mode

āĻāϤ⧇ repository-āĻāϰ history āϏāĻš project āφāĻĒāύāĻžāϰ computer-āĻ āϚāϞ⧇ āφāϏāĻŦ⧇āĨ¤

đŸˇī¸ Tag āϕ⧀?

āϕ⧋āύ⧋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ commit-āϕ⧇ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰāϤ⧇ Tag āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤

āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ release-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāϟāĻŋ āϖ⧁āĻŦ āĻ•āĻžāĻœā§‡ āϞāĻžāϗ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

git tag -a v1.0 -m "First release"

Enter fullscreen mode Exit fullscreen mode

āϤāĻžāϰāĻĒāϰ:

git push origin v1.0

Enter fullscreen mode Exit fullscreen mode

āĻāĻ–āύ v1.0 āĻāĻ•āϟāĻŋ release point āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

đŸ› ī¸ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ Git Commands

āύāĻŋāĻšā§‡āϰ commands-āϗ⧁āϞ⧋ āĻāĻ•āϜāύ beginner-āĻāϰ āĻ…āĻŦāĻļā§āϝāχ āϜāĻžāύāĻž āωāϚāĻŋāϤāĨ¤

Command āĻ•āĻžāϜ git init āύāϤ⧁āύ repository āϤ⧈āϰāĻŋ git clone <url> Remote repository clone git status āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĻ⧇āĻ–āĻž git add <file> File staging āĻ•āϰāĻž git commit -m "message" Commit āϤ⧈āϰāĻŋ git log Commit history āĻĻ⧇āĻ–āĻž git branch Branch āĻĻ⧇āĻ–āĻž/āϤ⧈āϰāĻŋ git checkout Branch āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ git merge Branch merge git pull Remote āĻĨ⧇āϕ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āφāύāĻž git push Remote-āĻ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻĒāĻžāĻ āĻžāύ⧋ git reset Commit/changes āĻĒāĻŋāĻ›āĻŋā§Ÿā§‡ āύ⧇āĻ“ā§ŸāĻž git revert āφāϗ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āύāϤ⧁āύ commit āĻĻāĻŋā§Ÿā§‡ undo āĻ•āϰāĻž git rebase Commit history āĻĒ⧁āύāĻ°ā§āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ git cherry-pick āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ commit āĻ…āĻ¨ā§āϝ branch-āĻ āύ⧇āĻ“ā§ŸāĻž git tag āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ commit āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰāĻž

🚀 āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦ Git Workflow

āĻāĻŦāĻžāϰ āϧāϰ⧇ āύāĻŋāχ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ website āϤ⧈āϰāĻŋ āĻ•āϰāϛ⧇āύāĨ¤

Step 1 — Project āϤ⧈āϰāĻŋ

mkdir my-website
cd my-website

Enter fullscreen mode Exit fullscreen mode

Step 2 — Git initialize

git init

Enter fullscreen mode Exit fullscreen mode

Step 3 — File āϤ⧈āϰāĻŋ

touch index.html

Enter fullscreen mode Exit fullscreen mode

Step 4 — Status āĻĻ⧇āϖ⧁āύ

git status

Enter fullscreen mode Exit fullscreen mode

Step 5 — File Stage āĻ•āϰ⧁āύ

git add index.html

Enter fullscreen mode Exit fullscreen mode

Step 6 — Commit āĻ•āϰ⧁āύ

git commit -m "Add homepage"

Enter fullscreen mode Exit fullscreen mode

Step 7 — Feature branch āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

git branch feature/navbar
git checkout feature/navbar

Enter fullscreen mode Exit fullscreen mode

Step 8 — Feature āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

āφāĻĒāύāĻžāϰ Navbar code āϞāĻŋāϖ⧁āύāĨ¤

āϤāĻžāϰāĻĒāϰ:

git add .
git commit -m "Add responsive navbar"

Enter fullscreen mode Exit fullscreen mode

Step 9 — Main branch-āĻ āĻĢāĻŋāϰ⧇ āϝāĻžāύ

git checkout main

Enter fullscreen mode Exit fullscreen mode

Step 10 — Feature merge āĻ•āϰ⧁āύ

git merge feature/navbar

Enter fullscreen mode Exit fullscreen mode

Step 11 — Remote-āĻ Push āĻ•āϰ⧁āύ

git push origin main

Enter fullscreen mode Exit fullscreen mode

🎉 āĻŦā§āϝāϏ!

āĻāϟāĻžāχ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ Git workflowāĨ¤

🔄 git revert āĻŦāύāĻžāĻŽ git reset

āĻāχ āĻĻ⧁āχāϟāĻŋ command beginner-āĻĻ⧇āϰ āĻ…āύ⧇āĻ• confuse āĻ•āϰ⧇āĨ¤

git revert

git revert āĻāĻ•āϟāĻŋ āύāϤ⧁āύ commit āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āφāϗ⧇āϰ commit-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āωāĻ˛ā§āĻŸā§‡ āĻĻā§‡ā§ŸāĨ¤

git revert <commit>

Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻŋ shared/public history-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϤ⧁āϞāύāĻžāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āύāĻŋāϰāĻžāĻĒāĻĻāĨ¤

git reset

git reset āφāĻĒāύāĻžāϰ HEAD āĻāĻŦāĻ‚ repository state āĻĒāĻŋāĻ›āĻŋā§Ÿā§‡ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

git reset --hard HEAD~1

Enter fullscreen mode Exit fullscreen mode

âš ī¸ āϏāϤāĻ°ā§āĻ•āϤāĻž: --hard āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇ uncommitted āĻ•āĻžāϜ āĻšāĻžāϰāĻŋā§Ÿā§‡ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϤāĻžāχ reset āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻā§‡ āύ⧇āĻ“ā§ŸāĻž āωāϚāĻŋāϤ āφāĻĒāύāĻŋ āϕ⧀ āĻ•āϰāϛ⧇āύāĨ¤

🍒 Git Cherry-pick āϕ⧀?

āϧāϰ⧁āύ āĻāĻ•āϟāĻŋ branch-āĻ ā§§ā§ĻāϟāĻŋ commit āφāϛ⧇āĨ¤

āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāύāĻžāϰ āĻĻāϰāĻ•āĻžāϰ āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ commitāĨ¤

āϤāĻ–āύ git cherry-pick āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

git cherry-pick <commit-id>

Enter fullscreen mode Exit fullscreen mode

āĻāϤ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ commit-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āφāĻĒāύāĻžāϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ branch-āĻ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻšāĻŦ⧇āĨ¤

🔃 Git Rebase āϕ⧀?

git rebase āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ branch-āĻāϰ commit āĻ…āĻ¨ā§āϝ branch-āĻāϰ latest āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇āϰ āĻ“āĻĒāϰ āĻĒ⧁āύāĻ°ā§āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

git checkout feature/login
git rebase main

Enter fullscreen mode Exit fullscreen mode

āĻāϰ āĻĢāϞ⧇ history āĻ…āύ⧇āĻ• āϏāĻŽā§Ÿ āφāϰāĻ“ linear āĻāĻŦāĻ‚ clean āĻĻ⧇āĻ–āĻž āϝāĻžā§ŸāĨ¤

āϤāĻŦ⧇ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ:

âš ī¸ Rebase history āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āĨ¤ Shared branch-āĻ rebase āĻ•āϰāĻžāϰ āφāϗ⧇ āϏāϤāĻ°ā§āĻ• āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤

📂 .gitignore āϕ⧀?

āĻ•āĻŋāϛ⧁ file āĻŦāĻž folder āφāĻŽāϰāĻž Git-āĻ track āĻ•āϰāϤ⧇ āϚāĻžāχ āύāĻžāĨ¤

āϝ⧇āĻŽāύ:

  • node_modules
  • Python cache
  • IDE settings
  • Operating system files
  • Build files

āĻāϏāĻŦ ignore āĻ•āϰāϤ⧇ .gitignore file āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

# Operating system
.DS_Store
Thumbs.db

# Python
__pycache__/
*.py[cod]

# Node
node_modules/

# VS Code
.vscode/

# IntelliJ
*.iml

Enter fullscreen mode Exit fullscreen mode

āĻāϤ⧇ Git āĻāχ file/folder-āϗ⧁āϞ⧋ track āĻ•āϰāĻŦ⧇ āύāĻžāĨ¤

💡 Git-āĻāϰ āĻ•āĻŋāϛ⧁ āĻ­āĻžāϞ⧋ āĻ…āĻ­ā§āϝāĻžāϏ

Git āĻļ⧇āĻ–āĻžāϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ­āĻžāϞ⧋ habit āϤ⧈āϰāĻŋ āĻ•āϰāĻžāĻ“ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

✅ 1. āϛ⧋āϟ āϛ⧋āϟ Commit āĻ•āϰ⧁āύ

āĻāĻ•āϟāĻŋ commit-āĻ āĻ…āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āĻ…āύ⧇āĻ• āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āύāĻž āϰāĻžāĻ–āĻžāχ āĻ­āĻžāϞ⧋āĨ¤

✅ 2. āĻ­āĻžāϞ⧋ Commit Message āϞāĻŋāϖ⧁āύ

Add login form validation

Enter fullscreen mode Exit fullscreen mode

āĻāϰ āĻŽāϤ⧋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ message āϞāĻŋāϖ⧁āύāĨ¤

✅ 3. Commit āĻ•āϰāĻžāϰ āφāϗ⧇ Status āĻĻ⧇āϖ⧁āύ

git status

Enter fullscreen mode Exit fullscreen mode

āĻāϤ⧇ āφāĻĒāύāĻŋ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āϕ⧋āύ file āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšā§Ÿā§‡āϛ⧇āĨ¤

✅ 4. Main branch-āϕ⧇ Stable āϰāĻžāϖ⧁āύ

āύāϤ⧁āύ feature-āĻāϰ āϜāĻ¨ā§āϝ āφāϞāĻžāĻĻāĻž branch āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤

✅ 5. .gitignore āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

āĻ…āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ file repository-āϤ⧇ āĻĒāĻžāĻ āĻžāĻŦ⧇āύ āύāĻžāĨ¤

✅ 6. Push āĻ•āϰāĻžāϰ āφāϗ⧇ Pull āĻ•āϰ⧁āύ

Team project āĻšāϞ⧇ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āφāϗ⧇ āύāĻŋā§Ÿā§‡ āύ⧇āĻ“ā§ŸāĻž āĻ­āĻžāϞ⧋āĨ¤

git pull

Enter fullscreen mode Exit fullscreen mode

❌ Beginner-āϰāĻž āϝ⧇ āϭ⧁āϞāϗ⧁āϞ⧋ āĻŦ⧇āĻļāĻŋ āĻ•āϰ⧇

āϭ⧁āϞ ā§§: āϏāĻŦāĻ•āĻŋāϛ⧁ āĻāĻ•āϏāĻžāĻĨ⧇ commit āĻ•āϰāĻž

git add .
git commit -m "everything"

Enter fullscreen mode Exit fullscreen mode

āĻāĻ­āĻžāĻŦ⧇ āύāĻž āĻ•āϰ⧇ logically related āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞ⧋ āφāϞāĻžāĻĻāĻž commit āĻ•āϰ⧁āύāĨ¤

āϭ⧁āϞ ⧍: Commit message āĻšāĻŋāϏ⧇āĻŦ⧇ āĻļ⧁āϧ⧁ update āϞ⧇āĻ–āĻž

update
changes
final
final2
new

Enter fullscreen mode Exit fullscreen mode

āĻ āϧāϰāύ⧇āϰ message āĻĒāϰ⧇ history āĻŦ⧁āĻāϤ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤

āϭ⧁āϞ ā§Š: git reset --hard āύāĻž āĻŦ⧁āĻā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž

āĻāχ command āϖ⧁āĻŦ powerfulāĨ¤

āϤāĻžāχ command āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āφāϗ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāύ āϕ⧀ āĻšāĻžāϰāĻžāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āϭ⧁āϞ ā§Ē: Main branch-āĻ āϏāϰāĻžāϏāϰāĻŋ āϏāĻŦ āĻ•āĻžāϜ āĻ•āϰāĻž

Team project āĻšāϞ⧇ feature branch āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āϏ⧁āĻŦāĻŋāϧāĻžāϜāύāĻ• āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

đŸŒŗ Git Workflow-āĻāϰ āĻ•ā§Ÿā§‡āĻ•āϟāĻŋ āϧāϰāύ

Git āĻĻāĻŋā§Ÿā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ workflow āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

1. Centralized Workflow

āϏāĻŦāĻžāχ āĻāĻ•āϟāĻŋ central repository-āĻāϰ āϏāĻ™ā§āϗ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

Developer
   ↓
  Main
   ↑
Developer

Enter fullscreen mode Exit fullscreen mode

āϛ⧋āϟ team-āĻāϰ āϜāĻ¨ā§āϝ āϏāĻšāϜ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

2. Feature Branch Workflow

āĻĒā§āϰāϤāĻŋāϟāĻŋ feature-āĻāϰ āϜāĻ¨ā§āϝ āφāϞāĻžāĻĻāĻž branch āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§ŸāĨ¤

main
 ├── feature/login
 ├── feature/payment
 └── feature/profile

Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻŋ team development-āĻ āϖ⧁āĻŦ āϜāύāĻĒā§āϰāĻŋ⧟ āĻāĻ•āϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋāĨ¤

3. Gitflow

Gitflow-āĻ main, develop, feature, release, hotfix āχāĻ¤ā§āϝāĻžāĻĻāĻŋ branch āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤

āĻāϟāĻŋ structured āĻšāϞ⧇āĻ“ āϤ⧁āϞāύāĻžāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āĻŦ⧇āĻļāĻŋ complexāĨ¤

4. Forking Workflow

āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ open-source project-āĻ āĻāϟāĻŋ āϜāύāĻĒā§āϰāĻŋ⧟āĨ¤

Developer āĻŽā§‚āϞ repository-āĻāϰ āĻāĻ•āϟāĻŋ fork āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āύāĻŋāĻœā§‡āϰ repository-āϤ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āύ āĻāĻŦāĻ‚ āĻĒāϰ⧇ Pull Request-āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŽā§‚āϞ project-āĻ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻĒāĻžāĻ āĻžāύāĨ¤

đŸ–Ĩī¸ Git āĻ•āĻŋ āĻļ⧁āϧ⧁ Command Line āĻĻāĻŋā§Ÿā§‡āχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšā§Ÿ?

āύāĻžāĨ¤

Git-āĻāϰ āϜāĻ¨ā§āϝ āĻ…āύ⧇āĻ• GUI tool āĻ°ā§Ÿā§‡āϛ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

  • GitHub Desktop
  • SourceTree
  • GitKraken
  • TortoiseGit
  • Git GUI

GUI āĻĻāĻŋā§Ÿā§‡ Git-āĻāϰ āĻ…āύ⧇āĻ• āĻ•āĻžāϜ visually āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

āϤāĻŦ⧇ āĻāĻ•āϜāύ developer āĻšāĻŋāϏ⧇āĻŦ⧇ basic Git command line āϜāĻžāύāĻž āϖ⧁āĻŦāχ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

🧩 Git āĻļ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāϰ Recommended Roadmap

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ Git āĻāĻ•āĻĻāĻŽ āύāϤ⧁āύ āĻļāĻŋāĻ–āϛ⧇āύ, āϤāĻžāĻšāϞ⧇ āĻāχ order āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

đŸŸĸ Level 1 — Basic

āĻĒā§āϰāĻĨāĻŽā§‡ āĻļāĻŋāϖ⧁āύ:

git init
git clone
git status
git add
git commit
git log

Enter fullscreen mode Exit fullscreen mode

🟡 Level 2 — Branching

āϤāĻžāϰāĻĒāϰ:

git branch
git checkout
git merge

Enter fullscreen mode Exit fullscreen mode

🟠 Level 3 — Remote

āĻāϰāĻĒāϰ:

git remote
git pull
git push

Enter fullscreen mode Exit fullscreen mode

🔴 Level 4 — Advanced

āϏāĻŦāĻļ⧇āώ⧇:

git reset
git revert
git rebase
git cherry-pick
git tag

Enter fullscreen mode Exit fullscreen mode

āĻāĻ­āĻžāĻŦ⧇ āϧāĻžāĻĒ⧇ āϧāĻžāĻĒ⧇ āĻļāĻŋāĻ–āϞ⧇ Git āĻ…āύ⧇āĻ• āϏāĻšāϜ āĻŽāύ⧇ āĻšāĻŦ⧇āĨ¤

📋 Git Cheat Sheet

# Repository āϤ⧈āϰāĻŋ
git init

# Repository clone
git clone <url>

# Status āĻĻ⧇āĻ–āĻž
git status

# File stage āĻ•āϰāĻž
git add <file>

# āϏāĻŦ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ stage āĻ•āϰāĻž
git add .

# Commit
git commit -m "Your message"

# History āĻĻ⧇āĻ–āĻž
git log

# Branch āϤ⧈āϰāĻŋ
git branch feature-name

# Branch āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ
git checkout feature-name

# Branch merge
git merge feature-name

# Remote āĻĨ⧇āϕ⧇ update
git pull

# Remote-āĻ push
git push

# āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ commit revert
git revert <commit>

# āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ commit-āĻ reset
git reset --hard <commit>

# Rebase
git rebase main

# āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ commit āύ⧇āĻ“ā§ŸāĻž
git cherry-pick <commit>

# Tag āϤ⧈āϰāĻŋ
git tag -a v1.0 -m "First release"

Enter fullscreen mode Exit fullscreen mode

đŸŽ¯ āĻļ⧇āώ āĻ•āĻĨāĻž

āĻļ⧁āϰ⧁āϤ⧇ Git-āĻāϰ āĻ…āύ⧇āĻ• command āĻĻ⧇āϖ⧇ āĻ•āĻ āĻŋāύ āĻŽāύ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāϏāϞ⧇ Git-āĻāϰ āĻŽā§‚āϞ āϧāĻžāϰāĻŖāĻž āĻ•ā§Ÿā§‡āĻ•āϟāĻŋ:

Edit → Add → Commit → Branch → Merge → Push → Pull

āĻāχ flow āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻā§‡ āϗ⧇āϞ⧇ Git-āĻāϰ foundation āϤ⧈āϰāĻŋ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤

Git āĻļ⧁āϧ⧁ code backup āϰāĻžāĻ–āĻžāϰ tool āύ⧟āĨ¤ āĻāϟāĻŋ āĻāĻ•āϜāύ developer-āϕ⧇ organized āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇, team-āĻāϰ āϏāĻ™ā§āϗ⧇ collaborate āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ project-āĻāϰ history āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤

āϤāĻžāχ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏāĻ¤ā§āϝāĻŋāχ āĻāĻ•āϜāύ āĻ­āĻžāϞ⧋ Web Developer āĻŦāĻž Software Developer āĻšāϤ⧇ āϚāĻžāύ, āϤāĻžāĻšāϞ⧇ Git āĻļ⧇āĻ–āĻž āĻ…āĻŦāĻļā§āϝāχ āφāĻĒāύāĻžāϰ learning journey-āĻāϰ āĻāĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ…āĻ‚āĻļ āĻšāĻ“ā§ŸāĻž āωāϚāĻŋāϤāĨ¤ 🚀

đŸ’Ŧ āφāĻĒāύāĻžāϰ āϕ⧀ āĻ…āĻŦāĻ¸ā§āĻĨāĻž?

āφāĻĒāύāĻŋ āĻ•āĻŋ Git āĻļāĻŋāĻ–āϛ⧇āύ?

āύāĻžāĻ•āĻŋ Git-āĻāϰ push, pull, branch, merge āĻāĻ–āύ⧋ āĻāĻ•āϟ⧁ confusing āϞāĻžāϗ⧇?

Comment āĻ•āϰ⧇ āϜāĻžāύāĻžāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ 👇

Happy Coding! đŸ’ģâ¤ī¸

đŸˇī¸ Tags

#git #github #webdev #programming #beginners

뛐ëŦ¸ė—ė„œ ęŗ„ė† ↗

ėŊ”늘트

ë‹ĩ글 남기기