Fix GitHub permission error for first-time contribution

- Add Bengali translations for Git configuration and permission error resolution
- Encountered 403 permission denied error when pushing to original repository
- Fixed by changing remote URL to point to personal fork using git remote set-url
- Successfully pushed branch to personal fork
- Documented workflow for proper open source contributions
This commit is contained in:
akilaust
2025-03-20 23:03:31 +06:00
parent 932c6efdec
commit 7fba1c666e
3 changed files with 165 additions and 22 deletions
@@ -0,0 +1,84 @@
# গিট কনফিগারেশন
প্রথমবারের মতো যখন আপনি `commit` করার চেষ্টা করবেন, তখন এই ধরনের বার্তা দেখতে পাবেন:
```bash
$ git commit
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
```
একটি `commit` তৈরি করতে গিটকে জানতে হবে যে এর লেখক কে। সহযোগী কাজের ক্ষেত্রে, প্রকল্পের বিভিন্ন অংশের পরিবর্তন করেছেন কে এবং কবে, তা জানা খুবই গুরুত্বপূর্ণ। তাই গিটে প্রতিটি `commit`-এর সাথে ব্যবহারকারীর নাম এবং ইমেল ঠিকানা সংযুক্ত করা হয়।
এখানে কিছু উপায় আছে যার মাধ্যমে আপনি আপনার ইমেল এবং নাম `git commit` কমান্ডের সাথে যুক্ত করতে পারেন।
### গ্লোবাল কনফিগারেশন
গ্লোবাল কনফিগারেশনে সংরক্ষিত তথ্য সমস্ত গিট রিপোজিটরিতে প্রযোজ্য। এটি হল সবচেয়ে ব্যবহৃত পদ্ধতি।
গ্লোবাল কনফিগারেশনে কিছু সেট করতে, আপনি `config` কমান্ডটি এভাবে ব্যবহার করতে পারেন:
```bash
$ git config --global <variable name> <value>
```
ব্যবহারকারীর তথ্য সেট করার জন্য, এটি এভাবে হবে:
```bash
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
```
### রিপোজিটরি স্তরের কনফিগারেশন
এই ধরনের কনফিগারেশন শুধুমাত্র আপনার বর্তমান রিপোজিটরিতে প্রযোজ্য। যদি আপনি কোনও নির্দিষ্ট রিপোজিটরিতে কাজ করতে চান (উদাহরণস্বরূপ, কোম্পানির প্রকল্পে), তবে এই পদ্ধতি ব্যবহার করতে পারেন।
রিপোজিটরি স্তরের কনফিগারেশন সেট করতে, `--global` বাদ দিয়ে `config` কমান্ডটি ব্যবহার করুন:
```bash
$ git config <variable name> <value>
```
ব্যবহারকারীর তথ্য সেট করার জন্য, এটি এভাবে হবে:
```bash
$ git config user.email "you@alternate.com"
$ git config user.name "Your Name"
```
### কমান্ড লাইনে কনফিগারেশন
এই ধরনের কনফিগারেশন শুধুমাত্র একটি নির্দিষ্ট কমান্ডের জন্য প্রযোজ্য। সব গিট কমান্ডে `-c` ব্যবহার করে আপনি কনফিগারেশন পরামিতি সেট করতে পারেন।
একটি কমান্ডের জন্য কনফিগারেশন পরিবর্তন করতে, গিট কমান্ডটি এভাবে ব্যবহার করুন:
```bash
$ git -c <variable-1>=<value> -c <variable-2>=<value> <command>
```
আমাদের ক্ষেত্রে, `commit` কমান্ডটি এভাবে হবে:
```bash
git -c user.name='Your Name' -c user.email='you@example.com' commit -m "Your commit message"
```
### অগ্রাধিকারের ক্রম
এই তিনটি কনফিগারেশন পদ্ধতির মধ্যে অগ্রাধিকারের ক্রম হল: `কমান্ড লাইন > রিপোজিটরি > গ্লোবাল`। এর মানে হল যদি কোনও পরিবর্তনশীল গ্লোবাল এবং কমান্ড লাইনে উভয় ক্ষেত্রেই সেট করা থাকে, তবে কমান্ড লাইনের মান ব্যবহার করা হবে।
## শুধু ব্যবহারকারীর তথ্য নয়
এখন পর্যন্ত আমরা গিট কনফিগারেশন নিয়ে আলোচনা করেছি শুধু ব্যবহারকারীর তথ্যের ক্ষেত্রে। কিন্তু গিট আরও অনেক পরামিতি কনফিগার করতে দেয়। এখানে কিছু উল্লেখযোগ্য উদাহরণ:
1. `core.editor` - কমিট মেসেজ এডিট করার জন্য ব্যবহৃত টেক্সট এডিটর,
2. `commit.template` - কমিটের জন্য প্রাথমিক টেমপ্লেট ফাইল,
3. `color.ui` - টার্মিনালে গিট মেসেজে রঙিন ফন্ট ব্যবহার করা যাবে কিনা তা নির্ধারণ করে।
আরও বিস্তারিত জানতে [git-scm.com](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration) দেখুন।
@@ -0,0 +1,58 @@
# ওপেন সোর্স অবদানের জন্য Git অনুমতি ত্রুটি সমাধান
## সমস্যা
আমি "first-contributions" রিপোজিটরিতে অবদান রাখার চেষ্টা করার সময় একটি অনুমতি ত্রুটি পেয়েছিলাম। আমি নতুন ব্রাঞ্চ তৈরি করে এবং পরিবর্তনগুলি পুশ করার চেষ্টা করার পর:
```bash
$ git checkout -b fahimar_oss_YYYY
Switched to a new branch 'fahimar_oss_YYYY'
$ git push origin fahimar_oss_YYYY
remote: Permission to firstcontributions/first-contributions.git denied to fahimar.
fatal: unable to access 'https://github.com/firstcontributions/first-contributions.git/': The requested URL returned error: 403
```
সমস্যাটি ছিল যে, আমি মূল রিপোজিটরিটি সরাসরি ক্লোন করেছিলাম এবং সেখানে পুশ করার চেষ্টা করেছিলাম। একজন বাইরের অবদানকারী হিসেবে, আমার মূল রিপোজিটরিতে লেখার অনুমতি নেই।
## সমাধান
আমি নিম্নলিখিত উপায়ে এই সমস্যাটি সমাধান করেছি:
1. আমার রিমোট URL পরিবর্তন করে এটিকে আমার ব্যক্তিগত ফর্কে পয়েন্ট করানো:
```bash
$ git remote set-url origin https://github.com/yourname/first-contributions.git
```
2. রিমোট ঠিকভাবে আপডেট হয়েছে কিনা তা যাচাই করা:
```bash
$ git remote -v
origin https://github.com/yourname/first-contributions.git (fetch)
origin https://github.com/yourname/first-contributions.git (push)
```
3. সফলভাবে আমার ফর্কে পুশ করা:
```bash
$ git push origin fahimar_oss_YYYY
```
4. GitHub আমাকে একটি লিঙ্ক দিয়েছিল যাতে আমি আমার ব্রাঞ্চ থেকে পুল রিকোয়েস্ট তৈরি করতে পারি:
```
remote: Create a pull request for 'fahimar_oss_YYYY' on GitHub by visiting:
remote: https://github.com/fahimar/first-contributions/pull/new/fahimar_oss_YYYY
```
## প্রধান শিক্ষা
ওপেন সোর্স অবদানের জন্য সঠিক কাজের ধারাবাহিকতা হল:
1. মূল রিপোজিটরিটি আপনার GitHub অ্যাকাউন্টে ফর্ক করুন
2. আপনার ফর্কটি স্থানীয়ভাবে ক্লোন করুন
3. একটি নতুন ব্রাঞ্চে পরিবর্তন করুন
4. আপনার ফর্কে পুশ করুন
5. আপনার ফর্ক থেকে মূল রিপোজিটরিতে পুল রিকোয়েস্ট তৈরি করুন
যদি আপনি আগে মূল রিপোজিটরি ক্লোন করে থাকেন এবং আপনার ফর্ক না করে থাকেন, তবে উপরে দেখানো মতো রিমোট URL আপডেট করে এটি ঠিক করতে পারেন।