Skip to content

🔁 Fork āĻāĻŦāĻ‚ Pull Request Workflow ​

🧠 Fork āϕ⧀? ​

Fork āĻšāϞ⧋ GitHub-āĻ āĻ…āĻ¨ā§āϝ āĻ•āĻžāϰāĻ“ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϰ āĻāĻ•āϟāĻŋ āĻ•āĻĒāĻŋ āύāĻŋāĻœā§‡āϰ GitHub āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡ āύāĻŋā§Ÿā§‡ āφāϏāĻžāĨ¤ āφāĻĒāύāĻŋ āĻāχ āĻ•āĻĒāĻŋ-āϤ⧇ āϝ⧇āϕ⧋āύ⧋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻ…āĻĨāϚ āĻŽā§‚āϞ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϰ āϕ⧋āύ⧋ āĻ•ā§āώāϤāĻŋ āĻšāĻŦ⧇ āύāĻžāĨ¤

✅ āφāĻĒāύāĻŋ āϝāĻ–āύ āĻŽā§‚āϞ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡ āϏāϰāĻžāϏāϰāĻŋ write access āĻĒāĻžāύ āύāĻž, āϤāĻ–āύ Fork āĻ•āϰ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤

đŸŽ¯ Fork āĻāĻŦāĻ‚ Pull Request āϕ⧇āύ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ? ​

āĻŦāĻŋāώ⧟āĻ•āĻžāϰāĻŖ
āφāĻĒāύāĻŋ contributor āύāύāĻŽā§‚āϞ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡ āϏāϰāĻžāϏāϰāĻŋ push āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž
āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟāĻ…āύ⧇āϕ⧇āϰ āĻ•āĻžāϜ āφāϞāĻžāĻĻāĻž āϰāĻžāĻ–āĻž āĻĻāϰāĻ•āĻžāϰ
Code Review āĻĻāϰāĻ•āĻžāϰPull Request āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϰāĻŋāĻ­āĻŋāω āϏāĻšāϜ
āωāĻ¨ā§āύāϤ CollaborationāϏāĻ•āϞ commit āφāϞāĻžāĻĻāĻž āĻŦā§āϰāĻžāĻžā§āĻšā§‡ āĻĨāĻžāĻ•āĻŦ⧇

đŸ› ī¸ Step-by-step: Fork āĻ“ Pull Request Workflow ​

āϧāϰāĻŋ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ Laravel āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āϚāĻžāύāĨ¤

ā§§. 🔗 GitHub āĻĨ⧇āϕ⧇ Fork āĻ•āϰ⧁āύ ​

āϝ⧇ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āϚāĻžāύ, GitHub āĻ āĻ—āĻŋā§Ÿā§‡:

  • "Fork" āĻŦāĻžāϟāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ
  • āĻāϟāĻŋ āφāĻĒāύāĻžāϰ GitHub āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡ āĻ•āĻĒāĻŋ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇

⧍. đŸ”ģ Fork āĻ•āϰāĻž āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻ•ā§āϞ⧋āύ āĻ•āϰ⧁āύ ​

bash
git clone https://github.com/your-username/project-name.git
cd project-name
git clone https://github.com/your-username/project-name.git
cd project-name

ā§Š. 🔄 āĻŽā§‚āϞ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āϝ⧋āĻ— āĻ•āϰ⧁āύ (remote upstream) ​

bash
git remote add upstream https://github.com/original-owner/project-name.git
git remote add upstream https://github.com/original-owner/project-name.git

✅ āĻāĻ–āύ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āĻĻ⧁āχāϟāĻŋ remote āĻĨāĻžāĻ•āĻŦ⧇:

  • origin → āφāĻĒāύāĻžāϰ Fork
  • upstream → āĻŽā§‚āϞ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ

ā§Ē. đŸŒŋ āύāϤ⧁āύ āĻŦā§āϰāĻžāĻžā§āϚ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ ​

bash
git checkout -b feature/add-contact-form
git checkout -b feature/add-contact-form

ā§Ģ. 🧑‍đŸ’ģ āĻĢāĻŋāϚāĻžāϰ āĻŦāĻž āĻĢāĻŋāĻ•ā§āϏ āϝ⧋āĻ— āĻ•āϰ⧁āύ ​

  • ContactController.php āϝ⧋āĻ— āĻ•āϰ⧁āύ
  • contact.blade.php āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ
bash
git add .
git commit -m "Add contact form with validation"
git add .
git commit -m "Add contact form with validation"

ā§Ŧ. 🚀 āύāĻŋāĻœā§‡āϰ Fork āĻ Push āĻ•āϰ⧁āύ ​

bash
git push origin feature/add-contact-form
git push origin feature/add-contact-form

ā§­. 🔁 Pull Request āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ ​

GitHub āĻ āϝāĻžāύ → āφāĻĒāύāĻžāϰ Fork → “Compare & Pull Request” āĻŦāĻžāϟāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧁āύ:

  • base: original/master
  • compare: your-branch-name

📝 āĻāĻ•āϟāĻŋ āϏ⧁āĻ¨ā§āĻĻāϰ āĻŦāĻŋāĻŦāϰāĻŖ āϞāĻŋāϖ⧁āύ:

This PR adds a new contact form with validation and stores messages to database.

📌 āωāĻĻāĻžāĻšāϰāĻŖ ⧍: āĻŦāĻžāĻ— āĻĢāĻŋāĻ•ā§āϏ ​

