[](https://github.com/ellerbrock/open-source-badges/)
[
](https://join.slack.com/t/firstcontributors/shared_invite/zt-1hg51qkgm-Xc7HxhsiPYNN3ofX2_I8FA)
[](https://opensource.org/licenses/MIT)
[](https://www.codetriage.com/roshanjossey/first-contributions)
#
مساهمتك الأولى
الصعوبة متوقعة عندما تبدأ بأي عمل جديد، خصوصاً إذا كان العمل يتضمن أشخاص آخرون، مما يجعل الوقوع في الخطأ مزعجًا.
لكن المساهمة في مشاريع مفتوحة المصدر يتطلب ويتوقع الخطأ ولهذا السبب سيساعدك الآخرون في تصحيح هذا الخطأ.
في هذا المشروع هدفنا هو تسهيل الطريق لمساهمتك الأولى.
قراءة ومشاهدة التعليمات المتوفرة على الإنترنت ستساعدك حتماً، لكنك ستستفيد أكثر إذا استطعت المساهمة في مشروع دون الخوف من الوقوع في الخطأ. هذا المشروع يركز على توفير التوجيهات والتعليمات البدائية لإتمام أول مساهمة لك.
تذكر أن الخطأ متوقع والهدف أن تتجاوز الخطأ في هذه البيئة، نريد منك أن تكون مسترخيا ومتابعا الخطوات المتوفرة لإتمام مشاركتك الأولى. نعدك ستستمع بذلك.
## افرق هذا المشروع - Fork this Repository
افرق هذا المشروع بالضغط على زر Fork في أعلى هذه الصفحة.
من خلال ذلك ستنشأ نسخة من هذا المشروع على حسابك الخاص.
## استنسخ هذا المشروع - Clone the repository
استنسخ هذا المشروع على جهازك.
انقر على زر Clone ثم انقر على أيقونة Copy to clipboard
افتح الطرفية وأُكتب الأمر التالي:
```
git clone "url you just copied"
```
قم باستبدال "url you just copied" بالرابط الذي نسخته من الخطوة السابقة، هذا الرابط يحتوي على المشروع.
على سبيل المثال:
```
git clone https://github.com/this-is-you/first-contributions.git
```
في هذا المثال لاحظ 'this-is-you' سيكون اسم حسابك في موقع github يليه رابط المشروع الذي فرقته في أول خطوة، هذا الأمر سينسخ محتويات المشروع على جهازك لتتمكن من التعديل عليه بحرية.
## إنشاء فرع - Create a branch
انتقل إلى المجلد الذي يحتوي على المشروع عن طريق الأمر التالي:
```
cd first-contributions
```
الآن قم بإنشاء فرع عن طريق الأمر التالي:
```
git checkout -b "add-your-name"
```
اسمك بدل add-your-name
على سبيل المثال:
```
git checkout -b "add-alonzo-church"
```
## قم بإجراء التعديلات المطلوبة وأتممها
الآن قم بفتح الملف "Contributors.md" في محرر النصوص المفضل لديك وأضف اسمك ثم احفظ الملف.
بعد ذلك اذهب إلى الطرفية واكتب الأمر هذاgit status هذا الأمر سيظهر لك التغيرات التي حدثت في المشروع.
لإضافة هذه التغييرات قم بإضافتها عن طريق هذا الأمر git add.
```
git add Contributors.md
```
الآن قم بإتمام التغييرات باستخدام الأمر git commit.
```
git commit -m "Add to Contributors list"
```
استبدل <your-name> باسمك.
## ارفع التغييرات إلى github - Push changes to Github
ارفع التغييرات عن طريق الأمر git push
```
git push origin "add-your-name"
```
استبدل <add-your-name> باسم الفرع الذي أنشأته من قبل.
سلم تغيراتك للمراجعة
في صفحة المشروع الخاصة بك يوجد زر Compare & pull request. اضغط على هذا الزر.
والآن سلم طلبك لتتم مراجعته
بعد المراجعة سوف أقوم بدمج تغيرراتك إلى الفرع الرئيس في المشروع. سيتم تنبيهك عن طريق البريد الإلكتروني بذلك.
الفرع الرئيس الخاص بك لن يحتوي على هذه التغيررات. عليك مزامنته مع الفرع الرئيس عن طريق الخطوات التالية.
## مزامنة نسختك مع المشروع الرئيسي
الخطوة الأولى، انتقل إلى الفرع الرئيس.
```
git checkout master
```
ثانياً، أضف رابط مشروعي كـupstream remote url.
```
git remote add upstream https://github.com/Roshanjossey/first-contributions
```
بهذه الطريقة نخبر git أن هناك نسخة أخرى من هذا المشروع في هذا الرابط ونسميها upstream.
بعد أن أوافق على تغيرراتك، قم بسحب النسخة الجديدة من المشروع عن طريق الأمر التالي:
```
git fetch upstream
```
هنا سنقوم بسحب جميع التغييرات من (upstream remote). والآن، عليك أن تدمج التحديثات الجديدة من فرعي إلى فرعك الرئيس.
```
git rebase upstream/master
```
وهنا تطبق التغييرات إلى الفرع الرئيس. إذا رفعت التغييرات لفرعك الرئيس سيتم تحديث مشروعك
```
git push origin master
```
لاحظ أنك ترفع إلى remote اسمه origin.
## توجيهات بإستخدام أدوات أخرى
|
|
|
|
|
|
|
| --- | --- | --- | --- | --- | --- |
| [GitHub Desktop](../gui-tool-tutorials/github-desktop-tutorial.md) | [Visual Studio 2017](../gui-tool-tutorials/github-windows-vs2017-tutorial.md) | [GitKraken](../gui-tool-tutorials/gitkraken-tutorial.md) | [Visual Studio Code](../gui-tool-tutorials/github-windows-vs-code-tutorial.md) | [Atlassian Sourcetree](../gui-tool-tutorials/sourcetree-macos-tutorial.md) | [IntelliJ IDEA](../gui-tool-tutorials/github-windows-intellij-tutorial.md) |