đ 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 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒā§āϰāϧāĻžāύ āĻāĻžāϰāĻŖ:
- Code-āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ track āĻāϰāĻž āϝāĻžā§
- āĻāĻā§āϰ version āĻĻā§āĻāĻž āϝāĻžā§
- āĻĒā§āϰā§āύ⧠āĻ āĻŦāϏā§āĻĨāĻžā§ āĻĢāĻŋāϰ⧠āϝāĻžāĻā§āĻž āϝāĻžā§
- āĻāĻāĻžāϧāĻŋāĻ developer āĻāĻāϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§
- āĻāϞāĻžāĻĻāĻž feature-āĻāϰ āĻāύā§āϝ branch āϤā§āϰāĻŋ āĻāϰāĻž āϝāĻžā§
- Code merge āĻāϰāĻž āϝāĻžā§
- Project-āĻāϰ history āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžā§
- 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
ëĩę¸ ë¨ę¸°ę¸°
ëę¸ė ëŦ기 ėí´ėë ëĄęˇ¸ė¸í´ėŧíŠëë¤.