bash
git checkout -b fix/typo-in-readme
# README.md āĻĢāĻŋāĻ•ā§āϏ āĻ•āϰ⧁āύ
git commit -am "Fix typo in README"
git push origin fix/typo-in-readme
# PR āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ
git checkout -b fix/typo-in-readme
# README.md āĻĢāĻŋāĻ•ā§āϏ āĻ•āϰ⧁āύ
git commit -am "Fix typo in README"
git push origin fix/typo-in-readme
# PR āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

🔁 Upstream āĻĨ⧇āϕ⧇ Sync āϰāĻžāĻ–āĻžāϰ āύāĻŋ⧟āĻŽ ​

āĻŽāĻžāĻā§‡ āĻŽāĻžāĻā§‡ āĻŽā§‚āϞ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āύāϤ⧁āύ commit āφāϏāĻŦ⧇āĨ¤ āϏ⧇āϗ⧁āϞ⧋ āφāύāϤ⧇:

bash
git checkout main
git fetch upstream
git merge upstream/main
git push origin main
git checkout main
git fetch upstream
git merge upstream/main
git push origin main

🧠 āĻ•āĻ–āύ Fork āĻĻāϰāĻ•āĻžāϰ? ​

āϕ⧇āϏFork āϞāĻžāĻ—āĻŦ⧇
āφāĻĒāύāĻŋ core āϟāĻŋāĻŽā§‡āϰ āĻŦāĻžāχāĻ°ā§‡âœ… āĻĻāϰāĻ•āĻžāϰ
āĻĒā§āϰāĻžāχāϭ⧇āϟ āϟāĻŋāĻŽ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸâŒ āĻĻāϰāĻ•āĻžāϰ āύ⧇āχ (āĻŦā§āϰāĻžāĻžā§āϚ āĻĻāĻŋā§Ÿā§‡āχ āϏāĻŽā§āĻ­āĻŦ)
āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ⧇ āĻ…āĻŦāĻĻāĻžāύ āϰāĻžāĻ–āϤ⧇ āϚāĻžāĻ¨âœ… āϖ⧁āĻŦ āĻĻāϰāĻ•āĻžāϰ

✅ Best Practices ​

  • meaningful āĻŦā§āϰāĻžāĻžā§āϚ āύāĻžāĻŽ āĻĻāĻŋāύ (āϝ⧇āĻŽāύ: feature/add-login, fix/button-bug)
  • āϛ⧋āϟ āϛ⧋āϟ PR āĻĒāĻžāĻ āĻžāύ
  • Pull Request āĻ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϞāĻŋāϖ⧁āύ
  • commit message āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻĻāĻŋāύ
  • āĻ…āĻ¨ā§āϝ āĻ•āĻžāϰ⧋ PR āĻ āϰāĻŋāĻ­āĻŋāω āĻ•āϰ⧁āύ

🔐 Real-life Scenario: Contributing to Laravel ​

āϧāϰāĻŋ āφāĻĒāύāĻŋ Laravel framework-āĻ āĻāĻ•āϟāĻž āϛ⧋āϟ āĻŦāĻžāĻ— āĻĢāĻŋāĻ•ā§āϏ āĻ•āϰāϤ⧇ āϚāĻžāύ:

  1. Fork āĻ•āϰ⧁āύ: https://github.com/laravel/framework
  2. āĻ•ā§āϞ⧋āύ āĻ•āϰ⧁āύ: āύāĻŋāĻœā§‡āϰ GitHub āĻĨ⧇āϕ⧇
  3. fix/add āĻ•āϰ⧁āύ → commit
  4. PR āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ: āĻŽā§‚āϞ Laravel āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϤ⧇

đŸ§Ē Bonus: CLI āĻĻāĻŋā§Ÿā§‡ PR āϤ⧈āϰāĻŋ (GitHub CLI) ​

bash
gh pr create --base main --head feature/add-stats --title "Add Stats Section" --body "Adds a new stats section to homepage"
gh pr create --base main --head feature/add-stats --title "Add Stats Section" --body "Adds a new stats section to homepage"

🤔 Pull Request Accept āύāĻž āĻšāϞ⧇? ​

  • āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻŦāϞāϞ⧇ → āύāĻŋāĻœā§‡āϰ āĻŦā§āϰāĻžāĻžā§āĻšā§‡ update āĻ•āϰ⧇ āφāĻŦāĻžāϰ push āĻ•āϰ⧁āύ
  • āφāϞ⧋āϚāύāĻž āĻ•āϰ⧁āύ → comment āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡
  • PR āĻŦāĻ¨ā§āϧ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āφāĻŦāĻžāϰ reopen āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ

đŸŽ¯ āωāĻĒāϏāĻ‚āĻšāĻžāϰ ​

Fork āĻāĻŦāĻ‚ Pull Request āĻšāϞ⧋ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻ•āύāĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ⧇āϰ āĻŽā§‚āϞ āϚāĻžāĻŦāĻŋāĻ•āĻžāĻ āĻŋāĨ¤ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āĻ•āĻžāϜāϕ⧇ āφāϞāĻžāĻĻāĻž āĻ•āϰ⧇ āϰāĻžāϖ⧇, āϰāĻŋāĻ­āĻŋāω āĻāĻŦāĻ‚ āĻŸā§‡āĻ¸ā§āĻŸā§‡āϰ āϏ⧁āϝ⧋āĻ— āĻĻā§‡ā§Ÿ āĻāĻŦāĻ‚ āĻŽā§‚āϞ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āĻ…āĻŦāĻĻāĻžāύ āϰāĻžāĻ–āϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤

Released under the MIT License.