You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
337 lines
35 KiB
337 lines
35 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "05666cecb8983a72cf0ce1d18932b5b7",
|
|
"translation_date": "2025-08-25T22:46:03+00:00",
|
|
"source_file": "1-getting-started-lessons/2-github-basics/README.md",
|
|
"language_code": "bn"
|
|
}
|
|
-->
|
|
# GitHub পরিচিতি
|
|
|
|
এই পাঠে আমরা GitHub-এর মৌলিক বিষয়গুলো আলোচনা করব, যা কোড হোস্ট এবং পরিবর্তন পরিচালনার একটি প্ল্যাটফর্ম।
|
|
|
|

|
|
> স্কেচনোট: [Tomomi Imura](https://twitter.com/girlie_mac)
|
|
|
|
## প্রাক-পাঠ কুইজ
|
|
[প্রাক-পাঠ কুইজ](https://ff-quizzes.netlify.app/web/quiz/3)
|
|
|
|
## পরিচিতি
|
|
|
|
এই পাঠে আমরা আলোচনা করব:
|
|
|
|
- আপনার মেশিনে কাজ ট্র্যাক করা
|
|
- অন্যদের সাথে প্রকল্পে কাজ করা
|
|
- ওপেন সোর্স সফটওয়্যারে কীভাবে অবদান রাখা যায়
|
|
|
|
### পূর্বশর্ত
|
|
|
|
শুরু করার আগে, আপনাকে নিশ্চিত করতে হবে যে Git ইনস্টল করা আছে। টার্মিনালে টাইপ করুন:
|
|
`git --version`
|
|
|
|
যদি Git ইনস্টল না থাকে, [Git ডাউনলোড করুন](https://git-scm.com/downloads)। তারপর, আপনার লোকাল Git প্রোফাইল সেটআপ করুন টার্মিনালে:
|
|
* `git config --global user.name "your-name"`
|
|
* `git config --global user.email "your-email"`
|
|
|
|
যাচাই করতে চাইলে টাইপ করুন:
|
|
`git config --list`
|
|
|
|
আপনার একটি GitHub অ্যাকাউন্ট, একটি কোড এডিটর (যেমন Visual Studio Code), এবং টার্মিনাল (বা: কমান্ড প্রম্পট) খুলতে হবে।
|
|
|
|
[github.com](https://github.com/) এ যান এবং একটি অ্যাকাউন্ট তৈরি করুন যদি না করে থাকেন, অথবা লগইন করুন এবং আপনার প্রোফাইল পূরণ করুন।
|
|
|
|
✅ GitHub একমাত্র কোড রিপোজিটরি নয়; আরও অনেক আছে, তবে GitHub সবচেয়ে পরিচিত।
|
|
|
|
### প্রস্তুতি
|
|
|
|
আপনার লোকাল মেশিনে (ল্যাপটপ বা পিসি) একটি কোড প্রকল্পের ফোল্ডার এবং GitHub-এ একটি পাবলিক রিপোজিটরি প্রয়োজন হবে, যা অন্যদের প্রকল্পে অবদান রাখার উদাহরণ হিসেবে কাজ করবে।
|
|
|
|
---
|
|
|
|
## কোড ব্যবস্থাপনা
|
|
|
|
ধরুন আপনার লোকাল মেশিনে একটি কোড প্রকল্পের ফোল্ডার আছে এবং আপনি Git ব্যবহার করে আপনার অগ্রগতি ট্র্যাক করতে চান - এটি একটি ভার্সন কন্ট্রোল সিস্টেম। কিছু মানুষ Git ব্যবহারকে ভবিষ্যতের নিজের জন্য একটি প্রেমপত্র লেখার সাথে তুলনা করেন। আপনার কমিট মেসেজগুলো পড়লে আপনি কেন একটি সিদ্ধান্ত নিয়েছিলেন তা মনে করতে পারবেন, অথবা পরিবর্তন "রোলব্যাক" করতে পারবেন - যদি আপনি ভালো "কমিট মেসেজ" লিখেন।
|
|
|
|
### কাজ: একটি রিপোজিটরি তৈরি করুন এবং কোড কমিট করুন
|
|
|
|
> ভিডিও দেখুন
|
|
>
|
|
> [](https://www.youtube.com/watch?v=9R31OUPpxU4)
|
|
|
|
1. **GitHub-এ রিপোজিটরি তৈরি করুন**। GitHub.com-এ, রিপোজিটরি ট্যাবে অথবা নেভিগেশন বার টপ-রাইট থেকে **নতুন রিপো** বাটনটি খুঁজুন।
|
|
|
|
1. আপনার রিপোজিটরিকে একটি নাম দিন
|
|
1. **রিপোজিটরি তৈরি করুন** নির্বাচন করুন।
|
|
|
|
1. **আপনার কাজের ফোল্ডারে যান**। টার্মিনালে, সেই ফোল্ডারে যান (ডিরেক্টরি) যা আপনি ট্র্যাক করতে চান। টাইপ করুন:
|
|
|
|
```bash
|
|
cd [name of your folder]
|
|
```
|
|
|
|
1. **Git রিপোজিটরি ইনিশিয়ালাইজ করুন**। আপনার প্রকল্পে টাইপ করুন:
|
|
|
|
```bash
|
|
git init
|
|
```
|
|
|
|
1. **স্ট্যাটাস চেক করুন**। রিপোজিটরির স্ট্যাটাস চেক করতে টাইপ করুন:
|
|
|
|
```bash
|
|
git status
|
|
```
|
|
|
|
আউটপুট দেখতে এমন হতে পারে:
|
|
|
|
```output
|
|
Changes not staged for commit:
|
|
(use "git add <file>..." to update what will be committed)
|
|
(use "git checkout -- <file>..." to discard changes in working directory)
|
|
|
|
modified: file.txt
|
|
modified: file2.txt
|
|
```
|
|
|
|
সাধারণত `git status` কমান্ড আপনাকে জানায় কোন ফাইলগুলো _সেভ_ করার জন্য প্রস্তুত অথবা কোন ফাইলগুলোতে পরিবর্তন আছে যা আপনি সংরক্ষণ করতে চান।
|
|
|
|
1. **সব ফাইল ট্র্যাকিংয়ে যোগ করুন**
|
|
এটিকে স্টেজিং ফাইল/স্টেজিং এরিয়াতে ফাইল যোগ করাও বলা হয়।
|
|
|
|
```bash
|
|
git add .
|
|
```
|
|
|
|
`git add` এবং `.` আর্গুমেন্ট নির্দেশ করে যে আপনার সব ফাইল এবং পরিবর্তন ট্র্যাকিংয়ের জন্য যোগ করা হয়েছে।
|
|
|
|
1. **নির্বাচিত ফাইল ট্র্যাকিংয়ে যোগ করুন**
|
|
|
|
```bash
|
|
git add [file or folder name]
|
|
```
|
|
|
|
এটি আমাদের নির্দিষ্ট ফাইলগুলো স্টেজিং এরিয়াতে যোগ করতে সাহায্য করে যখন আমরা সব ফাইল একসাথে কমিট করতে চাই না।
|
|
|
|
1. **সব ফাইল আনস্টেজ করুন**
|
|
|
|
```bash
|
|
git reset
|
|
```
|
|
|
|
এই কমান্ড আমাদের একসাথে সব ফাইল আনস্টেজ করতে সাহায্য করে।
|
|
|
|
1. **নির্দিষ্ট ফাইল আনস্টেজ করুন**
|
|
|
|
```bash
|
|
git reset [file or folder name]
|
|
```
|
|
|
|
এই কমান্ড আমাদের নির্দিষ্ট ফাইলটি আনস্টেজ করতে সাহায্য করে যা আমরা পরবর্তী কমিটে অন্তর্ভুক্ত করতে চাই না।
|
|
|
|
1. **আপনার কাজ সংরক্ষণ করুন**। এই পর্যায়ে আপনি ফাইলগুলোকে তথাকথিত _স্টেজিং এরিয়া_ তে যোগ করেছেন। এটি এমন একটি জায়গা যেখানে Git আপনার ফাইলগুলো ট্র্যাক করছে। পরিবর্তন স্থায়ী করতে আপনাকে ফাইলগুলো _কমিট_ করতে হবে। এটি করতে `git commit` কমান্ড ব্যবহার করুন। একটি _কমিট_ আপনার রিপোর ইতিহাসে একটি সংরক্ষণের পয়েন্টকে প্রতিনিধিত্ব করে। টাইপ করুন:
|
|
|
|
```bash
|
|
git commit -m "first commit"
|
|
```
|
|
|
|
এটি আপনার সব ফাইল কমিট করে, "first commit" মেসেজ যোগ করে। ভবিষ্যতের কমিট মেসেজগুলোতে আপনি আরও বর্ণনামূলক হতে চাইবেন যাতে আপনার পরিবর্তনের ধরন বোঝানো যায়।
|
|
|
|
1. **আপনার লোকাল Git রিপোকে GitHub-এর সাথে সংযুক্ত করুন**। একটি Git রিপো আপনার মেশিনে ভালো, তবে এক পর্যায়ে আপনি আপনার ফাইলগুলোর ব্যাকআপ কোথাও রাখতে চাইবেন এবং অন্যদেরকে আপনার রিপোতে কাজ করার আমন্ত্রণ জানাতে চাইবেন। GitHub এমন একটি জায়গা যেখানে এটি করা যায়। আমরা ইতিমধ্যে GitHub-এ একটি রিপো তৈরি করেছি, তাই আমাদের শুধু লোকাল Git রিপোকে GitHub-এর সাথে সংযুক্ত করতে হবে। `git remote add` কমান্ড এটি করবে। টাইপ করুন:
|
|
|
|
> নোট, কমান্ড টাইপ করার আগে আপনার GitHub রিপো পেজে যান এবং রিপোজিটরি URL খুঁজুন। আপনি এটি নিচের কমান্ডে ব্যবহার করবেন। ```https://github.com/username/repository_name.git``` কে আপনার GitHub URL দিয়ে প্রতিস্থাপন করুন।
|
|
|
|
```bash
|
|
git remote add origin https://github.com/username/repository_name.git
|
|
```
|
|
|
|
এটি একটি _রিমোট_, বা সংযোগ, তৈরি করে যার নাম "origin" এবং এটি পূর্বে তৈরি করা GitHub রিপোজিটরির দিকে নির্দেশ করে।
|
|
|
|
1. **লোকাল ফাইলগুলো GitHub-এ পাঠান**। এখন পর্যন্ত আপনি লোকাল রিপো এবং GitHub রিপোর মধ্যে একটি সংযোগ তৈরি করেছেন। এই ফাইলগুলো GitHub-এ পাঠাতে `git push` কমান্ড ব্যবহার করুন:
|
|
|
|
> নোট, আপনার ব্রাঞ্চের নাম ```main``` থেকে আলাদা হতে পারে।
|
|
|
|
```bash
|
|
git push -u origin main
|
|
```
|
|
|
|
এটি আপনার "main" ব্রাঞ্চের কমিটগুলো GitHub-এ পাঠায়।
|
|
|
|
2. **আরও পরিবর্তন যোগ করুন**। যদি আপনি আরও পরিবর্তন করতে চান এবং সেগুলো GitHub-এ পাঠাতে চান, তাহলে আপনাকে শুধু এই তিনটি কমান্ড ব্যবহার করতে হবে:
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "type your commit message here"
|
|
git push
|
|
```
|
|
|
|
> টিপ, আপনি `.gitignore` ফাইল গ্রহণ করতে চাইতে পারেন যাতে আপনি যে ফাইলগুলো ট্র্যাক করতে চান না সেগুলো GitHub-এ প্রদর্শিত না হয় - যেমন সেই নোট ফাইলটি যা আপনি একই ফোল্ডারে সংরক্ষণ করেন কিন্তু পাবলিক রিপোজিটরিতে এর কোনো স্থান নেই। `.gitignore` ফাইলের টেমপ্লেট [এখানে](https://github.com/github/gitignore) পাওয়া যাবে।
|
|
|
|
#### কমিট মেসেজ
|
|
|
|
একটি চমৎকার Git কমিট সাবজেক্ট লাইন নিম্নলিখিত বাক্যটি সম্পূর্ণ করে:
|
|
যদি প্রয়োগ করা হয়, এই কমিটটি <আপনার সাবজেক্ট লাইন এখানে>
|
|
|
|
সাবজেক্টে ব্যবহার করুন ইম্পেরেটিভ, বর্তমান কাল: "change" নয় "changed" বা "changes"।
|
|
সাবজেক্টের মতো, বডিতেও (ঐচ্ছিক) ইম্পেরেটিভ, বর্তমান কাল ব্যবহার করুন। বডিতে পরিবর্তনের উদ্দেশ্য এবং পূর্ববর্তী আচরণের সাথে এর পার্থক্য অন্তর্ভুক্ত করুন। আপনি `কেন` ব্যাখ্যা করছেন, `কীভাবে` নয়।
|
|
|
|
✅ কয়েক মিনিট সময় নিয়ে GitHub-এ ঘুরে দেখুন। আপনি কি একটি সত্যিই চমৎকার কমিট মেসেজ খুঁজে পেতে পারেন? আপনি কি একটি খুবই সংক্ষিপ্ত মেসেজ খুঁজে পেতে পারেন? আপনার মতে কমিট মেসেজে কোন তথ্য সবচেয়ে গুরুত্বপূর্ণ এবং উপকারী?
|
|
|
|
### কাজ: সহযোগিতা করুন
|
|
|
|
GitHub-এ জিনিসগুলো রাখার প্রধান কারণ হলো অন্য ডেভেলপারদের সাথে সহযোগিতা করা সম্ভব করা।
|
|
|
|
## অন্যদের সাথে প্রকল্পে কাজ করা
|
|
|
|
> ভিডিও দেখুন
|
|
>
|
|
> [](https://www.youtube.com/watch?v=bFCM-PC3cu8)
|
|
|
|
আপনার রিপোজিটরিতে, `Insights > Community`-এ যান এবং দেখুন আপনার প্রকল্পটি প্রস্তাবিত কমিউনিটি স্ট্যান্ডার্ডগুলোর সাথে কেমন তুলনা করে।
|
|
|
|
আপনার GitHub রিপো উন্নত করতে পারে এমন কিছু বিষয়:
|
|
- **বর্ণনা**। আপনি কি আপনার প্রকল্পের জন্য একটি বর্ণনা যোগ করেছেন?
|
|
- **README**। আপনি কি একটি README যোগ করেছেন? GitHub একটি [README](https://docs.github.com/articles/about-readmes/?WT.mc_id=academic-77807-sagibbon) লেখার জন্য নির্দেশনা প্রদান করে।
|
|
- **অবদান রাখার নির্দেশিকা**। আপনার প্রকল্পে কি [অবদান রাখার নির্দেশিকা](https://docs.github.com/articles/setting-guidelines-for-repository-contributors/?WT.mc_id=academic-77807-sagibbon) আছে?
|
|
- **কোড অফ কন্ডাক্ট**। একটি [কোড অফ কন্ডাক্ট](https://docs.github.com/articles/adding-a-code-of-conduct-to-your-project/) আছে?
|
|
- **লাইসেন্স**। সম্ভবত সবচেয়ে গুরুত্বপূর্ণ, একটি [লাইসেন্স](https://docs.github.com/articles/adding-a-license-to-a-repository/) আছে?
|
|
|
|
এই সমস্ত রিসোর্স নতুন টিম সদস্যদের অনবোর্ডিংয়ে উপকার করবে। এবং এগুলো সাধারণত নতুন অবদানকারীরা আপনার কোড দেখার আগে দেখে, যাতে তারা বুঝতে পারে আপনার প্রকল্প তাদের সময় ব্যয় করার জন্য সঠিক জায়গা কিনা।
|
|
|
|
✅ README ফাইলগুলো, যদিও প্রস্তুত করতে সময় লাগে, ব্যস্ত মেইনটেইনাররা প্রায়ই এগুলো উপেক্ষা করেন। আপনি কি একটি বিশেষভাবে বর্ণনামূলক README-এর উদাহরণ খুঁজে পেতে পারেন? নোট: [ভালো README তৈরি করতে সাহায্যকারী টুল](https://www.makeareadme.com/) আছে যা আপনি চেষ্টা করতে পারেন।
|
|
|
|
### কাজ: কিছু কোড মার্জ করুন
|
|
|
|
অবদান রাখার ডকুমেন্টগুলো মানুষকে প্রকল্পে অবদান রাখতে সাহায্য করে। এটি ব্যাখ্যা করে আপনি কী ধরনের অবদান খুঁজছেন এবং প্রক্রিয়াটি কীভাবে কাজ করে। অবদানকারীদের GitHub-এ আপনার রিপোতে অবদান রাখতে একটি সিরিজ ধাপ অনুসরণ করতে হবে:
|
|
|
|
1. **আপনার রিপো ফর্ক করা**। আপনি সম্ভবত মানুষকে আপনার প্রকল্প _ফর্ক_ করতে চাইবেন। ফর্ক করা মানে তাদের GitHub প্রোফাইলে আপনার রিপোজিটরির একটি প্রতিলিপি তৈরি করা।
|
|
1. **ক্লোন**। সেখান থেকে তারা প্রকল্পটি তাদের লোকাল মেশিনে ক্লোন করবে।
|
|
1. **একটি ব্রাঞ্চ তৈরি করুন**। আপনি তাদের কাজের জন্য একটি _ব্রাঞ্চ_ তৈরি করতে বলতে চাইবেন।
|
|
1. **একটি নির্দিষ্ট এলাকায় পরিবর্তন ফোকাস করুন**। অবদানকারীদের একবারে একটি জিনিসে তাদের অবদান কেন্দ্রীভূত করতে বলুন - এভাবে তাদের কাজ _মার্জ_ করার সম্ভাবনা বেশি। ধরুন তারা একটি বাগ ঠিক করে, একটি নতুন ফিচার যোগ করে, এবং কয়েকটি টেস্ট আপডেট করে - যদি আপনি ৩টির মধ্যে ২টি বা ১টি পরিবর্তন বাস্তবায়ন করতে চান বা পারেন?
|
|
|
|
✅ এমন একটি পরিস্থিতি কল্পনা করুন যেখানে ব্রাঞ্চগুলো ভালো কোড লেখার এবং শিপ করার জন্য বিশেষভাবে গুরুত্বপূর্ণ। আপনি কী কী ব্যবহারিক ক্ষেত্র ভাবতে পারেন?
|
|
|
|
> নোট, আপনি নিজেও আপনার কাজের জন্য ব্রাঞ্চ তৈরি করুন। আপনি যে কোনো কমিট করবেন তা আপনি বর্তমানে যে ব্রাঞ্চে "চেক আউট" করেছেন তাতে করা হবে। `git status` ব্যবহার করে দেখুন আপনি কোন ব্রাঞ্চে আছেন।
|
|
|
|
চলুন একটি অবদানকারীর ওয়ার্কফ্লো নিয়ে আলোচনা করি। ধরে নিন অবদানকারী ইতিমধ্যে রিপো _ফর্ক_ এবং _ক্লোন_ করেছেন, তাই তাদের লোকাল মেশিনে কাজ করার জন্য একটি Git রিপো প্রস্তুত আছে:
|
|
|
|
1. **একটি ব্রাঞ্চ তৈরি করুন**। `git branch` কমান্ড ব্যবহার করে একটি ব্রাঞ্চ তৈরি করুন যা তারা অবদান রাখতে চান এমন পরিবর্তনগুলো ধারণ করবে:
|
|
|
|
```bash
|
|
git branch [branch-name]
|
|
```
|
|
|
|
1. **কাজের ব্রাঞ্চে সুইচ করুন**। নির্দিষ্ট ব্রাঞ্চে সুইচ করুন এবং `git switch` ব্যবহার করে কাজের ডিরেক্টরি আপডেট করুন:
|
|
|
|
```bash
|
|
git switch [branch-name]
|
|
```
|
|
|
|
1. **কাজ করুন**। এই পর্যায়ে আপনি আপনার পরিবর্তন যোগ করতে চান। Git-কে এটি সম্পর্কে জানাতে ভুলবেন না নিম্নলিখিত কমান্ডগুলো ব্যবহার করে:
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "my changes"
|
|
```
|
|
|
|
নিশ্চিত করুন আপনি আপনার কমিটকে একটি ভালো নাম দিয়েছেন, আপনার জন্য এবং সেই রিপোর মেইনটেইনারের জন্যও।
|
|
|
|
1. **আপনার কাজকে `main` ব্রাঞ্চের সাথে একত্রিত করুন**। এক পর্যায়ে আপনি কাজ শেষ করেছেন এবং আপনি আপনার কাজকে `main` ব্রাঞ্চের সাথে একত্রিত করতে চান। `main` ব্রাঞ্চ ইতিমধ্যে পরিবর্তিত হতে পারে, তাই প্রথমে এটি সর্বশেষে আপডেট করুন নিম্নলিখিত কমান্ডগুলো ব্যবহার করে:
|
|
|
|
```bash
|
|
git switch main
|
|
git pull
|
|
```
|
|
|
|
এই পর্যায়ে আপনি নিশ্চিত করতে চান যে কোনো _কনফ্লিক্ট_, যেখানে Git সহজে পরিবর্তনগুলো _একত্রিত_ করতে পারে না, আপনার কাজের ব্রাঞ্চে ঘটে। তাই নিম্নলিখিত কমান্ডগুলো চালান:
|
|
|
|
```bash
|
|
git switch [branch_name]
|
|
git merge main
|
|
```
|
|
|
|
এটি `main` থেকে সব পরিবর্তন আপনার ব্রাঞ্চে নিয়ে আসবে এবং আশা করি আপনি সহজেই চালিয়ে যেতে পারবেন। যদি না পারেন, VS Code আপনাকে জানাবে যেখানে Git _বিভ্রান্ত_ এবং আপনি প্রভাবিত ফাইলগুলো সংশোধন করবেন যাতে সঠিক বিষয়বস্তু থাকে।
|
|
|
|
1. **আপনার কাজ GitHub-এ পাঠান**। আপনার কাজ GitHub-এ পাঠানো মানে দুটি জিনিস। আপনার ব্রাঞ্চকে আপনার রিপোতে পুশ করা এবং তারপর একটি PR, Pull Request খুলুন।
|
|
|
|
```bash
|
|
git push --set-upstream origin [branch-name]
|
|
```
|
|
|
|
উপরের কমান্ডটি আপনার ফর্ক করা রিপোতে ব্রাঞ্চ তৈরি করে।
|
|
|
|
1. **একটি PR খুলুন**। এরপর, আপনি একটি PR খুলতে চান। আপনি এটি করতে পারেন আপনার ফর্ক করা রিপোতে GitHub-এ গিয়ে। GitHub-এ আপনি একটি ইঙ্গিত দেখতে পাবেন যেখানে এটি জিজ্ঞাসা করে আপনি একটি নতুন PR তৈরি করতে চান কিনা, আপনি এটি ক্লিক করবেন এবং একটি ইন্টারফেসে নিয়ে যাওয়া হবে যেখানে আপনি কমিট মেসেজের শিরোনাম পরিবর্তন করতে পারেন, এটি আরও উপযুক্ত বর্ণনা দিতে পারেন। এখন আপনি যে রিপোটি ফর্ক করেছেন তার মেইনটেইনার এই PR দেখবেন এবং _আশা করি_ তারা এটি প্রশংসা করবেন এবং আপনার PR _মার্জ_ করবেন। আপনি এখন একজন অবদানকারী, বাহ :)
|
|
|
|
1. **পরিষ্কার করুন**। একটি PR সফলভাবে মার্জ করার পর পরিষ্কার করা ভালো অভ্যাস হিসেবে বিবেচিত হয়। আপনি আপনার লোকাল ব্রাঞ্চ এবং GitHub-এ পুশ করা ব্রাঞ্চ উভয়ই পরিষ্কার করতে চান। প্রথমে এটি লোকালি মুছুন নিম্নলিখিত কমান্ড ব্যবহার করে:
|
|
|
|
```bash
|
|
git branch -d [branch-name]
|
|
```
|
|
Ensure you go the GitHub page for the forked repo next and remove the remote branch you just pushed to it.
|
|
|
|
`Pull request` শব্দটি কিছুটা মজার শোনায় কারণ প্রকৃতপক্ষে আপনি আপনার পরিবর্তনগুলো প্রকল্পে `push` করতে চান। কিন্তু প্রকল্পের মালিক বা মূল দলকে আপনার পরিবর্তনগুলো বিবেচনা করতে হয় এবং সেগুলো প্রকল্পের "main" branch-এ merge করার আগে সিদ্ধান্ত নিতে হয়। তাই আপনি মূলত একজন maintainer-এর কাছ থেকে পরিবর্তনের অনুমতি চাইছেন।
|
|
|
|
একটি pull request হলো এমন একটি জায়গা যেখানে একটি branch-এ আনা পরিবর্তনগুলো তুলনা এবং আলোচনা করা হয়, যার মধ্যে থাকে review, comment, integrated test এবং আরও অনেক কিছু। একটি ভালো pull request প্রায় commit message-এর মতোই নিয়ম অনুসরণ করে। আপনি issue tracker-এ একটি issue-এর reference যোগ করতে পারেন, যদি আপনার কাজ কোনো issue সমাধান করে। এটি `#` এবং issue নম্বর ব্যবহার করে করা হয়। উদাহরণস্বরূপ, `#97`।
|
|
|
|
🤞আশা করি সব checks পাস করবে এবং প্রকল্পের মালিকরা আপনার পরিবর্তনগুলো প্রকল্পে merge করবেন🤞
|
|
|
|
আপনার বর্তমান local working branch-কে GitHub-এর corresponding remote branch থেকে সব নতুন commit দিয়ে আপডেট করুন:
|
|
|
|
`git pull`
|
|
|
|
## ওপেন সোর্সে কীভাবে অবদান রাখবেন
|
|
|
|
প্রথমে, GitHub-এ একটি repository (বা **repo**) খুঁজুন যা আপনার আগ্রহের এবং যেখানে আপনি একটি পরিবর্তন যোগ করতে চান। আপনি এর বিষয়বস্তু আপনার মেশিনে কপি করতে চাইবেন।
|
|
|
|
✅ 'beginner-friendly' repo খুঁজে পাওয়ার একটি ভালো উপায় হলো [ট্যাগ 'good-first-issue' দিয়ে অনুসন্ধান করা](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/)।
|
|
|
|

|
|
|
|
কোড কপি করার বিভিন্ন উপায় রয়েছে। একটি উপায় হলো repository-এর বিষয়বস্তু "clone" করা, HTTPS, SSH, বা GitHub CLI (Command Line Interface) ব্যবহার করে।
|
|
|
|
আপনার terminal খুলুন এবং repository clone করুন এভাবে:
|
|
`git clone https://github.com/ProjectURL`
|
|
|
|
প্রকল্পে কাজ করতে, সঠিক ফোল্ডারে যান:
|
|
`cd ProjectURL`
|
|
|
|
আপনি [Codespaces](https://github.com/features/codespaces), GitHub-এর embedded code editor / cloud development environment, বা [GitHub Desktop](https://desktop.github.com/) ব্যবহার করে পুরো প্রকল্পটি খুলতে পারেন।
|
|
|
|
অবশেষে, আপনি কোডটি একটি zipped folder-এ ডাউনলোড করতে পারেন।
|
|
|
|
### GitHub সম্পর্কে আরও কিছু আকর্ষণীয় বিষয়
|
|
|
|
আপনি GitHub-এ যেকোনো public repository-কে star, watch এবং/অথবা "fork" করতে পারেন। আপনার starred repositories-গুলো top-right drop-down menu-তে খুঁজে পাবেন। এটি কোডের জন্য bookmarking-এর মতো।
|
|
|
|
প্রকল্পগুলোতে একটি issue tracker থাকে, সাধারণত GitHub-এর "Issues" tab-এ, যদি অন্যথায় উল্লেখ না করা হয়, যেখানে প্রকল্প সম্পর্কিত সমস্যাগুলো নিয়ে আলোচনা করা হয়। এবং Pull Requests tab হলো যেখানে চলমান পরিবর্তনগুলো নিয়ে আলোচনা এবং review করা হয়।
|
|
|
|
প্রকল্পগুলোতে forum, mailing list, বা Slack, Discord বা IRC-এর মতো chat channel-এ আলোচনা থাকতে পারে।
|
|
|
|
✅ আপনার নতুন GitHub repo-তে ঘুরে দেখুন এবং কিছু জিনিস চেষ্টা করুন, যেমন settings সম্পাদনা করা, আপনার repo-তে তথ্য যোগ করা, এবং একটি প্রকল্প তৈরি করা (যেমন Kanban board)। এখানে অনেক কিছু করার আছে!
|
|
|
|
---
|
|
|
|
## 🚀 চ্যালেঞ্জ
|
|
|
|
একজন বন্ধুর সাথে জুটি বাঁধুন এবং একে অপরের কোডে কাজ করুন। একটি প্রকল্প যৌথভাবে তৈরি করুন, কোড fork করুন, branch তৈরি করুন, এবং পরিবর্তনগুলো merge করুন।
|
|
|
|
## Post-Lecture Quiz
|
|
[Post-lecture quiz](https://ff-quizzes.netlify.app/web/quiz/4)
|
|
|
|
## পর্যালোচনা এবং স্ব-অধ্যয়ন
|
|
|
|
[ওপেন সোর্স সফটওয়্যারে অবদান রাখার বিষয়ে আরও পড়ুন](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution)।
|
|
|
|
[Git cheatsheet](https://training.github.com/downloads/github-git-cheat-sheet/)।
|
|
|
|
অনুশীলন, অনুশীলন, অনুশীলন। GitHub-এ [skills.github.com](https://skills.github.com)-এর মাধ্যমে চমৎকার learning paths রয়েছে:
|
|
|
|
- [GitHub-এ প্রথম সপ্তাহ](https://skills.github.com/#first-week-on-github)
|
|
|
|
আপনি আরও উন্নত কোর্সও খুঁজে পাবেন।
|
|
|
|
## Assignment
|
|
|
|
[GitHub-এ প্রথম সপ্তাহ কোর্স](https://skills.github.com/#first-week-on-github) সম্পূর্ণ করুন।
|
|
|
|
**অস্বীকৃতি**:
|
|
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা তার জন্য দায়ী থাকব না। |