fix: converted single to triple backticks7 (#36234)

This commit is contained in:
Randell Dawson
2019-06-20 14:45:11 -07:00
committed by Tom
parent 19a601f135
commit ab2523953b
75 changed files with 1397 additions and 1177 deletions

View File

@ -12,12 +12,13 @@ localeTitle: فليكس الملكية
الاختلافات الممكنة في بناء الجملة المذكورة أدناه. `flex-grow` `flex-shrink` يأخذ عدد صحيح كقيمة. `flex-basis` يأخذ وحدات حجم منتظم مثل px ، em ، rem… الخ. الاختلافات الممكنة في بناء الجملة المذكورة أدناه. `flex-grow` `flex-shrink` يأخذ عدد صحيح كقيمة. `flex-basis` يأخذ وحدات حجم منتظم مثل px ، em ، rem… الخ.
`flex: <flex-grow> <flex-shrink> <flex-basis>; ```css
flex: <flex-basis>; flex: <flex-grow> <flex-shrink> <flex-basis>;
flex: <flex-grow>; flex: <flex-basis>;
flex: <flex-grow> <flex-basis>; flex: <flex-grow>;
flex: <flex-grow> <flex-shrink>; flex: <flex-grow> <flex-basis>;
` flex: <flex-grow> <flex-shrink>;
```
تحدد `flex-basis` حجم العنصر على طول المحور الرئيسي. داخل الحاوية ، يتم تعريف المحور الرئيسي `flex-direction` . المحور الرئيسي هو الأفقي عندما يكون `flex-direction` هو `row` . عمودي عندما يكون `flex-direction` هو `column` . تحدد `flex-basis` حجم العنصر على طول المحور الرئيسي. داخل الحاوية ، يتم تعريف المحور الرئيسي `flex-direction` . المحور الرئيسي هو الأفقي عندما يكون `flex-direction` هو `row` . عمودي عندما يكون `flex-direction` هو `column` .

View File

@ -6,14 +6,15 @@ localeTitle: تعويم الملكية
تسمح الخاصية `float` لعنصر يطفو إلى يمين أو يمين عنصر آخر. الاستخدام الأساسي `float` هو الحصول على صورة على يسار أو يمين كتلة النص. تسمح الخاصية `float` لعنصر يطفو إلى يمين أو يمين عنصر آخر. الاستخدام الأساسي `float` هو الحصول على صورة على يسار أو يمين كتلة النص.
`.my-element { ```css
.my-element {
float: left; float: left;
float: right; float: right;
float: inline-start; float: inline-start;
float: inline-end; float: inline-end;
float: none; float: none;
} }
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -10,36 +10,39 @@ localeTitle: الخط الأسرة الملكية
لتغيير خط جزء من النص ، اكتب محدد النص المحدد وزوج من الأقواس المتعرجة. داخل الأقواس ، اكتب `font-family:` ثم اسم الخط. إذا كان اسم الخط يحتوي على أكثر من كلمة واحدة ، فستحتاج إلى استخدام علامتي اقتباس مفردتين أو مزدوجتين. خلاف ذلك ، ليست هناك حاجة لأسعار. لتغيير خط جزء من النص ، اكتب محدد النص المحدد وزوج من الأقواس المتعرجة. داخل الأقواس ، اكتب `font-family:` ثم اسم الخط. إذا كان اسم الخط يحتوي على أكثر من كلمة واحدة ، فستحتاج إلى استخدام علامتي اقتباس مفردتين أو مزدوجتين. خلاف ذلك ، ليست هناك حاجة لأسعار.
` ```html
<p>This font will be in Times New Roman.</p> <p>This font will be in Times New Roman.</p>
` ```
`p { ```css
p {
font-family: 'Times New Roman'; font-family: 'Times New Roman';
} }
` ```
لكن العديد من الأشخاص المختلفين الذين لديهم أجهزة كمبيوتر مختلفة يتصفحون الويب على مستوى العالم. هذا يعني أنه لن يكون لدى الجميع New Times Roman مثبتًا في أجهزة الكمبيوتر الخاصة بهم. لمساعدة هؤلاء المستخدمين ، يجب عليك إضافة الخطوط الاحتياطية. الخطوط الاحتياطية هي خطوط أخرى يستخدمها المتصفح في حالة عدم توفر الخط الأول. إضافة فاصلة بعد الخط الأول ، وأضف اسم الخط الاحتياطي الأول. يمكنك استخدام أكثر من خط احتياطي واحد. لكن العديد من الأشخاص المختلفين الذين لديهم أجهزة كمبيوتر مختلفة يتصفحون الويب على مستوى العالم. هذا يعني أنه لن يكون لدى الجميع New Times Roman مثبتًا في أجهزة الكمبيوتر الخاصة بهم. لمساعدة هؤلاء المستخدمين ، يجب عليك إضافة الخطوط الاحتياطية. الخطوط الاحتياطية هي خطوط أخرى يستخدمها المتصفح في حالة عدم توفر الخط الأول. إضافة فاصلة بعد الخط الأول ، وأضف اسم الخط الاحتياطي الأول. يمكنك استخدام أكثر من خط احتياطي واحد.
` ```html
<p>This font may or may not be in Lato.</p> <p>This font may or may not be in Lato.</p>
` ```
`p { ```css
p {
font-family: Lato, Helvetica, Georgia; font-family: Lato, Helvetica, Georgia;
/* Helvetica and Georgia are fallback fonts */ /* Helvetica and Georgia are fallback fonts */
} }
` ```
إذا لم يكن المستخدم مثبتًا على Lato أولاً ، فسيحاول المتصفح استخدام Helvetica. إذا لم يكن لدى المستخدم أيضًا Helvetica ، فسيحاول المتصفح استخدام جورجيا. إذا لم يكن لدى المستخدم جورجيا ، فسيستخدم المتصفح خطًا مثبتًا على جهاز الكمبيوتر الخاص بالمستخدم. إذا لم يكن المستخدم مثبتًا على Lato أولاً ، فسيحاول المتصفح استخدام Helvetica. إذا لم يكن لدى المستخدم أيضًا Helvetica ، فسيحاول المتصفح استخدام جورجيا. إذا لم يكن لدى المستخدم جورجيا ، فسيستخدم المتصفح خطًا مثبتًا على جهاز الكمبيوتر الخاص بالمستخدم.
بالنسبة إلى الخطوط الاحتياطية ، يمكنك استخدام الخطوط المسماة مثل جورجيا. يمكنك أيضًا استخدام أنواع عامة مثل "sans-serif" و "serif" و "monospace" وغيرها. خطوط Sans-serif ، مثل Lato ، هي خطوط بدون خطوط صغيرة في نهايات الحروف والأرقام. تستخدم خطوط Serif ، مثل Times New Roman ، خطوطًا صغيرة في نهايات الحروف والأرقام. تحتوي خطوط Monospace ، مثل Consolas ، على أحرف وأرقام متساوية العرض. بالنسبة إلى الخطوط الاحتياطية ، يمكنك استخدام الخطوط المسماة مثل جورجيا. يمكنك أيضًا استخدام أنواع عامة مثل "sans-serif" و "serif" و "monospace" وغيرها. خطوط Sans-serif ، مثل Lato ، هي خطوط بدون خطوط صغيرة في نهايات الحروف والأرقام. تستخدم خطوط Serif ، مثل Times New Roman ، خطوطًا صغيرة في نهايات الحروف والأرقام. تحتوي خطوط Monospace ، مثل Consolas ، على أحرف وأرقام متساوية العرض.
` ```html
<p>This font may or may not be in Lato.</p> <p>This font may or may not be in Lato.</p>
` ```
`p { ```css
p {
font-family: Lato, sans-serif, monospace; font-family: Lato, sans-serif, monospace;
} }
` ```

View File

@ -8,8 +8,9 @@ localeTitle: حجم الخط الممتلكات
يتم استخدام الخاصية `font-size` لتعيين حجم خط العنصر. يوجد أدناه بناء الجملة الافتراضي لهذه الخاصية. يتم استخدام الخاصية `font-size` لتعيين حجم خط العنصر. يوجد أدناه بناء الجملة الافتراضي لهذه الخاصية.
`font-size:medium|xx-small|x-small|small|large|x-large|xx-large|smaller|larger|length|initial|inherit; ```css
` font-size:medium|xx-small|x-small|small|large|x-large|xx-large|smaller|larger|length|initial|inherit;
```
كما هو موضح أعلاه ، يمكن أن تأخذ هذه الخاصية عدة قيم. القيمة الافتراضية هي _متوسطة الحجم_ والقيم من _xx-small_ إلى _xx-large_ تحدد حجم الخط من صغير جدًا إلى كبير جدًا (مثل أحجام الملابس). تحدد القيم _الأصغر_ _والأكبر_ حجم الخط إلى أصغر من حجم خط العنصر الأصلي وأكبر من حجم خط العنصر الأصلي ، على التوالي. على الرغم من توافر القيم المذكورة ، فإن أكثر أنواع القيم المستخدمة شيوعًا هو وحدة الطول. قد تتضمن وحدات الطول: **px** و **٪** و **em** و **rem** و **pt** . كما هو موضح أعلاه ، يمكن أن تأخذ هذه الخاصية عدة قيم. القيمة الافتراضية هي _متوسطة الحجم_ والقيم من _xx-small_ إلى _xx-large_ تحدد حجم الخط من صغير جدًا إلى كبير جدًا (مثل أحجام الملابس). تحدد القيم _الأصغر_ _والأكبر_ حجم الخط إلى أصغر من حجم خط العنصر الأصلي وأكبر من حجم خط العنصر الأصلي ، على التوالي. على الرغم من توافر القيم المذكورة ، فإن أكثر أنواع القيم المستخدمة شيوعًا هو وحدة الطول. قد تتضمن وحدات الطول: **px** و **٪** و **em** و **rem** و **pt** .
@ -21,10 +22,11 @@ localeTitle: حجم الخط الممتلكات
**مثال:** **مثال:**
`p { ```css
p {
font-size: 20px; font-size: 20px;
} }
` ```
**نتيجة:** ![مثال واحد](https://image.prntscr.com/image/TI_29z3FRO20dJD2Dc7JJA.png) **نتيجة:** ![مثال واحد](https://image.prntscr.com/image/TI_29z3FRO20dJD2Dc7JJA.png)
@ -34,10 +36,11 @@ localeTitle: حجم الخط الممتلكات
**مثال:** **مثال:**
`p { ```css
p {
font-size: 120%; font-size: 120%;
} }
` ```
**نتيجة:** ![المثال الثاني](https://image.prntscr.com/image/P9HTpWbETeyjZhxzf9z-SA.png) يغيّر الرمز أعلاه حجم الخط إلى 120٪ من حجم الخط الافتراضي وهو 16 بكسل. **نتيجة:** ![المثال الثاني](https://image.prntscr.com/image/P9HTpWbETeyjZhxzf9z-SA.png) يغيّر الرمز أعلاه حجم الخط إلى 120٪ من حجم الخط الافتراضي وهو 16 بكسل.
@ -47,10 +50,11 @@ localeTitle: حجم الخط الممتلكات
**مثال:** **مثال:**
`p { ```css
p {
font-size: 1.4em; font-size: 1.4em;
} }
` ```
**نتيجة:** ![المثال الثالث](https://image.prntscr.com/image/AeCJ0TCbRHqOTAFJ9CYNUQ.png) يعيّن الرمز أعلاه حجم الخط في الفقرة إلى 1.4 مرة حجم الخط من أقرب أصل وهو العنصر الأساسي. يحتوي عنصر النص على حجم خط افتراضي يبلغ 16 بكسل ، لذا سيكون لهذه الفقرة حجم خط يبلغ 1.4 \* 16 = 22.4 بكسل. **نتيجة:** ![المثال الثالث](https://image.prntscr.com/image/AeCJ0TCbRHqOTAFJ9CYNUQ.png) يعيّن الرمز أعلاه حجم الخط في الفقرة إلى 1.4 مرة حجم الخط من أقرب أصل وهو العنصر الأساسي. يحتوي عنصر النص على حجم خط افتراضي يبلغ 16 بكسل ، لذا سيكون لهذه الفقرة حجم خط يبلغ 1.4 \* 16 = 22.4 بكسل.
@ -76,10 +80,11 @@ localeTitle: حجم الخط الممتلكات
**مثال:** **مثال:**
`p { ```css
p {
font-size: 16pt; font-size: 16pt;
} }
` ```
**نتيجة:** ![المثال الخامس](https://image.prntscr.com/image/IyOOr_WCT963wa0DoWyoOg.png) حجم الخط أعلاه هو 16 نقطة. **نتيجة:** ![المثال الخامس](https://image.prntscr.com/image/IyOOr_WCT963wa0DoWyoOg.png) حجم الخط أعلاه هو 16 نقطة.

View File

@ -6,10 +6,11 @@ localeTitle: الخط البديل
يتم استخدام خاصية متغير الخط الأكثر شيوعًا لتغيير النص المستهدف إلى أحرف استهلالية صغيرة. القيمة الافتراضية أمر `normal` . يتم استخدام خاصية متغير الخط الأكثر شيوعًا لتغيير النص المستهدف إلى أحرف استهلالية صغيرة. القيمة الافتراضية أمر `normal` .
`p { ```css
p {
font-variant: small-caps; font-variant: small-caps;
} }
` ```
يقبل مكان الإقامة أيضًا `all-small-caps` `petite-caps` `all-petite-caps` `titling-caps` و `unicase` . ومع ذلك ، فهي جديدة في CSS3 ولم يتم دعمها بشكل جيد بعد. يقبل مكان الإقامة أيضًا `all-small-caps` `petite-caps` `all-petite-caps` `titling-caps` و `unicase` . ومع ذلك ، فهي جديدة في CSS3 ولم يتم دعمها بشكل جيد بعد.

View File

@ -6,16 +6,17 @@ localeTitle: خاصية تباعد الأحرف
تقوم خاصية تباعد الحروف بتعديل المسافة بين كل الحروف في كتلة النص. ويشار إليه أيضًا باسم "التعقب" في شروط الطباعة وفي البرامج ذات خيارات إعداد النوع المتقدمة. يقبل الموقع قيم طول `px` و `em` ، بما في ذلك القيم السالبة. تقوم خاصية تباعد الحروف بتعديل المسافة بين كل الحروف في كتلة النص. ويشار إليه أيضًا باسم "التعقب" في شروط الطباعة وفي البرامج ذات خيارات إعداد النوع المتقدمة. يقبل الموقع قيم طول `px` و `em` ، بما في ذلك القيم السالبة.
`.first-example { ```css
.first-example {
letter-spacing: 3px; letter-spacing: 3px;
} }
.second-example { .second-example {
letter-spacing: -1px; letter-spacing: -1px;
} }
.third-example { .third-example {
letter-spacing: 0.5em; letter-spacing: 0.5em;
} }
` ```
![نتيجة CSS](https://github.com/kaithrendyle/guide-photos/blob/master/letter-spacing.png) ![نتيجة CSS](https://github.com/kaithrendyle/guide-photos/blob/master/letter-spacing.png)

View File

@ -8,24 +8,25 @@ localeTitle: خاصية تحويل النص
أكثر القيم استخدامًا لهذه الخاصية هي `lowercase` `uppercase` `capitalize` . أكثر القيم استخدامًا لهذه الخاصية هي `lowercase` `uppercase` `capitalize` .
`<style> ```
.lowercased { <style>
.lowercased {
text-transform: lowercase; text-transform: lowercase;
} }
.uppercased { .uppercased {
text-transform: uppercase; text-transform: uppercase;
} }
.capitalized { .capitalized {
text-transform: capitalize; text-transform: capitalize;
} }
</style> </style>
<p class="uppercased">this text was lowercase.</p> <!-- = THIS TEXT WAS LOWERCASE. --> <p class="uppercased">this text was lowercase.</p> <!-- = THIS TEXT WAS LOWERCASE. -->
<p class="lowercased">THIS TEXT WAS UPPERCASE.</p> <!-- = this text was uppercase. --> <p class="lowercased">THIS TEXT WAS UPPERCASE.</p> <!-- = this text was uppercase. -->
<p class="capitalized">this text wasn't capitalized.</p> <!-- = This Text Wasn't Capitalized. --> <p class="capitalized">this text wasn't capitalized.</p> <!-- = This Text Wasn't Capitalized. -->
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -12,10 +12,11 @@ localeTitle: الملكية الفضائية البيضاء
#### مثال #### مثال
`p { ```
p {
white-space: nowrap; white-space: nowrap;
} }
` ```
#### القيم #### القيم

View File

@ -12,11 +12,12 @@ z-index: auto | number | initial | inherit؛
#### مثال #### مثال
`div { ```
div {
position: absolute; position: absolute;
z-index: -1; z-index: -1;
} }
` ```
#### القيم #### القيم

View File

@ -10,19 +10,20 @@ localeTitle: صف دراسي
خلافا لأسماء فئة "معرف" CSS ليست فريدة. لذلك ، لا بأس من استخدام "class" عدة مرات إذا كنت ترغب في أن يكون لهذه العناصر نفس النمط المطبق. في الواقع ، سيكون هذا وقتًا رائعًا لاستخدام "الفئة". إذا كنت ترغب في وجود ثلاثة عناصر "div" في HTML لديك خلفية زرقاء ، يمكنك استخدام فئة مرة واحدة في CSS كما يظهر في المثال أدناه. خلافا لأسماء فئة "معرف" CSS ليست فريدة. لذلك ، لا بأس من استخدام "class" عدة مرات إذا كنت ترغب في أن يكون لهذه العناصر نفس النمط المطبق. في الواقع ، سيكون هذا وقتًا رائعًا لاستخدام "الفئة". إذا كنت ترغب في وجود ثلاثة عناصر "div" في HTML لديك خلفية زرقاء ، يمكنك استخدام فئة مرة واحدة في CSS كما يظهر في المثال أدناه.
`<html> ```
<style> <html>
<style>
.blueBg { .blueBg {
background-color: blue; background-color: blue;
} }
</style> </style>
<body> <body>
<div class="blueBg"></div> <div class="blueBg"></div>
<div class="blueBg"></div> <div class="blueBg"></div>
<div class="blueBg"></div> <div class="blueBg"></div>
</body> </body>
</html> </html>
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -10,7 +10,8 @@ localeTitle: علامة الدولار تساوي
إذا كنت تريد البحث في جميع روابط الربط بنوع الملف .pdf وجعلها حمراء ، فيمكنك القيام بذلك على النحو التالي: إذا كنت تريد البحث في جميع روابط الربط بنوع الملف .pdf وجعلها حمراء ، فيمكنك القيام بذلك على النحو التالي:
`a[href$=".pdf"] { ```css
a[href$=".pdf"] {
color: red; color: red;
} }
` ```

View File

@ -10,7 +10,8 @@ localeTitle: نجمة
إذا كنت تريد البحث في جميع روابط الربط التي تحتوي على "رمز" في أي مكان في قيمة عنوان URL وجعلها صفراء ، فيمكنك إجراء ذلك على النحو التالي: إذا كنت تريد البحث في جميع روابط الربط التي تحتوي على "رمز" في أي مكان في قيمة عنوان URL وجعلها صفراء ، فيمكنك إجراء ذلك على النحو التالي:
`a[href*="code"] { ```css
a[href*="code"] {
color: yellow; color: yellow;
} }
` ```

View File

@ -8,17 +8,19 @@ localeTitle: طفل
في ما يلي مثال على البنية: في ما يلي مثال على البنية:
`first selector (parent) > second selector (child) { ```css
first selector (parent) > second selector (child) {
css declarations; css declarations;
} }
` ```
في ما يلي مثال الكود الذي يطابق كل عنصر `span` الفوري مع أصل `div` : في ما يلي مثال الكود الذي يطابق كل عنصر `span` الفوري مع أصل `div` :
`div > span { ```css
div > span {
background-color: red; background-color: red;
} }
` ```
### معلومات اكثر: ### معلومات اكثر:

View File

@ -8,24 +8,27 @@ localeTitle: نوع
#### كود النحو #### كود النحو
`* { ```css
* {
css declarations; css declarations;
} }
` ```
#### مثال الكود #### مثال الكود
`h1 { ```css
h1 {
background-color: red; background-color: red;
} }
` ```
يختار كل عنصر h1 وتعيين لون الخلفية باللون الأحمر. يختار كل عنصر h1 وتعيين لون الخلفية باللون الأحمر.
`div { ```css
div {
width: 100px; width: 100px;
} }
` ```
يختار كل عنصر div وعرض عنصر العرض 100 بكسل. يختار كل عنصر div وعرض عنصر العرض 100 بكسل.

View File

@ -8,35 +8,40 @@ localeTitle: عالمي
### كود النحو ### كود النحو
`* { ```css
* {
css declarations; css declarations;
} }
` ```
`element * { ```css
element * {
css declarations; css declarations;
} }
` ```
#### مثال الكود #### مثال الكود
يطابق هذا المحدد جميع العناصر ويضبط لون الخط كمؤشر أخضر. يطابق هذا المحدد جميع العناصر ويضبط لون الخط كمؤشر أخضر.
`* { ```css
* {
color: green; color: green;
} }
` ```
يحدد هذا المحدد جميع عناصر div ويضبط لون الخط كملف أخضر. يحدد هذا المحدد جميع عناصر div ويضبط لون الخط كملف أخضر.
`div * { ```css
div * {
color: green; color: green;
} }
` ```
يحدد هذا المحدد جميع العناصر التي تبدأ قيمة سمة اللغة الخاصة بها بـ en. يحدد هذا المحدد جميع العناصر التي تبدأ قيمة سمة اللغة الخاصة بها بـ en.
`* [lang^=en] { ```css
* [lang^=en] {
color: green; color: green;
} }
` ```

View File

@ -10,16 +10,17 @@ localeTitle: محددات
ستتراكم المحضرات مرتبة في تسلسل محدد لقاعدة لاستهداف العناصر. مثال، ستتراكم المحضرات مرتبة في تسلسل محدد لقاعدة لاستهداف العناصر. مثال،
`/* selects anchor tags */ ```css
a { /* selects anchor tags */
a {
color: orange; color: orange;
} }
/* selects elements with hero class */ /* selects elements with hero class */
.hero { .hero {
text-align: center; text-align: center;
} }
` ```
## نوع من المحددات ## نوع من المحددات

View File

@ -10,14 +10,15 @@ localeTitle: نشيط
في المثال أدناه ، عندما ينقر مستخدم على رابط ، سيتغير لون النص من الأسود إلى الأحمر إلى أن يتوقف إجراء النقر. في المثال أدناه ، عندما ينقر مستخدم على رابط ، سيتغير لون النص من الأسود إلى الأحمر إلى أن يتوقف إجراء النقر.
`a { ```css
a {
color: black; color: black;
} }
a:active { a:active {
color: red; color: red;
} }
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -33,25 +33,27 @@ localeTitle: التركيز
بناء الجملة: بناء الجملة:
`:focus ```css
` :focus
```
## مثال ## مثال
HTML: HTML:
` ```html
<form> <form>
<input type="text" value="The background will turn yellow when you click on it."> <input type="text" value="The background will turn yellow when you click on it.">
</form> </form>
` ```
CSS: CSS:
`input:focus { ```css
input:focus {
background-color: yellow; background-color: yellow;
} }
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -19,69 +19,69 @@ The `selector:hover` يتم تشغيل فئة pseudo-class عند التفاعل
1. عندما تقوم بتحريك مؤشر الماوس فوق عنصر ما ، قم بتغيير الأخوة المجاورة. 1. عندما تقوم بتحريك مؤشر الماوس فوق عنصر ما ، قم بتغيير الأخوة المجاورة.
` ```html
<style> <style>
.first:hover + .second { .first:hover + .second {
background-color: blue; background-color: blue;
} }
</style> </style>
<div class="first">First</div> <div class="first">First</div>
<div class="second">Second</div> <div class="second">Second</div>
` ```
سيعمل الرمز أعلاه على تغيير لون خلفية `.second` إلى blue عند تحريك مؤشر الماوس فوق `.first` . سيعمل الرمز أعلاه على تغيير لون خلفية `.second` إلى blue عند تحريك مؤشر الماوس فوق `.first` .
2. عندما تقوم بتحريك مؤشر الماوس فوق عنصر ما ، قم بتغيير الأخوة العامة. 2. عندما تقوم بتحريك مؤشر الماوس فوق عنصر ما ، قم بتغيير الأخوة العامة.
` ```html
<style> <style>
.first:hover ~ .second { .first:hover ~ .second {
background-color: blue; background-color: blue;
} }
</style> </style>
<div class="first">First</div> <div class="first">First</div>
<div class="middle">Middle</div> <div class="middle">Middle</div>
<div class="second">Second</div> <div class="second">Second</div>
` ```
يعطي هذا المثال مرونة أكثر قليلاً حيث لم يعد من الضروري أن يكون العنصران متجاورين مباشرة. يعطي هذا المثال مرونة أكثر قليلاً حيث لم يعد من الضروري أن يكون العنصران متجاورين مباشرة.
3. عندما تقوم بتحريك مؤشر الماوس فوق عنصر ما ، قم بتغيير سليل مباشر. 3. عندما تقوم بتحريك مؤشر الماوس فوق عنصر ما ، قم بتغيير سليل مباشر.
` ```html
<style> <style>
.first:hover > .second { .first:hover > .second {
background-color: blue; background-color: blue;
} }
</style> </style>
<div class="first"> <div class="first">
First First
<div class="second">Second</div> <div class="second">Second</div>
</div> </div>
` ```
سيعمل الرمز أعلاه على تغيير لون خلفية `.second` إلى blue عند تحريك مؤشر الماوس فوق `.first` . سيعمل الرمز أعلاه على تغيير لون خلفية `.second` إلى blue عند تحريك مؤشر الماوس فوق `.first` .
4. عندما تقوم بتحريك مؤشر الماوس فوق عنصر ، قم بتغيير سلال عام. 4. عندما تقوم بتحريك مؤشر الماوس فوق عنصر ، قم بتغيير سلال عام.
` ```html
<style> <style>
.first:hover .second { .first:hover .second {
background-color: blue; background-color: blue;
} }
</style> </style>
<div class="first"> <div class="first">
First First
<div class="container"> <div class="container">
Container Container
<div class="second">Second</div> <div class="second">Second</div>
</div> </div>
</div> </div>
` ```
وكما في المثال 2 ، فإن هذا يمنح المزيد من المرونة حيث أن العنصرين لم يعد من الضروري أن يكونا متجاورين مباشرة. ستلاحظ أن المساحة التي يمكن `.first` أكبر في الأمثلة 3 و 4. يحدث هذا لأنك لا تزال تحوم فوق `.first` ما دام المؤشر فوق أحد أطفاله. وكما في المثال 2 ، فإن هذا يمنح المزيد من المرونة حيث أن العنصرين لم يعد من الضروري أن يكونا متجاورين مباشرة. ستلاحظ أن المساحة التي يمكن `.first` أكبر في الأمثلة 3 و 4. يحدث هذا لأنك لا تزال تحوم فوق `.first` ما دام المؤشر فوق أحد أطفاله.

View File

@ -8,16 +8,18 @@ localeTitle: حلقة الوصل
بناء الجملة العام: بناء الجملة العام:
`target:link ```css
` target:link
```
## مثال ## مثال
`/* Selects any <a> that has not been visited yet */ ```css
a:link { /* Selects any <a> that has not been visited yet */
a:link {
color: red; color: red;
} }
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -6,38 +6,41 @@ localeTitle: هيكل CSS
تتبع قاعدة CSS هذا الهيكل الأساسي: تتبع قاعدة CSS هذا الهيكل الأساسي:
`selector { ```CSS
selector {
property: value; property: value;
property: value; property: value;
} }
` ```
كل شيء داخل الأقواس المتعرجة يتناسب مع كل ما يختاره [المختار](https://guide.freecodecamp.org/css/selectors) . يوجد داخل قواعد CSS مجموعة من أزواج [الخصائص](https://guide.freecodecamp.org/css/properties) / القيمة. كل شيء داخل الأقواس المتعرجة يتناسب مع كل ما يختاره [المختار](https://guide.freecodecamp.org/css/selectors) . يوجد داخل قواعد CSS مجموعة من أزواج [الخصائص](https://guide.freecodecamp.org/css/properties) / القيمة.
يمكن أن يكون لديك محددات مختلفة مفصولة بغيبوبة: يمكن أن يكون لديك محددات مختلفة مفصولة بغيبوبة:
`selector1, ```CSS
selector2 { selector1,
selector2 {
property: value; property: value;
} }
` ```
يمكن وضع قواعد CSS متعددة في ملف CSS واحد - إليك مثال على ذلك: يمكن وضع قواعد CSS متعددة في ملف CSS واحد - إليك مثال على ذلك:
`h1 { ```CSS
h1 {
color: red; color: red;
} }
div { div {
text-align: center; text-align: center;
color: blue; color: blue;
} }
img { img {
margin-left: 2px; margin-left: 2px;
margin-top: 100px; margin-top: 100px;
} }
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -6,10 +6,11 @@ localeTitle: روابط التصميم
يمكن تنسيق الارتباطات مع أي خاصية CSS ، مثل `color` ، `font-family` ، و `font-size` ، و `padding` . هنا مثال سهل: يمكن تنسيق الارتباطات مع أي خاصية CSS ، مثل `color` ، `font-family` ، و `font-size` ، و `padding` . هنا مثال سهل:
`a { ```css
a {
color: hotpink; color: hotpink;
} }
` ```
## بالإضافة إلى ذلك ، يمكن تنسيق الوصلات بشكل مختلف اعتمادًا على الحالة التي توجد فيها. ## بالإضافة إلى ذلك ، يمكن تنسيق الوصلات بشكل مختلف اعتمادًا على الحالة التي توجد فيها.
@ -40,11 +41,12 @@ localeTitle: روابط التصميم
إليك بعض نماذج CSS باستخدام الحالات الأربع: إليك بعض نماذج CSS باستخدام الحالات الأربع:
`a:link { color: red; } ```css
a:visited { color: blue; } a:link { color: red; }
a:hover { color: green; } a:visited { color: blue; }
a:active { color: blue; } a:hover { color: green; }
` a:active { color: blue; }
```
**لاحظ** أن هناك بعض _قواعد الترتيب_ عندما تقوم بتعيين نمط حالات الارتباط. **لاحظ** أن هناك بعض _قواعد الترتيب_ عندما تقوم بتعيين نمط حالات الارتباط.
@ -55,23 +57,24 @@ localeTitle: روابط التصميم
a: رابط - رابط طبيعي غير مرغوب فيه a: زار - رابط زاره المستخدم a: hover - رابط عندما يضغط المستخدم عليه ج: نشط - رابط لحظة النقر فوقه a: رابط - رابط طبيعي غير مرغوب فيه a: زار - رابط زاره المستخدم a: hover - رابط عندما يضغط المستخدم عليه ج: نشط - رابط لحظة النقر فوقه
`/* unvisited link */ ```css
a:link { /* unvisited link */
a:link {
color: red; color: red;
} }
/* visited link */ /* visited link */
a:visited { a:visited {
color: green; color: green;
} }
/* mouse over link */ /* mouse over link */
a:hover { a:hover {
color: hotpink; color: hotpink;
} }
/* selected link */ /* selected link */
a:active { a:active {
color: blue; color: blue;
} }
` ```

View File

@ -37,9 +37,10 @@ localeTitle: ظل النص
المغلق text-shadow: 1px - 2px 5px # a4a4a4؛ المغلق text-shadow: 1px - 2px 5px # a4a4a4؛
`### Example of multiple shadows ```
Multiple shadows can be used for giving text a solid outline on all 4 directions, like a bubble-writing effect. ### Example of multiple shadows
` Multiple shadows can be used for giving text a solid outline on all 4 directions, like a bubble-writing effect.
```
المغلق ظل نص: 1 بكسل × 1 بكسل أسود ، 0 1 بكسل × 1 بكسل أسود ، 1 بكسل × 1 بكسل أسود ، 0 - 1 بكسل × 1 بكسل أسود ؛ \`\` \` المغلق ظل نص: 1 بكسل × 1 بكسل أسود ، 0 1 بكسل × 1 بكسل أسود ، 1 بكسل × 1 بكسل أسود ، 0 - 1 بكسل × 1 بكسل أسود ؛ \`\` \`

View File

@ -6,17 +6,19 @@ localeTitle: انتقال
و `transition` الملكية يسمح لك بتغيير قيمة العقارات بشكل سلس (من قيمة واحدة إلى أخرى)، خلال مدة معينة. \`\` \`المغلق الانتقال: كل 300ms. و `transition` الملكية يسمح لك بتغيير قيمة العقارات بشكل سلس (من قيمة واحدة إلى أخرى)، خلال مدة معينة. \`\` \`المغلق الانتقال: كل 300ms.
`### Transition on Several Property Values ```
### Transition on Several Property Values
You can change multiples property values with transition property. You can change multiples property values with transition property.
` ```
المغلق الانتقال: عرض 300ms ، ارتفاع 2s ؛ المغلق الانتقال: عرض 300ms ، ارتفاع 2s ؛
`### Specify the Speed Curve of the Transition ```
### Specify the Speed Curve of the Transition
You can specify a speed curve on an element in transition property. You can specify a speed curve on an element in transition property.
` ```
المغلق الانتقال: ارتفاع 2s خطي؛ المغلق الانتقال: ارتفاع 2s خطي؛

View File

@ -14,13 +14,13 @@ localeTitle: دليل لمتخصصي الصف واختياري
لنفترض أن لديك 5 عناصر في شفرة HTML. لنفترض أن لديك 5 عناصر في شفرة HTML.
` ```html
<p> First paragraph </p> <p> First paragraph </p>
<p> Second paragraph </p> <p> Second paragraph </p>
<p> Third paragraph </p> <p> Third paragraph </p>
<p> Fourth paragraph </p> <p> Fourth paragraph </p>
<p> Fifth paragraph </p> <p> Fifth paragraph </p>
` ```
يمكنك إعطاء كل منهم لون خط أحمر باستخدام CSS. يمكنك إعطاء كل منهم لون خط أحمر باستخدام CSS.
@ -43,12 +43,12 @@ _فئة وهوية للانقاذ_
هكذا تعمل `class` . يمكنك إعطاء مجموعة من العناصر فئة وستكون في نادٍ واحد. تماما مثل قاعدة جديدة في النادي يجب أن يتبعها جميع أعضاء النادي ، وبالمثل ، يتم تطبيق جميع قواعد نمط جديد على عناصر في نفس النادي. هكذا تعمل `class` . يمكنك إعطاء مجموعة من العناصر فئة وستكون في نادٍ واحد. تماما مثل قاعدة جديدة في النادي يجب أن يتبعها جميع أعضاء النادي ، وبالمثل ، يتم تطبيق جميع قواعد نمط جديد على عناصر في نفس النادي.
` ```html
<p class="bike"> Hayabusa </p> <p class="bike"> Hayabusa </p>
<p class="car"> Chevrolet </p> <p class="car"> Chevrolet </p>
<p class="bike"> Hayley-Davidson </p> <p class="bike"> Hayley-Davidson </p>
<p class="car"> Lamborghini </p> <p class="car"> Lamborghini </p>
` ```
هنا لدينا 4 فقرات. إذا نظرت إلى أسماء الفصل ، فهناك "ناديان". الآن يمكننا اختيار النادي (أو المجموعة) التي نريدها وتطبيق الأنماط التي نريدها عليهم. هنا لدينا 4 فقرات. إذا نظرت إلى أسماء الفصل ، فهناك "ناديان". الآن يمكننا اختيار النادي (أو المجموعة) التي نريدها وتطبيق الأنماط التي نريدها عليهم.
@ -67,15 +67,15 @@ _فئة وهوية للانقاذ_
هذا هو معرف. تماما مثل بطاقات الهوية الشخصية ، يمكن أن يكون عنصر HTML واحد فقط `id` معين. لا عناصر لهما نفس `id` . هذا هو معرف. تماما مثل بطاقات الهوية الشخصية ، يمكن أن يكون عنصر HTML واحد فقط `id` معين. لا عناصر لهما نفس `id` .
` ```html
<p id="car"> Ferrari </p> <p id="car"> Ferrari </p>
<p id="car"> Ford </p> <p id="car"> Ford </p>
<!-- This is incorrect--> <!-- This is incorrect-->
<p id="harley"> Harley-Davidson </p> <p id="harley"> Harley-Davidson </p>
<p id="hayabusa"> Hayabusa </p> <p id="hayabusa"> Hayabusa </p>
<!--This is correct since an id is only used once.--> <!--This is correct since an id is only used once.-->
` ```
يمكن أن يكون `id` أيضًا مشابهًا للمفتاح الخاص لخزانة الخزانة في النادي. كل شخص في النادي لديه نفس بطاقة الهوية الخاصة بالنادي ، لكن مفتاح خزانة كل شخص مختلف وفريد. يمكن أن يكون `id` أيضًا مشابهًا للمفتاح الخاص لخزانة الخزانة في النادي. كل شخص في النادي لديه نفس بطاقة الهوية الخاصة بالنادي ، لكن مفتاح خزانة كل شخص مختلف وفريد.

View File

@ -8,14 +8,15 @@ localeTitle: CSS المختارات الغش ورقة
هنا مثال على استخدام المحددات. في التعليمة البرمجية التالية ، تكون `a` و `h1` محددات: هنا مثال على استخدام المحددات. في التعليمة البرمجية التالية ، تكون `a` و `h1` محددات:
`a { ```css
a {
color: black; color: black;
} }
h1 { h1 {
font-size 24px; font-size 24px;
} }
` ```
## قائمة الغش من المحددات ## قائمة الغش من المحددات

View File

@ -12,37 +12,41 @@ localeTitle: مقدمة في CSS
تسمح CSS لمعلمات بتوضيح كيفية ظهور كل جزء من محتوى المطابقة. تسمح CSS لمعلمات بتوضيح كيفية ظهور كل جزء من محتوى المطابقة.
`body { ```CSS
body {
font-size: 15px; font-size: 15px;
} }
a { a {
color: rebeccapurple; color: rebeccapurple;
text-decoration: underline; text-decoration: underline;
} }
` ```
### استخدام المغلق ### استخدام المغلق
تسمح **أوراق الأنماط الخارجية** لصفحات كثيرة بمشاركة نفس الأنماط. تسمح **أوراق الأنماط الخارجية** لصفحات كثيرة بمشاركة نفس الأنماط.
`<link href="styles.css" rel="stylesheet" type="text/css"> ```HTML
` <link href="styles.css" rel="stylesheet" type="text/css">
```
تطبق **أوراق الأنماط الداخلية** CSS على كل العلامات المطابقة في الصفحة. تطبق **أوراق الأنماط الداخلية** CSS على كل العلامات المطابقة في الصفحة.
`<style> ```HTML
<style>
h1 { h1 {
font-family: sans-serif; font-family: sans-serif;
margin-bottom: 1.5em; margin-bottom: 1.5em;
} }
</style> </style>
` ```
تطبق **CSS مضمنة** الأنماط على علامة واحدة. تطبق **CSS مضمنة** الأنماط على علامة واحدة.
`<img src="..." style="border: 1px solid red;" /> ```HTML
` <img src="..." style="border: 1px solid red;" />
```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -58,15 +58,15 @@ localeTitle: وحدات
مثال مثال
` ```html
p { p {
font-size: 24px; font-size: 24px;
} }
div { div {
width: 3in; width: 3in;
border-width: 3pt; border-width: 3pt;
} }
` ```
ستظهر `font-size: 24px` بكسل على أنها 24 بكسل على الهاتف أو الجهاز اللوحي أو شاشة سطح المكتب. ستظهر `font-size: 24px` بكسل على أنها 24 بكسل على الهاتف أو الجهاز اللوحي أو شاشة سطح المكتب.

View File

@ -21,11 +21,11 @@ localeTitle: استخدام الرسوم المتحركة CSS
في جزء HTML ، سيكون لدينا مستند `div` مع `container` للفئة و `h3` مع النص `Hello World` : في جزء HTML ، سيكون لدينا مستند `div` مع `container` للفئة و `h3` مع النص `Hello World` :
` ```html
<div class="container"> <div class="container">
<h3> Hello World ! </h3> <h3> Hello World ! </h3>
</div> </div>
` ```
بالنسبة لجزء CSS: بالنسبة لجزء CSS:

View File

@ -8,10 +8,11 @@ localeTitle: عمودي محاذاة CSS
على سبيل المثال ، يمكنك أن تكون `vertical-align` مثل هذه لمحاذاة صورة: على سبيل المثال ، يمكنك أن تكون `vertical-align` مثل هذه لمحاذاة صورة:
`img { ```
img {
vertical-align: top; vertical-align: top;
} }
` ```
هذه هي القيم الصالحة `vertical-align` : هذه هي القيم الصالحة `vertical-align` :

View File

@ -24,10 +24,11 @@ localeTitle: خطوط الويب الآمنة
تجدر الإشارة إلى أنه يجب استخدام مداخلات الخط مع خيارات الاحتياطي بما في ذلك عائلة الخطوط العامة حتى إذا كان التصميم الخاص بك يستخدم الخطوط الآمنة للويب فقط. فمثلا: تجدر الإشارة إلى أنه يجب استخدام مداخلات الخط مع خيارات الاحتياطي بما في ذلك عائلة الخطوط العامة حتى إذا كان التصميم الخاص بك يستخدم الخطوط الآمنة للويب فقط. فمثلا:
`p { ```css
p {
font-family: Tahoma, Arial, sans-serif; font-family: Tahoma, Arial, sans-serif;
} }
` ```
#### ملاحظة على خطوط الويب #### ملاحظة على خطوط الويب

View File

@ -6,10 +6,11 @@ localeTitle: سوف يتغير
تسمح لك خاصية will-change بإخبار المتصفح عن التلاعبات التي ستحدث مع العنصر من أجل تحسينها. تسمح لك خاصية will-change بإخبار المتصفح عن التلاعبات التي ستحدث مع العنصر من أجل تحسينها.
`.container { ```css
will-change: transform; .container {
} will-change: transform;
` }
```
سيتم استخدام خاصية will-change في الفئة `.container` ، في هذه الحالة ، قد يحدث أو لا يحدث التحويل على العنصر. سيتم استخدام خاصية will-change في الفئة `.container` ، في هذه الحالة ، قد يحدث أو لا يحدث التحويل على العنصر.

View File

@ -10,20 +10,21 @@ Z Index ( `z-index` ) هي خاصية CSS تقوم بتعريف ترتيب عن
#### القيم الممكنة #### القيم الممكنة
`/* Default value if not specified */ ```css
z-index: auto; /* Default value if not specified */
z-index: auto;
/* Integer values */ /* Integer values */
z-index: 1; z-index: 1;
z-index: 100; z-index: 100;
z-index: 9999; z-index: 9999;
z-index: -1; z-index: -1;
/* Global values */ /* Global values */
z-index: inherit; z-index: inherit;
z-index: initial; z-index: initial;
z-index: unset; z-index: unset;
` ```
#### مثال للاستخدام #### مثال للاستخدام
@ -31,28 +32,29 @@ Z Index ( `z-index` ) هي خاصية CSS تقوم بتعريف ترتيب عن
_HTML_ _HTML_
` ```html
<div class="container"> <div class="container">
<div class="box" id="blue"></div> <div class="box" id="blue"></div>
<div class="box" id="red"></div> <div class="box" id="red"></div>
<div class="box" id="green"></div> <div class="box" id="green"></div>
</div> </div>
` ```
_CSS_ _CSS_
`#blue { ```css
#blue {
background-color: blue; background-color: blue;
} }
#red { #red {
background-color: red; background-color: red;
} }
#green { #green {
background-color: green; background-color: green;
} }
` ```
بما أنه لم يتم تعريف `z-index` ، فستكون له قيمة افتراضية من `auto` . هذه نتيجة: بما أنه لم يتم تعريف `z-index` ، فستكون له قيمة افتراضية من `auto` . هذه نتيجة:
@ -60,21 +62,22 @@ _CSS_
حاول تغيير الترتيب إلى الأخضر والأزرق والأحمر في CSS باستخدام `z-index` . حاول تغيير الترتيب إلى الأخضر والأزرق والأحمر في CSS باستخدام `z-index` .
`#blue { ```css
#blue {
background-color: blue; background-color: blue;
z-index: 2; z-index: 2;
} }
#red { #red {
background-color: red; background-color: red;
z-index: 1; z-index: 1;
} }
#green { #green {
background-color: green; background-color: green;
z-index: 3; z-index: 3;
} }
` ```
ستكون النتيجة الخاصة بك: ستكون النتيجة الخاصة بك:
@ -82,10 +85,11 @@ _CSS_
استخدم Z Index إذا كنت بحاجة إلى وضع عنصر خلفية أسفل الحاوية. يمكنك وضع الخلفية بسهولة تحت كل عنصر عن طريق إعطائها مؤشر Z سلبي مثل أدناه: استخدم Z Index إذا كنت بحاجة إلى وضع عنصر خلفية أسفل الحاوية. يمكنك وضع الخلفية بسهولة تحت كل عنصر عن طريق إعطائها مؤشر Z سلبي مثل أدناه:
`#background { ```css
#background {
z-index: -1; z-index: -1;
} }
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -8,16 +8,16 @@ localeTitle: إعداد D3
ابدأ بصفحة HTML الأساسية على الويب: ابدأ بصفحة HTML الأساسية على الويب:
` ```html
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
</head> </head>
<body> <body>
<p>Hello!</p> <p>Hello!</p>
</body> </body>
</html> </html>
` ```
الذي يظهر في المتصفح: الذي يظهر في المتصفح:

View File

@ -14,10 +14,11 @@ Apache Flink هو إطار مفتوح المصدر لتجهيز التدفق م
* جافا 7 أو 8 * جافا 7 أو 8
* IntelliJ IDEA أو Eclipse IDE * IntelliJ IDEA أو Eclipse IDE
`git clone https://github.com/apache/flink.git ```
cd flink git clone https://github.com/apache/flink.git
mvn clean package -DskipTests # this will take up to 10 minutes cd flink
` mvn clean package -DskipTests # this will take up to 10 minutes
```
### قواعد البيانات ### قواعد البيانات
@ -33,18 +34,19 @@ Apache Flink هو إطار مفتوح المصدر لتجهيز التدفق م
أول شيء سنقوم به هو إنشاء بيئة التنفيذ وتحميل ملفات csv في مجموعة بيانات. مثله: أول شيء سنقوم به هو إنشاء بيئة التنفيذ وتحميل ملفات csv في مجموعة بيانات. مثله:
`ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); ```
DataSet<Tuple3<Long, String, String>> movies = env.readCsvFile("ml-latest-small/movies.csv") ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
DataSet<Tuple3<Long, String, String>> movies = env.readCsvFile("ml-latest-small/movies.csv")
.ignoreFirstLine() .ignoreFirstLine()
.parseQuotedStrings('"') .parseQuotedStrings('"')
.ignoreInvalidLines() .ignoreInvalidLines()
.types(Long.class, String.class, String.class); .types(Long.class, String.class, String.class);
DataSet<Tuple2<Long, Double>> ratings = env.readCsvFile("ml-latest-small/ratings.csv") DataSet<Tuple2<Long, Double>> ratings = env.readCsvFile("ml-latest-small/ratings.csv")
.ignoreFirstLine() .ignoreFirstLine()
.includeFields(false, true, true, false) .includeFields(false, true, true, false)
.types(Long.class, Double.class); .types(Long.class, Double.class);
` ```
هناك ، نحن نجعل مجموعة البيانات مع للأفلام ، وتجاهل الأخطاء ، والاقتباسات ، وخط الرأس ، ومجموعة البيانات مع بالنسبة إلى تقييمات الأفلام ، مع تجاهل أيضًا الرأس ، والخطوط والعروض غير الصالحة. هناك ، نحن نجعل مجموعة البيانات مع للأفلام ، وتجاهل الأخطاء ، والاقتباسات ، وخط الرأس ، ومجموعة البيانات مع بالنسبة إلى تقييمات الأفلام ، مع تجاهل أيضًا الرأس ، والخطوط والعروض غير الصالحة.
@ -54,7 +56,8 @@ Apache Flink هو إطار مفتوح المصدر لتجهيز التدفق م
أولاً سننضم إلى مجموعة بيانات التصنيفات مع مجموعة بيانات الأفلام حسب الأفلام الموجودة في كل مجموعة بيانات. مع هذا سنقوم بإنشاء Tuple جديد مع اسم الفيلم والنوع والنتيجة. في وقت لاحق ، نقوم بتجميع هذه المجموعة حسب النوع وإضافة مجموع كل الأنواع المتساوية ، وأخيرا نقسم النتيجة على مجموع النتائج ولدينا النتيجة المرجوة. أولاً سننضم إلى مجموعة بيانات التصنيفات مع مجموعة بيانات الأفلام حسب الأفلام الموجودة في كل مجموعة بيانات. مع هذا سنقوم بإنشاء Tuple جديد مع اسم الفيلم والنوع والنتيجة. في وقت لاحق ، نقوم بتجميع هذه المجموعة حسب النوع وإضافة مجموع كل الأنواع المتساوية ، وأخيرا نقسم النتيجة على مجموع النتائج ولدينا النتيجة المرجوة.
`List<Tuple2<String, Double>> distribution = movies.join(ratings) ```
List<Tuple2<String, Double>> distribution = movies.join(ratings)
.where(0) .where(0)
.equalTo(0) .equalTo(0)
.with(new JoinFunction<Tuple3<Long, String, String>,Tuple2<Long, Double>, Tuple3<StringValue, StringValue, DoubleValue>>() { .with(new JoinFunction<Tuple3<Long, String, String>,Tuple2<Long, Double>, Tuple3<StringValue, StringValue, DoubleValue>>() {
@ -70,7 +73,7 @@ Apache Flink هو إطار مفتوح المصدر لتجهيز التدفق م
score.setValue(rating.f1); score.setValue(rating.f1);
return result; return result;
} }
}) })
.groupBy(1) .groupBy(1)
.reduceGroup(new GroupReduceFunction<Tuple3<StringValue,StringValue,DoubleValue>, Tuple2<String, Double>>() { .reduceGroup(new GroupReduceFunction<Tuple3<StringValue,StringValue,DoubleValue>, Tuple2<String, Double>>() {
@Override @Override
@ -86,8 +89,8 @@ Apache Flink هو إطار مفتوح المصدر لتجهيز التدفق م
collector.collect(new Tuple2<>(genre.getValue(), totalScore/count)); collector.collect(new Tuple2<>(genre.getValue(), totalScore/count));
} }
}) })
.collect(); .collect();
` ```
مع هذا سيكون لديك تطبيق حرفة معالجة دفعة واحدة. استمتع!. مع هذا سيكون لديك تطبيق حرفة معالجة دفعة واحدة. استمتع!.

View File

@ -45,10 +45,11 @@ Apache Flink هو إطار مفتوح المصدر لتجهيز التدفق م
* مي Mن (نوصي بالإصدار 3.0.4) * مي Mن (نوصي بالإصدار 3.0.4)
* جافا 7 أو 8 * جافا 7 أو 8
`git clone https://github.com/apache/flink.git ```
cd flink git clone https://github.com/apache/flink.git
mvn clean package -DskipTests # this will take up to 10 minutes cd flink
` mvn clean package -DskipTests # this will take up to 10 minutes
```
## تطوير فلينك ## تطوير فلينك

View File

@ -12,8 +12,9 @@ localeTitle: الباندا
هو اصطلاح يستخدم على نطاق واسع لاستيراد مكتبة الباندا باستخدام الاسم المستعار `pd` : هو اصطلاح يستخدم على نطاق واسع لاستيراد مكتبة الباندا باستخدام الاسم المستعار `pd` :
`import pandas as pd ```python
` import pandas as pd
```
## إطارات البيانات ## إطارات البيانات
@ -27,8 +28,9 @@ localeTitle: الباندا
ملف `.csv` هو ملف _قيمة مفصولة بفواصل_ . طريقة شائعة جدا لتخزين البيانات. لتحميل هذه البيانات في إطار بيانات `read_csv` ، استخدم الطريقة `read_csv` : ملف `.csv` هو ملف _قيمة مفصولة بفواصل_ . طريقة شائعة جدا لتخزين البيانات. لتحميل هذه البيانات في إطار بيانات `read_csv` ، استخدم الطريقة `read_csv` :
`df = pd.read_csv(file_path) ```python
` df = pd.read_csv(file_path)
```
هنا ، يمكن أن يكون `file_path` مسارًا محليًا لملف csv على جهاز الكمبيوتر الخاص بك ، أو عنوان url يشير إلى واحد. قد يتم تضمين أسماء الأعمدة في ملف csv ، أو قد يتم تمريرها كوسيطة. لمزيد من المعلومات حول هذا ، وأكثر من ذلك بكثير ، ألق نظرة على [الوثائق](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html?highlight=read_csv#pandas.read_csv) . هنا ، يمكن أن يكون `file_path` مسارًا محليًا لملف csv على جهاز الكمبيوتر الخاص بك ، أو عنوان url يشير إلى واحد. قد يتم تضمين أسماء الأعمدة في ملف csv ، أو قد يتم تمريرها كوسيطة. لمزيد من المعلومات حول هذا ، وأكثر من ذلك بكثير ، ألق نظرة على [الوثائق](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html?highlight=read_csv#pandas.read_csv) .
@ -36,22 +38,25 @@ localeTitle: الباندا
لإظهار الصفوف القليلة الأولى من إطار البيانات ، تكون طريقة `head` مفيدة (مرة أخرى يجب أن يبدو هذا مألوفًا لمبرمجي R): لإظهار الصفوف القليلة الأولى من إطار البيانات ، تكون طريقة `head` مفيدة (مرة أخرى يجب أن يبدو هذا مألوفًا لمبرمجي R):
`df.head() ```python
` df.head()
```
سيظهر هذا الصفوف الخمسة الأولى من إطار البيانات. سيظهر هذا الصفوف الخمسة الأولى من إطار البيانات.
لعرض أكثر من أول 5 صفوف ، قم ببساطة بوضع عدد الصفوف التي تريد طباعتها داخل طريقة `head` . لعرض أكثر من أول 5 صفوف ، قم ببساطة بوضع عدد الصفوف التي تريد طباعتها داخل طريقة `head` .
`df.head(10) ```python
` df.head(10)
```
سيظهر هذا أول 10 صفوف من إطار البيانات. سيظهر هذا أول 10 صفوف من إطار البيانات.
لإظهار الصفوف القليلة الأخيرة من إطار البيانات ، تكون طريقة `tail` مفيدة (مرة أخرى يجب أن يبدو هذا مألوفًا لمبرمجي R): لإظهار الصفوف القليلة الأخيرة من إطار البيانات ، تكون طريقة `tail` مفيدة (مرة أخرى يجب أن يبدو هذا مألوفًا لمبرمجي R):
`df.tail() ```python
` df.tail()
```
سيظهر هذا آخر 5 صفوف من إطار البيانات. سيظهر هذا آخر 5 صفوف من إطار البيانات.
@ -59,8 +64,9 @@ localeTitle: الباندا
يمكن أن يكون إطار البيانات جزئيًا بعدة طرق. واحد من أبسط هو الحصول على عمود واحد. على سبيل المثال ، إذا كان إطار البيانات `df` يحتوي على عمود اسمه `age` ، فيمكننا استخلاصه كما يلي: يمكن أن يكون إطار البيانات جزئيًا بعدة طرق. واحد من أبسط هو الحصول على عمود واحد. على سبيل المثال ، إذا كان إطار البيانات `df` يحتوي على عمود اسمه `age` ، فيمكننا استخلاصه كما يلي:
`ages=df["age"] ```python
` ages=df["age"]
```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -34,10 +34,11 @@ Docker هو برنامج مفتوح المصدر يهدف إلى تسهيل نش
بمجرد تثبيت حاول هذا بمجرد تثبيت حاول هذا
`$ docker run hello-world ```
$ docker run hello-world
Hello from Docker! Hello from Docker!
` ```
تظهر هذه الرسالة أن التثبيت الخاص بك يبدو أنه يعمل بشكل صحيح. تظهر هذه الرسالة أن التثبيت الخاص بك يبدو أنه يعمل بشكل صحيح.

View File

@ -32,7 +32,8 @@ localeTitle: أرض
#### package.json #### package.json
`{ ```json
{
"name": "project-name", "name": "project-name",
"version": "0.1.0", "version": "0.1.0",
"devDependencies": { "devDependencies": {
@ -44,8 +45,8 @@ localeTitle: أرض
"grunt-contrib-uglify": "latest", "grunt-contrib-uglify": "latest",
"grunt-contrib-imagemin": "latest", "grunt-contrib-imagemin": "latest",
} }
} }
` ```
#### Gruntfile.js #### Gruntfile.js

View File

@ -23,32 +23,35 @@ localeTitle: بلع
لبدء استخدام `Gulp` ، فإن الخطوة الأولى هي تثبيته باستخدام `npm` . بعد تثبيته ، يجب إنشاء ملف `gulpfile.js` . ملف `gulpfile` هذا هو ملف يحتوي على جميع مهام `Gulp` التي يجب تشغيلها كجزء من العملية التلقائية. تتم كتابة المهام في JavaScript. في ما يلي مثال بسيط جدًا `gulpfile` ، والذي يأخذ أي ملفات `CSS` من مجلد `client/templates` ، ويقللها ويضع الملف المُصغر في المجلد `build/css` . لبدء استخدام `Gulp` ، فإن الخطوة الأولى هي تثبيته باستخدام `npm` . بعد تثبيته ، يجب إنشاء ملف `gulpfile.js` . ملف `gulpfile` هذا هو ملف يحتوي على جميع مهام `Gulp` التي يجب تشغيلها كجزء من العملية التلقائية. تتم كتابة المهام في JavaScript. في ما يلي مثال بسيط جدًا `gulpfile` ، والذي يأخذ أي ملفات `CSS` من مجلد `client/templates` ، ويقللها ويضع الملف المُصغر في المجلد `build/css` .
`var gulp = require('gulp'); ```javascript
var minifyCSS = require('gulp-csso'); var gulp = require('gulp');
var minifyCSS = require('gulp-csso');
gulp.task('css', function(){ gulp.task('css', function(){
return gulp.src('client/templates/*.css') return gulp.src('client/templates/*.css')
.pipe(minifyCSS()) .pipe(minifyCSS())
.pipe(gulp.dest('build/css')) .pipe(gulp.dest('build/css'))
}); });
` ```
لتشغيل مهمة gulp هذه ، كل ما عليك فعله هو كتابة `gulp css` في مطراف في جذر مشروعك. لتشغيل مهمة gulp هذه ، كل ما عليك فعله هو كتابة `gulp css` في مطراف في جذر مشروعك.
لمشاهدة ملفات CSS لأية تغييرات وتشغيل مهمة "css" بعد حفظها. لمشاهدة ملفات CSS لأية تغييرات وتشغيل مهمة "css" بعد حفظها.
`gulp.watch('css') ```javascript
gulp.watch('css')
.on('change', ['css']); .on('change', ['css']);
` ```
### تبعيات المهام ### تبعيات المهام
افتراضيا سيتم تشغيل جولبول جميع المهام المحددة في نفس الوقت وانتظر شيئا. لتشغيل مهمة متعددة بالترتيب الصحيح ، يمكنك إضافة مهمة كتوابع إلى مهمة أخرى. افتراضيا سيتم تشغيل جولبول جميع المهام المحددة في نفس الوقت وانتظر شيئا. لتشغيل مهمة متعددة بالترتيب الصحيح ، يمكنك إضافة مهمة كتوابع إلى مهمة أخرى.
`gulp.task('two', ['one'], function() { ```javascript
gulp.task('two', ['one'], function() {
// task 'one' is done now // task 'one' is done now
}); });
` ```
مع رمز المقتطف أعلاه، مهمة `two` سيتم تشغيل فقط بعد مهمة `one` اكتمال. مع رمز المقتطف أعلاه، مهمة `two` سيتم تشغيل فقط بعد مهمة `one` اكتمال.

View File

@ -8,59 +8,68 @@ localeTitle: npm ورقة الغش
## تثبيت التبعية `package.json` ## تثبيت التبعية `package.json`
`npm install ```shell
` npm install
```
**اختزال** **اختزال**
`# install ```shell
npm i <package> # install
# uninstall npm i <package>
npm un <package> # uninstall
# update npm un <package>
npm up <package> # update
` npm up <package>
```
## قائمة الحزم المثبتة عالميا. ## قائمة الحزم المثبتة عالميا.
`npm list -g --depth=0 ```shell
` npm list -g --depth=0
```
## إلغاء حزمة عالمية ## إلغاء حزمة عالمية
`npm -g uninstall <name> ```shell
` npm -g uninstall <name>
```
## ترقية NPM على ويندوز ## ترقية NPM على ويندوز
بعد محاولة عدة مرات لترقية npm على Windows وجدت هذا في حين بدس في مجلدات npm. بعد محاولة عدة مرات لترقية npm على Windows وجدت هذا في حين بدس في مجلدات npm.
`npm-windows-upgrade ```shell
` npm-windows-upgrade
```
## تحديث الحزم العالمية ## تحديث الحزم العالمية
لمعرفة الحزم التي تحتاج إلى تحديث ، استخدم: لمعرفة الحزم التي تحتاج إلى تحديث ، استخدم:
`npm outdated -g --depth=0 ```shell
` npm outdated -g --depth=0
```
لتحديث الحزم العالمية بشكل فردي ، يمكنك استخدام: لتحديث الحزم العالمية بشكل فردي ، يمكنك استخدام:
`npm update -g <package> <package> <package> ```shell
` npm update -g <package> <package> <package>
```
## قائمة البرامج النصية المتاحة لتشغيل ## قائمة البرامج النصية المتاحة لتشغيل
`npm run ```shell
` npm run
```
## تحديث npm ## تحديث npm
`npm install -g npm@latest ```shell
# using windows? Then use npm install -g npm@latest
npm-windows-upgrade # using windows? Then use
` npm-windows-upgrade
```
## الأعلام ## الأعلام
@ -68,26 +77,30 @@ localeTitle: npm ورقة الغش
## النسخة المثبتة ## النسخة المثبتة
`npm list # for local packages ```shell
` npm list # for local packages
```
## عقدة مدير الإصدار `nvm` ## عقدة مدير الإصدار `nvm`
لنفترض أنك تريد تثبيت Node v6.9.1 الذي تكتبه على الجهاز: لنفترض أنك تريد تثبيت Node v6.9.1 الذي تكتبه على الجهاز:
`nvm install 6 ```shell
` nvm install 6
```
إذا كان لديك إصدارات متعددة من Node.js مثبتة على مساحة العمل الخاصة بك ، يمكنك التبديل إلى إصدار محدد بالكتابة: إذا كان لديك إصدارات متعددة من Node.js مثبتة على مساحة العمل الخاصة بك ، يمكنك التبديل إلى إصدار محدد بالكتابة:
`nvm use 4.8.4 ```shell
` nvm use 4.8.4
```
### جعل نسخة عقدة الافتراضي. ### جعل نسخة عقدة الافتراضي.
لتعيين إصدار افتراضي من العقدة لمساحة العمل الخاصة بك ، فقط اكتب: لتعيين إصدار افتراضي من العقدة لمساحة العمل الخاصة بك ، فقط اكتب:
`nvm alias default 6 ```shell
` nvm alias default 6
```
حيث كان الإصدار 6 هو الإصدار الذي تريد استخدامه كإعداد افتراضي. حيث كان الإصدار 6 هو الإصدار الذي تريد استخدامه كإعداد افتراضي.

View File

@ -19,20 +19,23 @@ npm مفيد ليس فقط للمشروعات من جانب الخادم. تتو
يستخدم npm عادة من سطر الأوامر. يمكن القول أن الأوامر الواردة أدناه هي الأكثر أهمية للبدء: يستخدم npm عادة من سطر الأوامر. يمكن القول أن الأوامر الواردة أدناه هي الأكثر أهمية للبدء:
`npm init ```
` npm init
```
تشغيل هذا الأمر في الدليل الجذر لمشروعك يهيئه للاستخدام مع npm عن طريق إنشاء ملف `package.json` . ستطالب ل اسم المشروع والوصف واسم المؤلف وأكثر من ذلك. ثم يتم استخدام هذه المعلومات لملء ملف `package.json` ، والتي سوف تعقد أيضا معلومات حول تبعيات المشروع ومتطلباته. يمكنك تغيير هذه المعلومات يدويًا في وقت لاحق. تشغيل هذا الأمر في الدليل الجذر لمشروعك يهيئه للاستخدام مع npm عن طريق إنشاء ملف `package.json` . ستطالب ل اسم المشروع والوصف واسم المؤلف وأكثر من ذلك. ثم يتم استخدام هذه المعلومات لملء ملف `package.json` ، والتي سوف تعقد أيضا معلومات حول تبعيات المشروع ومتطلباته. يمكنك تغيير هذه المعلومات يدويًا في وقت لاحق.
`npm install [name-of-package] ```
` npm install [name-of-package]
```
يقوم هذا بتثبيت حزمة وكل تبعياتها تلقائيًا وحفظها في ملف `package.json` . إذا كنت تقوم بتثبيت تبعية تطوير ، قد ترغب في استخدام `--save-dev` أو `-D` التبديل. سيحفظ npm الحزمة كاعتمادية تطوير. يقوم هذا بتثبيت حزمة وكل تبعياتها تلقائيًا وحفظها في ملف `package.json` . إذا كنت تقوم بتثبيت تبعية تطوير ، قد ترغب في استخدام `--save-dev` أو `-D` التبديل. سيحفظ npm الحزمة كاعتمادية تطوير.
يتم تثبيت الحزم محليًا في الدليل `node_modules` في الدليل الجذر لمشروعك. في بعض الأحيان قد ترغب في الحصول على حزمة متاحة عبر مشاريع مختلفة. يتم ذلك باستخدام مفتاح `--global` أو `-g` . هذا مفيد في كثير من الأحيان لأدوات التطوير والأدوات المساعدة لسطر الأوامر. يتم تثبيت الحزم محليًا في الدليل `node_modules` في الدليل الجذر لمشروعك. في بعض الأحيان قد ترغب في الحصول على حزمة متاحة عبر مشاريع مختلفة. يتم ذلك باستخدام مفتاح `--global` أو `-g` . هذا مفيد في كثير من الأحيان لأدوات التطوير والأدوات المساعدة لسطر الأوامر.
`npm install ```
` npm install
```
تشغيل تثبيت npm في الدليل الجذر للمشروع دون اسم حزمة معينة ، تثبيت كافة التبعيات المطلوبة لهذا المشروع. هؤلاء يكونون محسوبًا وفقًا لملف `package.json` للمشروع. هذا يدل على قوة npm ، حيث يمكن لأمر واحد جلب عشرات أو مئات من تبعية تلقائيا بالنسبة لك ، ومفيد عند `git clone` مستودع ، على سبيل المثال. تشغيل تثبيت npm في الدليل الجذر للمشروع دون اسم حزمة معينة ، تثبيت كافة التبعيات المطلوبة لهذا المشروع. هؤلاء يكونون محسوبًا وفقًا لملف `package.json` للمشروع. هذا يدل على قوة npm ، حيث يمكن لأمر واحد جلب عشرات أو مئات من تبعية تلقائيا بالنسبة لك ، ومفيد عند `git clone` مستودع ، على سبيل المثال.

View File

@ -30,27 +30,30 @@ Vagrant هو أداة لبناء وإدارة بيئات الجهاز الظاه
بعد تثبيت Vagrant ، تحقق من عمل التثبيت عن طريق فتح موجه أوامر أو وحدة تحكم جديدة ، وتحقق من توفر المتشرد: بعد تثبيت Vagrant ، تحقق من عمل التثبيت عن طريق فتح موجه أوامر أو وحدة تحكم جديدة ، وتحقق من توفر المتشرد:
`$ vagrant ```bash
Usage: vagrant [options] <command> [<args>] $ vagrant
Usage: vagrant [options] <command> [<args>]
-v, --version Print the version and exit. -v, --version Print the version and exit.
-h, --help Print this help. -h, --help Print this help.
# ... # ...
` ```
### ابدء ### ابدء
`$ vagrant init hashicorp/precise64 ```bash
$ vagrant up $ vagrant init hashicorp/precise64
` $ vagrant up
```
### مربعات ### مربعات
تتم إضافة صناديق إلى Vagrant مع إضافة مربع المتشرد. يقوم هذا بتخزين المربع تحت اسم محدد بحيث يمكن لبيئات Vagrant المتعددة إعادة استخدامه. إذا لم تكن قد أضفت مربعًا حتى الآن ، فيمكنك القيام بذلك الآن: تتم إضافة صناديق إلى Vagrant مع إضافة مربع المتشرد. يقوم هذا بتخزين المربع تحت اسم محدد بحيث يمكن لبيئات Vagrant المتعددة إعادة استخدامه. إذا لم تكن قد أضفت مربعًا حتى الآن ، فيمكنك القيام بذلك الآن:
`$ vagrant box add hashicorp/precise64 ```bash
` $ vagrant box add hashicorp/precise64
```
### العثور على المزيد من الصناديق ### العثور على المزيد من الصناديق

View File

@ -18,25 +18,28 @@ Yarn هو مدير حزم لرمزك. يسمح لك باستخدام ومشار
**بدء مشروع جديد** **بدء مشروع جديد**
`yarn init ```
` yarn init
```
سيفتح الأمر `yarn init` نموذجًا تفاعليًا لإنشاء مشروع غزل. ينشئ `yarn init` `package.json` ملف `package.json` يخزن المعلومات حول مشروعك. سيتم فتح هذا النموذج التفاعلي بالأسئلة التالية: سيفتح الأمر `yarn init` نموذجًا تفاعليًا لإنشاء مشروع غزل. ينشئ `yarn init` `package.json` ملف `package.json` يخزن المعلومات حول مشروعك. سيتم فتح هذا النموذج التفاعلي بالأسئلة التالية:
`name (your-project): ```
version (1.0.0): name (your-project):
description: version (1.0.0):
entry point (index.js): description:
git repository: entry point (index.js):
author: git repository:
license (MIT): author:
` license (MIT):
```
يمكنك إما كتابة الإجابات لكل خيار أو فقط اضغط على إدخال دون كتابة أي شيء لاستخدام الافتراضي أو ترك فارغ. يمكنك دائمًا الانتقال إلى محرر النصوص المفضل لديك لتغيير ملف `package.json` ، إذا لزم الأمر. يمكنك إما كتابة الإجابات لكل خيار أو فقط اضغط على إدخال دون كتابة أي شيء لاستخدام الافتراضي أو ترك فارغ. يمكنك دائمًا الانتقال إلى محرر النصوص المفضل لديك لتغيير ملف `package.json` ، إذا لزم الأمر.
يجب أن يكون ملف `package.json` الخاص بك مشابهاً لهذا: يجب أن يكون ملف `package.json` الخاص بك مشابهاً لهذا:
`{ ```
{
"name": "your-new-project", "name": "your-new-project",
"version": "1.0.0", "version": "1.0.0",
"description": "A description of your new project.", "description": "A description of your new project.",
@ -47,28 +50,32 @@ Yarn هو مدير حزم لرمزك. يسمح لك باستخدام ومشار
}, },
"author": "Your Name <your_name@example.com>", "author": "Your Name <your_name@example.com>",
"license": "MIT" "license": "MIT"
} }
` ```
**إضافة تبعية** **إضافة تبعية**
`yarn add [package] ```
` yarn add [package]
```
**ترقية التبعية** **ترقية التبعية**
`yarn upgrade [package] ```
` yarn upgrade [package]
```
**إزالة التبعية** **إزالة التبعية**
`yarn remove [package] ```
` yarn remove [package]
```
**تثبيت جميع تبعيات المشروع** **تثبيت جميع تبعيات المشروع**
`yarn install ```
` yarn install
```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -12,24 +12,28 @@ Ansible هو أداة سهلة الاستخدام الآلي. يمكن استخ
تأكد أولاً من أن النظام محدث. تأكد أولاً من أن النظام محدث.
`$ sudo apt-get update ```
$ sudo apt-get upgrade $ sudo apt-get update
` $ sudo apt-get upgrade
```
بعد ذلك ، ستحتاج إلى إضافة الحزمة التالية إلى نظامك بعد ذلك ، ستحتاج إلى إضافة الحزمة التالية إلى نظامك
`$ sudo apt-get install software-properties-common ```
` $ sudo apt-get install software-properties-common
```
أضف ppa: ansible / ansible إلى النظام الخاص بك أضف ppa: ansible / ansible إلى النظام الخاص بك
`$ sudo apt-add-repository ppa:ansible/ansible ```
` $ sudo apt-add-repository ppa:ansible/ansible
```
قم بتحديث repos الخاص بك مرة أخرى قم بتحديث repos الخاص بك مرة أخرى
`$ sudo apt-get update ```
` $ sudo apt-get update
```
عادة ما تكون هناك خطوات قليلة تشارك في نشر التعليمات البرمجية في الإنتاج (إلى الموقع المباشر). يزداد عدد الخطوات كلما أصبح موقعك / تطبيق / Webapp أكبر وأكثر تعقيدًا. عادة ما تكون هناك خطوات قليلة تشارك في نشر التعليمات البرمجية في الإنتاج (إلى الموقع المباشر). يزداد عدد الخطوات كلما أصبح موقعك / تطبيق / Webapp أكبر وأكثر تعقيدًا.
@ -39,20 +43,22 @@ Ansible هي أداة أتمتة ، يتم استخدامها غالبًا لل
تستخدم لغة تسمى [YAML](https://en.wikipedia.org/wiki/YAML) والتي تسمح لك بوصف المؤثرات القريبة من الإنجليزية البسيطة ، كما يمكنك أن ترى في مثال الوحدة النمطية Ansible: تستخدم لغة تسمى [YAML](https://en.wikipedia.org/wiki/YAML) والتي تسمح لك بوصف المؤثرات القريبة من الإنجليزية البسيطة ، كما يمكنك أن ترى في مثال الوحدة النمطية Ansible:
`--- ```YAML
- yum: name={{contact.item}} state=installed ---
with_items: - yum: name={{contact.item}} state=installed
- app_server with_items:
- acme_software - app_server
- acme_software
- service: name=app_server state=running enabled=yes - service: name=app_server state=running enabled=yes
` ```
أخيرا ، قم بتثبيت الحزمة أخيرا ، قم بتثبيت الحزمة
`$ sudo apt-get install ansible ```
` $ sudo apt-get install ansible
```
من المزايا المهمة لاستخدام Ansible هو أنه يستخدم SSH (Secure SHell) بشكل افتراضي ، ويمكن للوحدات أن تقيم على أي جهاز (كمبيوتر) لا يتطلب خوادم أو شواهد أو قواعد بيانات. من المزايا المهمة لاستخدام Ansible هو أنه يستخدم SSH (Secure SHell) بشكل افتراضي ، ويمكن للوحدات أن تقيم على أي جهاز (كمبيوتر) لا يتطلب خوادم أو شواهد أو قواعد بيانات.

View File

@ -35,13 +35,15 @@ _جميع روابط thoses هي ل Docker CE (إصدار المجتمع)_
لاختبار ما إذا كان التطبيق سارًا بشكل جيد ، قم بتشغيل: لاختبار ما إذا كان التطبيق سارًا بشكل جيد ، قم بتشغيل:
`docker --version ```
` docker --version
```
تأكد من أن لديك مخرجات تبدو كالتالي: تأكد من أن لديك مخرجات تبدو كالتالي:
`Docker version 18.06.1-ce, build e68fc7a ```
` Docker version 18.06.1-ce, build e68fc7a
```
* * * * * *
@ -49,18 +51,19 @@ _جميع روابط thoses هي ل Docker CE (إصدار المجتمع)_
اختبار أن التثبيت الخاص بك يعمل عن طريق تشغيل صورة Docker بسيطة ، مرحبا العالم: اختبار أن التثبيت الخاص بك يعمل عن طريق تشغيل صورة Docker بسيطة ، مرحبا العالم:
`docker run hello-world ```
docker run hello-world
Unable to find image 'hello-world:latest' locally Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7 Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest Status: Downloaded newer image for hello-world:latest
Hello from Docker! Hello from Docker!
This message shows that your installation appears to be working correctly. This message shows that your installation appears to be working correctly.
... ...
` ```
### ما هي الحاويات ثم: ### ما هي الحاويات ثم:
@ -95,24 +98,25 @@ _جميع روابط thoses هي ل Docker CE (إصدار المجتمع)_
Dockerfile هو المكان الذي تكتب فيه التعليمات لبناء صورة Docker. يمكن أن تكون هذه التعليمات: **RUN apt-get y install some-package** : to install a software package **EXPOSE 8000** : لعرض منفذ **ENV ANT\_HOME / usr / local / apache-ant** لتمرير متغير بيئة وما إلى ذلك. بمجرد الانتهاء من إعداد Dockerfile ، يمكنك استخدام الأمر لبناء المرسى لبناء صورة منه. إليك مثال على Dockerfile: Dockerfile هو المكان الذي تكتب فيه التعليمات لبناء صورة Docker. يمكن أن تكون هذه التعليمات: **RUN apt-get y install some-package** : to install a software package **EXPOSE 8000** : لعرض منفذ **ENV ANT\_HOME / usr / local / apache-ant** لتمرير متغير بيئة وما إلى ذلك. بمجرد الانتهاء من إعداد Dockerfile ، يمكنك استخدام الأمر لبناء المرسى لبناء صورة منه. إليك مثال على Dockerfile:
`# Start with ubuntu 14.04 ```
FROM ubuntu:14.04 # Start with ubuntu 14.04
FROM ubuntu:14.04
MAINTAINER freeCodeCamp@gmail.com MAINTAINER freeCodeCamp@gmail.com
# For SSH access and port redirection # For SSH access and port redirection
ENV ROOTPASSWORD sample ENV ROOTPASSWORD sample
# Turn off prompts during installations # Turn off prompts during installations
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
RUN echo "debconf shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections RUN echo "debconf shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
RUN echo "debconf shared/accepted-oracle-license-v1-1 seen true" | debconf-set-selections RUN echo "debconf shared/accepted-oracle-license-v1-1 seen true" | debconf-set-selections
# Update packages # Update packages
RUN apt-get -y update RUN apt-get -y update
# Install system tools / libraries # Install system tools / libraries
RUN apt-get -y install python3-software-properties \ RUN apt-get -y install python3-software-properties \
software-properties-common \ software-properties-common \
bzip2 \ bzip2 \
ssh \ ssh \
@ -134,52 +138,52 @@ Dockerfile هو المكان الذي تكتب فيه التعليمات لبن
python-setuptools \ python-setuptools \
python-dev python-dev
# Install Node, npm # Install Node, npm
RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
RUN apt-get install -y nodejs RUN apt-get install -y nodejs
# Add oracle-jdk7 to repositories # Add oracle-jdk7 to repositories
RUN add-apt-repository ppa:webupd8team/java RUN add-apt-repository ppa:webupd8team/java
# Make sure the package repository is up to date # Make sure the package repository is up to date
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
# Update apt # Update apt
RUN apt-get -y update RUN apt-get -y update
# Install oracle-jdk7 # Install oracle-jdk7
RUN apt-get -y install oracle-java7-installer RUN apt-get -y install oracle-java7-installer
# Export JAVA_HOME variable # Export JAVA_HOME variable
ENV JAVA_HOME /usr/lib/jvm/java-7-oracle ENV JAVA_HOME /usr/lib/jvm/java-7-oracle
# Run sshd # Run sshd
RUN apt-get install -y openssh-server RUN apt-get install -y openssh-server
RUN mkdir /var/run/sshd RUN mkdir /var/run/sshd
RUN echo "root:$ROOTPASSWORD" | chpasswd RUN echo "root:$ROOTPASSWORD" | chpasswd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login # SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
# Expose Node.js app port # Expose Node.js app port
EXPOSE 8000 EXPOSE 8000
# Create tap-to-android app directory # Create tap-to-android app directory
RUN mkdir -p /usr/src/my-app RUN mkdir -p /usr/src/my-app
WORKDIR /usr/src/my-app WORKDIR /usr/src/my-app
# Install app dependencies # Install app dependencies
COPY . /usr/src/my-app COPY . /usr/src/my-app
RUN npm install RUN npm install
# Add entrypoint # Add entrypoint
ADD entrypoint.sh /entrypoint.sh ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"] ENTRYPOINT ["/entrypoint.sh"]
CMD ["npm", "start"] CMD ["npm", "start"]
` ```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -8,36 +8,43 @@ Docker-Compose هو أداة لتحديد وتشغيل تطبيقات Docker م
الخطوات اللازمة لاستخدام عامل الميناء-إنشاء الخطوات اللازمة لاستخدام عامل الميناء-إنشاء
`1)create a Dockerfile which defines the image and can be produsable every where. ```
` 1)create a Dockerfile which defines the image and can be produsable every where.
```
`2)create a docke-compose yml file to run the services ```
` 2)create a docke-compose yml file to run the services
```
`3)use docker-compose up to start the sevices specified in docker-compose.yml file ```
` 3)use docker-compose up to start the sevices specified in docker-compose.yml file
```
#### الأوامر الأساسية في buser-compose #### الأوامر الأساسية في buser-compose
* الأمر لتشغيل حاويات عامل ميناء * الأمر لتشغيل حاويات عامل ميناء
`docker-compose -f docker-compose.yml up ```
` docker-compose -f docker-compose.yml up
```
* أمر لتشغيل الحاويات في وضع فصل * أمر لتشغيل الحاويات في وضع فصل
`docker-compose -f docker-compose.yml up -d ```
` docker-compose -f docker-compose.yml up -d
```
* الأمر لتشغيل الحاويات بعد بناء الصور مرة أخرى (ملاحظة: المرة الأولى التي نستخدم فيها بناء حاويات حاويات السفن سوف يحدث تلقائيًا) * الأمر لتشغيل الحاويات بعد بناء الصور مرة أخرى (ملاحظة: المرة الأولى التي نستخدم فيها بناء حاويات حاويات السفن سوف يحدث تلقائيًا)
`docker-compose -f docker-compose.yml --build -d ```
` docker-compose -f docker-compose.yml --build -d
```
* أمر لإيقاف الحاويات عندما نركض في وضع فصل * أمر لإيقاف الحاويات عندما نركض في وضع فصل
`docker-compose -f docker-compose.yml down ```
` docker-compose -f docker-compose.yml down
```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -6,8 +6,9 @@ localeTitle: دوكر وضع منفصلة
يعني الوضع المنفصل ، الموضح في الخيار `--detach` أو `-d` ، أن حاوية Docker تعمل في خلفية الجهاز الخاص بك. لا يتلقى مدخلات أو عرض الإخراج. يعني الوضع المنفصل ، الموضح في الخيار `--detach` أو `-d` ، أن حاوية Docker تعمل في خلفية الجهاز الخاص بك. لا يتلقى مدخلات أو عرض الإخراج.
`docker run -d IMAGE ```
` docker run -d IMAGE
```
إذا قمت بتشغيل حاويات في الخلفية ، يمكنك معرفة التفاصيل الخاصة بها باستخدام `docker ps` توصيل `docker ps` ، ثم إعادة توصيل الجهاز بمدخلات ومخرجاته. إذا قمت بتشغيل حاويات في الخلفية ، يمكنك معرفة التفاصيل الخاصة بها باستخدام `docker ps` توصيل `docker ps` ، ثم إعادة توصيل الجهاز بمدخلات ومخرجاته.

View File

@ -25,9 +25,10 @@ Docker عبارة عن منصة مفتوحة لإنشاء التطبيقات ا
* لينكس: * لينكس:
`curl -fsSL https://get.docker.com -o get-docker.sh ```
sh get-docker.sh curl -fsSL https://get.docker.com -o get-docker.sh
` sh get-docker.sh
```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -10,40 +10,42 @@ localeTitle: صورة بناء منفصلة
في هذا المثال ، سنستخدم خادمًا بسيطًا لخادم الويب في [Go](https://golang.org/) . التعليمة البرمجية التالية هي مجرد webserver hello world يستمع على المنفذ `8080` . في هذا المثال ، سنستخدم خادمًا بسيطًا لخادم الويب في [Go](https://golang.org/) . التعليمة البرمجية التالية هي مجرد webserver hello world يستمع على المنفذ `8080` .
`package main ```go
package main
import ( import (
"fmt" "fmt"
"log" "log"
"net/http" "net/http"
) )
func handler(w http.ResponseWriter, r *http.Request) { func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello world!") fmt.Fprint(w, "Hello world!")
} }
func main() { func main() {
http.HandleFunc("/", handler) http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil)) log.Fatal(http.ListenAndServe(":8080", nil))
} }
` ```
### Dockerfile ### Dockerfile
قد يبدو Dockerfile لهذا الرمز شيء من هذا القبيل قد يبدو Dockerfile لهذا الرمز شيء من هذا القبيل
`FROM golang:1.11 ```
FROM golang:1.11
ADD . /app ADD . /app
WORKDIR /app WORKDIR /app
RUN go build -o /myserver . RUN go build -o /myserver .
EXPOSE 8080 EXPOSE 8080
CMD [ "/myserver" ] CMD [ "/myserver" ]
` ```
بناء هذه الصورة ينتج في صورة بحجم 783MB !! باستخدام صورة بهذا الحجم للتطبيق البسيط ، من السهل رؤية كيف يمكن أن يؤدي ذلك إلى إبطاء الأشياء عند النشر. بناء هذه الصورة ينتج في صورة بحجم 783MB !! باستخدام صورة بهذا الحجم للتطبيق البسيط ، من السهل رؤية كيف يمكن أن يؤدي ذلك إلى إبطاء الأشياء عند النشر.
@ -55,23 +57,24 @@ localeTitle: صورة بناء منفصلة
سيقوم Dockerfile التالي ببناء الثنائي داخل صورة golang ومن ثم بناء صورة جديدة من الصفر ، نسخ الملف الثنائي من الصورة الأولى إلى الثانية. سيقوم Dockerfile التالي ببناء الثنائي داخل صورة golang ومن ثم بناء صورة جديدة من الصفر ، نسخ الملف الثنائي من الصورة الأولى إلى الثانية.
`FROM golang:1.11 as build ```
FROM golang:1.11 as build
ADD . /app ADD . /app
WORKDIR /app WORKDIR /app
RUN go build -o /myserver . RUN go build -o /myserver .
FROM scratch FROM scratch
COPY --from=build /myserver /myserver COPY --from=build /myserver /myserver
EXPOSE 8080 EXPOSE 8080
CMD [ "myserver" ] CMD [ "myserver" ]
` ```
بناء من هذا dockerfile النتائج في حجم الصورة النهائية من 6.55MB فقط! هذا **أصغر** من **100 مرة** من محاولتنا الأولى ، مما يجعله أسرع 100 مرة في سحب الصورة من التسجيل! بناء من هذا dockerfile النتائج في حجم الصورة النهائية من 6.55MB فقط! هذا **أصغر** من **100 مرة** من محاولتنا الأولى ، مما يجعله أسرع 100 مرة في سحب الصورة من التسجيل!

View File

@ -10,53 +10,59 @@ localeTitle: أنواع البيانات
العدد الصحيح هو رقم غير عشري. وقد بنى Elixir دعمًا للأرقام الثنائية ، والثمانية ، والسداسي عشرية كأعداد صحيحة. العدد الصحيح هو رقم غير عشري. وقد بنى Elixir دعمًا للأرقام الثنائية ، والثمانية ، والسداسي عشرية كأعداد صحيحة.
`iex> 1337 ```elixir
1337 iex> 1337
` 1337
```
### العربات ### العربات
يتطلب العوم عشريًا ورقمًا واحدًا على الأقل بعد العلامة العشرية. يدعم Floats دقة مزدوجة 64 بت و `e` أجل exponets. يتطلب العوم عشريًا ورقمًا واحدًا على الأقل بعد العلامة العشرية. يدعم Floats دقة مزدوجة 64 بت و `e` أجل exponets.
`iex> 27e-100 ```elixir
27e-100 iex> 27e-100
` 27e-100
```
### القيم المنطقية ### القيم المنطقية
البولية هي قيمة حقيقية أو خاطئة. في الإكسير كل شيء صدق ما عدا `false` ولا `nil` . من المهم ملاحظة أن booleans هي نوع فرعي من ذرات Elxir (يمكنك فحص القيم في IEX لترى بنفسك). البولية هي قيمة حقيقية أو خاطئة. في الإكسير كل شيء صدق ما عدا `false` ولا `nil` . من المهم ملاحظة أن booleans هي نوع فرعي من ذرات Elxir (يمكنك فحص القيم في IEX لترى بنفسك).
`iex> true ```elixir
true iex> true
iex> false true
false iex> false
iex> nil false
nil iex> nil
` nil
```
### ذرات ### ذرات
تعتبر الذرة قيمة ثابتة هي نفس الاسم. يتم استخدام الذرات بشكل شائع لرسائل الحالة / الأخطاء داخل المجموعة مع المزيد من المعلومات المضمنة في سلسلة. تعتبر الذرة قيمة ثابتة هي نفس الاسم. يتم استخدام الذرات بشكل شائع لرسائل الحالة / الأخطاء داخل المجموعة مع المزيد من المعلومات المضمنة في سلسلة.
`iex> {:ok, "Message sent successfully"} ```elixir
{:ok, "Message sent successfully"} iex> {:ok, "Message sent successfully"}
iex> {:error, "Message failed to send"} {:ok, "Message sent successfully"}
{:error, "Message failed to send"} iex> {:error, "Message failed to send"}
` {:error, "Message failed to send"}
```
### سلاسل ### سلاسل
السلسلة UTF-8 مشفرة وملفوفة في علامات اقتباس مزدوجة. السلسلة UTF-8 مشفرة وملفوفة في علامات اقتباس مزدوجة.
`iex> "freeCodeCamp" ```elixir
"freeCodeCamp" iex> "freeCodeCamp"
` "freeCodeCamp"
```
السلسلة هي أيضًا ثنائية ، يمكنك رؤية تمثيل ثنائي لسلسلة في Elixir عن طريق إرفاق `<> <<0>>` بنهاية السلسلة. يمكن أن تمثل السلسلة ثنائيًا ، ويمكن أن يمثل الثنائي أيضًا سلسلة. السلسلة هي أيضًا ثنائية ، يمكنك رؤية تمثيل ثنائي لسلسلة في Elixir عن طريق إرفاق `<> <<0>>` بنهاية السلسلة. يمكن أن تمثل السلسلة ثنائيًا ، ويمكن أن يمثل الثنائي أيضًا سلسلة.
`iex> "freeCodeCamp" <> <<0>> ```elixir
<<102, 114, 101, 101, 67, 111, 100, 101, 67, 97, 109, 112, 0>> iex> "freeCodeCamp" <> <<0>>
` <<102, 114, 101, 101, 67, 111, 100, 101, 67, 97, 109, 112, 0>>
```
#### معلومات اكثر #### معلومات اكثر

View File

@ -10,23 +10,25 @@ localeTitle: كابل بيانات
يستخدم المستند المضمن `#` أمام نص يصف شيئًا عن الشفرة. يستخدم المستند المضمن `#` أمام نص يصف شيئًا عن الشفرة.
`def get(path) do ```elixir
def get(path) do
# This is an inline comment for documentation purposes. # This is an inline comment for documentation purposes.
"http get request response" "http get request response"
end end
` ```
### وثائق الوحدة ### وثائق الوحدة
يصف مستند الوحدة النمطية الغرض من وحدة نمطية. تشبه Moduledocs التعليقات متعددة الأسطر التي قد تجدها في لغات البرمجة الأخرى. يصف مستند الوحدة النمطية الغرض من وحدة نمطية. تشبه Moduledocs التعليقات متعددة الأسطر التي قد تجدها في لغات البرمجة الأخرى.
`defmodule WebServer do ```elixir
defmodule WebServer do
@moduledoc """ @moduledoc """
Provides a set of functions to accept and respond to HTTP requests. Provides a set of functions to accept and respond to HTTP requests.
This module provides the @get/1, @post/1, and @put/1 functions. This module provides the @get/1, @post/1, and @put/1 functions.
""" """
end end
` ```
### وثائق الوظيفة ### وثائق الوظيفة

View File

@ -10,9 +10,10 @@ localeTitle: enumerable
باستخدام `Enum.map` يمكنك تشغيل وظيفة مجهولة (وظيفة ليست داخل وحدة نمطية) تمر فوق كل عنصر في قائمة. هذا ينجز نفس المهمة مثل حلقة tradational دون الحاجة إلى تحوير متغير تراكم. باستخدام `Enum.map` يمكنك تشغيل وظيفة مجهولة (وظيفة ليست داخل وحدة نمطية) تمر فوق كل عنصر في قائمة. هذا ينجز نفس المهمة مثل حلقة tradational دون الحاجة إلى تحوير متغير تراكم.
`iex> Enum.map([1, 2, 3], fn(x) -> x * 2 end) ```elixir
[2, 4, 6] iex> Enum.map([1, 2, 3], fn(x) -> x * 2 end)
` [2, 4, 6]
```
## طرق في وحدة التعداد ## طرق في وحدة التعداد
@ -22,9 +23,10 @@ localeTitle: enumerable
يتم تشغيل `Enum.map` وظيفة مجهول أو تم التقاطها عبر قائمة. يتم تشغيل `Enum.map` وظيفة مجهول أو تم التقاطها عبر قائمة.
`iex> Enum.map([5, 10, 15, 20], fn(x) -> x * 2 end) ```elixir
[10, 20, 30, 40] iex> Enum.map([5, 10, 15, 20], fn(x) -> x * 2 end)
` [10, 20, 30, 40]
```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -12,17 +12,18 @@ localeTitle: Erlang Term Storage
### ETS Demo في IEX ### ETS Demo في IEX
`iex(1)> myETSTable = :ets.new(:my_ets_table, []) ```elixir
#Reference<0.1520230345.550371329.65846> iex(1)> myETSTable = :ets.new(:my_ets_table, [])
iex(2)> :ets.insert(myETSTable, {"favoriteWebSite", "freeCodeCamp"}) #Reference<0.1520230345.550371329.65846>
true iex(2)> :ets.insert(myETSTable, {"favoriteWebSite", "freeCodeCamp"})
iex(3)> :ets.insert(myETSTable, {"favoriteProgrammingLanguage", "Elixir"}) true
true iex(3)> :ets.insert(myETSTable, {"favoriteProgrammingLanguage", "Elixir"})
iex(4)> :ets.i(myETSTable) true
<1 > {<<"favoriteProgrammingLanguage">>,<<"Elixir">>} iex(4)> :ets.i(myETSTable)
<2 > {<<"favoriteWebSite">>,<<"freeCodeCamp">>} <1 > {<<"favoriteProgrammingLanguage">>,<<"Elixir">>}
EOT (q)uit (p)Digits (k)ill /Regexp --> <2 > {<<"favoriteWebSite">>,<<"freeCodeCamp">>}
` EOT (q)uit (p)Digits (k)ill /Regexp -->
```
## إصرار ## إصرار

View File

@ -6,32 +6,35 @@ localeTitle: قوائم
في الإكسير ، القوائم هي هياكل بيانات تتألف من قيم داخل أقواس مربعة. يمكن أن تكون القيم في القائمة أي نوع. في الإكسير ، القوائم هي هياكل بيانات تتألف من قيم داخل أقواس مربعة. يمكن أن تكون القيم في القائمة أي نوع.
`iex> [1, "string", true] ```elixir
[1, "string", true] iex> [1, "string", true]
` [1, "string", true]
```
## ثبات ## ثبات
هياكل البيانات في Elixir غير قابلة للتغيير ، لذا فإن أي عمليات يتم تنفيذها في قائمة ستعيد قائمة جديدة ، تاركة الأصلي سليمة. هياكل البيانات في Elixir غير قابلة للتغيير ، لذا فإن أي عمليات يتم تنفيذها في قائمة ستعيد قائمة جديدة ، تاركة الأصلي سليمة.
`iex> list = [1, "string", true] ```elixir
[1, "string", true] iex> list = [1, "string", true]
iex> list ++ [2] [1, "string", true]
[1, "string", true, 2] iex> list ++ [2]
iex> list [1, "string", true, 2]
[1, "string", true] iex> list
` [1, "string", true]
```
## رؤساء والذيول ## رؤساء والذيول
يمكن الوصول بسهولة إلى الرأس (العنصر الأول) من القائمة والذيل (القيم المتبقية) مع مشغلي `hd/1` و `tl/1` . يمكن الوصول بسهولة إلى الرأس (العنصر الأول) من القائمة والذيل (القيم المتبقية) مع مشغلي `hd/1` و `tl/1` .
`iex> list = [1, "string", true] ```elixir
iex> hd(list) iex> list = [1, "string", true]
1 iex> hd(list)
iex> tl(list) 1
["string", true] iex> tl(list)
` ["string", true]
```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -10,37 +10,43 @@ localeTitle: عنقاء
تركيب فينيكس بسيط نسبيًا ، ولكن قبل أن نتمكن من ذلك ، سنحتاج إلى التأكد من أن Elixir ومدير حزمة Hex و Erlang يعملان بالفعل على نظامنا. يحتوي موقع Elixir على [دليل تركيب](https://elixir-lang.org/install.html) رائع لكل من Elixir و Erlang. بمجرد إعداد هذه البرامج بنجاح ، قم ببساطة بتشغيل: تركيب فينيكس بسيط نسبيًا ، ولكن قبل أن نتمكن من ذلك ، سنحتاج إلى التأكد من أن Elixir ومدير حزمة Hex و Erlang يعملان بالفعل على نظامنا. يحتوي موقع Elixir على [دليل تركيب](https://elixir-lang.org/install.html) رائع لكل من Elixir و Erlang. بمجرد إعداد هذه البرامج بنجاح ، قم ببساطة بتشغيل:
`$ mix local.hex ```shell
` $ mix local.hex
```
لتثبيت مدير حزمة Hex ، ثم قم بتثبيت تشغيل أرشيف Phoenix: لتثبيت مدير حزمة Hex ، ثم قم بتثبيت تشغيل أرشيف Phoenix:
`$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez ```shell
` $ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
```
## إنشاء تطبيق Phoenix: ## إنشاء تطبيق Phoenix:
1. بعد تثبيت تطبيق Phoenix ، يكون إنشاء تطبيق أمرًا بسيطًا: 1. بعد تثبيت تطبيق Phoenix ، يكون إنشاء تطبيق أمرًا بسيطًا:
`$ mix phx.new <application_name> ```shell
` $ mix phx.new <application_name>
```
2. تشغيل هذا الأمر مع إنشاء بنية دليل وجميع الملفات الأساسية المطلوبة مع اسم _التطبيق_ الذي استخدمته في الأمر السابق. ستتم مطالبتك بعد ذلك بتثبيت اعتماديات أساسية للتطبيق ، لذلك سنقول نعم لذلك. 2. تشغيل هذا الأمر مع إنشاء بنية دليل وجميع الملفات الأساسية المطلوبة مع اسم _التطبيق_ الذي استخدمته في الأمر السابق. ستتم مطالبتك بعد ذلك بتثبيت اعتماديات أساسية للتطبيق ، لذلك سنقول نعم لذلك.
3. بعد ذلك ، سيُطلب منك التغيير إلى دليل مشروعنا: 3. بعد ذلك ، سيُطلب منك التغيير إلى دليل مشروعنا:
`$ cd <application_name> ```shell
` $ cd <application_name>
```
4. افتراضياً ، يفترض Phoenix أننا سنستخدم PostgreSQL لتطبيقنا مع اسم مستخدم وكلمة مرور لـ 'postgres'. إذا لم يكن الأمر كذلك ، فستحتاج إلى تغيير التكوين - وإلا فكل ما نحتاج إليه هو إنشاء قاعدة البيانات الخاصة بنا: 4. افتراضياً ، يفترض Phoenix أننا سنستخدم PostgreSQL لتطبيقنا مع اسم مستخدم وكلمة مرور لـ 'postgres'. إذا لم يكن الأمر كذلك ، فستحتاج إلى تغيير التكوين - وإلا فكل ما نحتاج إليه هو إنشاء قاعدة البيانات الخاصة بنا:
`$ mix ecto.create ```shell
` $ mix ecto.create
```
5. أخيرًا ، سنبدأ خادمنا: 5. أخيرًا ، سنبدأ خادمنا:
`$ mix phx.server ```shell
` $ mix phx.server
```
6. الآن ، قف في متصفحك وانتقل إلى localhost: 4000 وشاهد صفحة الترحيب! تهانينا ، لقد حصلت على تطبيق Phoenix للعمل. 6. الآن ، قف في متصفحك وانتقل إلى localhost: 4000 وشاهد صفحة الترحيب! تهانينا ، لقد حصلت على تطبيق Phoenix للعمل.

View File

@ -6,27 +6,30 @@ localeTitle: سلاسل
يتم التفاف سلاسل في الإكسير مع علامات اقتباس مزدوجة ، في حين يتم سرد القوائم الفردية. هم الثنائيات المشفرة UTF-8. يتم التفاف سلاسل في الإكسير مع علامات اقتباس مزدوجة ، في حين يتم سرد القوائم الفردية. هم الثنائيات المشفرة UTF-8.
`iex> "Hello world!" ```elixir
"Hello world!" iex> "Hello world!"
` "Hello world!"
```
سلسلة الاستيفاء ممكن في الإكسير مع octothorp تليها الأقواس المجعد. سلسلة الاستيفاء ممكن في الإكسير مع octothorp تليها الأقواس المجعد.
`iex> variable = "world!" ```elixir
"world!" iex> variable = "world!"
iex> "Hello #{variable}" "world!"
"Hello world!" iex> "Hello #{variable}"
` "Hello world!"
```
تحتوي الوحدة النمطية السلسلة على العديد من الوظائف المضمنة المفيدة استنادًا إلى معيار Unicode. تحتوي الوحدة النمطية السلسلة على العديد من الوظائف المضمنة المفيدة استنادًا إلى معيار Unicode.
`iex> example = "string" ```elixir
"string" iex> example = "string"
iex> String.capitalize(example) "string"
"String" iex> String.capitalize(example)
iex> String.duplicate(example, 2) "String"
"stringstring" iex> String.duplicate(example, 2)
` "stringstring"
```
#### معلومات اكثر: #### معلومات اكثر:

View File

@ -6,23 +6,25 @@ localeTitle: الصفوف
في الإكسير ، الصفوف هي بنية بيانات يمكنها الاحتفاظ بأي قيمة أو خليط من الأنواع. يتم تعريف المجموعات بواسطة الأقواس المتعرجة ، وتبدأ الفهارس الخاصة بها من 0. ولما كانت الصفوف يتم تخزينها بشكل متقارب في الذاكرة ، فإن الحصول على البيانات منها هو عملية سريعة جدًا. في الإكسير ، الصفوف هي بنية بيانات يمكنها الاحتفاظ بأي قيمة أو خليط من الأنواع. يتم تعريف المجموعات بواسطة الأقواس المتعرجة ، وتبدأ الفهارس الخاصة بها من 0. ولما كانت الصفوف يتم تخزينها بشكل متقارب في الذاكرة ، فإن الحصول على البيانات منها هو عملية سريعة جدًا.
`iex> tuple = {:atom, "string"} ```elixir
{:atom, "string"} iex> tuple = {:atom, "string"}
iex> elem(tuple, 0) {:atom, "string"}
:atom iex> elem(tuple, 0)
` :atom
```
## ثبات ## ثبات
تعتبر الصفوف في Elixir غير قابلة للتغيير ، لذا فإن إجراء تعديلات سيؤدي إلى ظهور مجموعة جديدة تمامًا - مما يوفر النص الأصلي في الذاكرة. تعتبر الصفوف في Elixir غير قابلة للتغيير ، لذا فإن إجراء تعديلات سيؤدي إلى ظهور مجموعة جديدة تمامًا - مما يوفر النص الأصلي في الذاكرة.
`iex> tuple = {:atom, "string"} ```elixir
{:atom, "string"} iex> tuple = {:atom, "string"}
iex> put_elem(tuple, 1, true) {:atom, "string"}
{:atom, true} iex> put_elem(tuple, 1, true)
iex> tuple {:atom, true}
{:atom, "string"} iex> tuple
` {:atom, "string"}
```
## نمط مطابقة ## نمط مطابقة

View File

@ -16,50 +16,54 @@ Erlang يجعل الاستخدام المكثف من **العودية** . منذ
في ما يلي مثال على العودية ، حيث يوضح كيف تقوم إحدى الدرجات مرارًا بتفكيك الحرف الأول من مقدمة الاسم وطباعته ، ولا تتوقف إلا عند مواجهة الحرف الأخير. في ما يلي مثال على العودية ، حيث يوضح كيف تقوم إحدى الدرجات مرارًا بتفكيك الحرف الأول من مقدمة الاسم وطباعته ، ولا تتوقف إلا عند مواجهة الحرف الأخير.
`-module(name). ```erlang
-module(name).
-export([print_name/1]). -export([print_name/1]).
print_name([RemainingLetter | []]) -> print_name([RemainingLetter | []]) ->
io:format("~c~n", [RemainingLetter]); io:format("~c~n", [RemainingLetter]);
print_name([FirstLetter | RestOfName]) -> print_name([FirstLetter | RestOfName]) ->
io:format("~c~n", [FirstLetter]), io:format("~c~n", [FirstLetter]),
print_name(RestOfName). print_name(RestOfName).
` ```
انتاج: انتاج:
`> name:print_name("Mike"). ```
M > name:print_name("Mike").
i M
k i
e k
ok e
` ok
```
وهناك أيضا تركيز كبير على **نمط مطابقة،** التي كثيرا ما يلغي الحاجة ل `if` بنية أو `case` البيان. في المثال التالي ، هناك نوعان من التطابقات لأسماء محددة ، متبوعًا بـ catch-all لأية أسماء أخرى. وهناك أيضا تركيز كبير على **نمط مطابقة،** التي كثيرا ما يلغي الحاجة ل `if` بنية أو `case` البيان. في المثال التالي ، هناك نوعان من التطابقات لأسماء محددة ، متبوعًا بـ catch-all لأية أسماء أخرى.
`-module(greeting). ```erlang
-module(greeting).
-export([say_hello/1]). -export([say_hello/1]).
say_hello("Mary") -> say_hello("Mary") ->
"Welcome back Mary!"; "Welcome back Mary!";
say_hello("Tom") -> say_hello("Tom") ->
"Howdy Tom."; "Howdy Tom.";
say_hello(Name) -> say_hello(Name) ->
"Hello " ++ Name ++ ".". "Hello " ++ Name ++ ".".
` ```
انتاج: انتاج:
`> greeting:say_hello("Mary"). ```
"Welcome back Mary!" > greeting:say_hello("Mary").
> greeting:say_hello("Tom"). "Welcome back Mary!"
"Howdy Tom." > greeting:say_hello("Tom").
> greeting:say_hello("Beth"). "Howdy Tom."
"Hello Beth." > greeting:say_hello("Beth").
` "Hello Beth."
```
### حاول ### حاول

View File

@ -6,25 +6,29 @@ localeTitle: كيفية المصادقة باستخدام GitHub باستخدا
تحقق من عدم وجود ملفات `rsa` هنا قبل المتابعة ، استخدم: تحقق من عدم وجود ملفات `rsa` هنا قبل المتابعة ، استخدم:
`ls -al ~/.ssh ```shell
` ls -al ~/.ssh
```
إذا لم يكن هناك ما يتم سرده (على سبيل المثال `: No such file or directory` ) ، فاستخدم: إذا لم يكن هناك ما يتم سرده (على سبيل المثال `: No such file or directory` ) ، فاستخدم:
`mkdir $HOME/.ssh ```shell
` mkdir $HOME/.ssh
```
إذا لم يكن هناك شيء هناك ، قم بإنشاء keygen جديد مع: إذا لم يكن هناك شيء هناك ، قم بإنشاء keygen جديد مع:
`ssh-keygen -t rsa -b 4096 -C your@email.com ```shell
` ssh-keygen -t rsa -b 4096 -C your@email.com
```
الآن باستخدام `ls -al ~/.ssh` سوف تظهر لدينا `id_rsa.pub` الملف. الآن باستخدام `ls -al ~/.ssh` سوف تظهر لدينا `id_rsa.pub` الملف.
أضف مفتاح SSH إلى وكيل SSH: أضف مفتاح SSH إلى وكيل SSH:
`eval "$(ssh-agent -s)" # for mac and Linux from bash ```shell
` eval "$(ssh-agent -s)" # for mac and Linux from bash
```
``eval `ssh-agent -s` ``eval `ssh-agent -s`
ssh-agent -s # for Windows ssh-agent -s # for Windows
@ -32,20 +36,24 @@ localeTitle: كيفية المصادقة باستخدام GitHub باستخدا
إضافة مفتاح RSA إلى SHH مع: إضافة مفتاح RSA إلى SHH مع:
`ssh-add ~/.ssh/id_rsa ```shell
` ssh-add ~/.ssh/id_rsa
```
انسخ مفتاحك إلى الحافظة انسخ مفتاحك إلى الحافظة
`clip < ~/.ssh/id_rsa.pub # Windows ```shell
` clip < ~/.ssh/id_rsa.pub # Windows
```
`cat ~/.ssh/id_rsa.pub # Linux ```shell
` cat ~/.ssh/id_rsa.pub # Linux
```
انتقل إلى صفحة [إعدادات](https://github.com/settings/keys) GitHub وانقر على زر "New SSH key" في المفتاح الذي تم إنشاؤه. انتقل إلى صفحة [إعدادات](https://github.com/settings/keys) GitHub وانقر على زر "New SSH key" في المفتاح الذي تم إنشاؤه.
ثم توثيق مع: ثم توثيق مع:
`ssh -T git@github.com ```shell
` ssh -T git@github.com
```

View File

@ -6,44 +6,50 @@ localeTitle: Git Aliases
لا يقوم Git باستنتاج الأمر تلقائيًا إذا قمت بكتابته جزئيًا. إذا كنت لا تريد كتابة النص الكامل لكل من أوامر Git ، فيمكنك بسهولة إعداد اسم مستعار لكل أمر باستخدام git config. إليك بعض الأمثلة التي قد ترغب في إعدادها: لا يقوم Git باستنتاج الأمر تلقائيًا إذا قمت بكتابته جزئيًا. إذا كنت لا تريد كتابة النص الكامل لكل من أوامر Git ، فيمكنك بسهولة إعداد اسم مستعار لكل أمر باستخدام git config. إليك بعض الأمثلة التي قد ترغب في إعدادها:
`$ git config --global alias.co checkout ```shell
$ git config --global alias.br branch $ git config --global alias.co checkout
$ git config --global alias.ci commit $ git config --global alias.br branch
$ git config --global alias.st status $ git config --global alias.ci commit
` $ git config --global alias.st status
```
هذا يعني ، على سبيل المثال ، بدلاً من كتابة ارتكاب بوابة ، تحتاج فقط إلى كتابة git ci. أثناء استخدام Git ، ستستخدم على الأرجح الأوامر الأخرى بشكل متكرر أيضًا ؛ لا تتردد في إنشاء أسماء مستعارة جديدة. هذا يعني ، على سبيل المثال ، بدلاً من كتابة ارتكاب بوابة ، تحتاج فقط إلى كتابة git ci. أثناء استخدام Git ، ستستخدم على الأرجح الأوامر الأخرى بشكل متكرر أيضًا ؛ لا تتردد في إنشاء أسماء مستعارة جديدة.
يمكن أن تكون هذه التقنية مفيدة جدًا في إنشاء الأوامر التي تعتقد أنها يجب أن تكون موجودة. على سبيل المثال ، لتصحيح مشكلة قابلية الاستخدام التي واجهتها مع unstage ملف ، يمكنك إضافة اسم مستعار unstage الخاصة بك إلى Git: يمكن أن تكون هذه التقنية مفيدة جدًا في إنشاء الأوامر التي تعتقد أنها يجب أن تكون موجودة. على سبيل المثال ، لتصحيح مشكلة قابلية الاستخدام التي واجهتها مع unstage ملف ، يمكنك إضافة اسم مستعار unstage الخاصة بك إلى Git:
`$ git config --global alias.unstage 'reset HEAD --' ```shell
` $ git config --global alias.unstage 'reset HEAD --'
```
هذا يجعل الأمرين التاليين مساويين: هذا يجعل الأمرين التاليين مساويين:
`$ git unstage fileA ```shell
$ git reset HEAD fileA $ git unstage fileA
` $ git reset HEAD fileA
```
هذا يبدو أكثر وضوحا بعض الشيء. من الشائع أيضًا إضافة أمر آخر ، على النحو التالي: هذا يبدو أكثر وضوحا بعض الشيء. من الشائع أيضًا إضافة أمر آخر ، على النحو التالي:
`$ git config --global alias.last 'log -1 HEAD' ```shell
` $ git config --global alias.last 'log -1 HEAD'
```
بهذه الطريقة ، يمكنك أن ترى آخر التزام بسهولة: بهذه الطريقة ، يمكنك أن ترى آخر التزام بسهولة:
`$ git last ```shell
commit 66938dae3329c7aebe598c2246a8e6af90d04646 $ git last
Author: Josh Goebel <dreamer3@example.com> commit 66938dae3329c7aebe598c2246a8e6af90d04646
Date: Tue Aug 26 19:48:51 2008 +0800 Author: Josh Goebel <dreamer3@example.com>
Date: Tue Aug 26 19:48:51 2008 +0800
test for current head test for current head
Signed-off-by: Scott Chacon <schacon@example.com> Signed-off-by: Scott Chacon <schacon@example.com>
` ```
`$ git config --global alias.st status --short --branch ```shell
` $ git config --global alias.st status --short --branch
```
عند تشغيل الأمر `git st` ، سيتم عرض الحالة git بتنسيق مبسط لطيف. عند تشغيل الأمر `git st` ، سيتم عرض الحالة git بتنسيق مبسط لطيف.
@ -51,8 +57,9 @@ localeTitle: Git Aliases
لعرض جميع الأسماء المستعارة التي قمت بإنشائها على جهازك ، قم بتشغيل الأمر: لعرض جميع الأسماء المستعارة التي قمت بإنشائها على جهازك ، قم بتشغيل الأمر:
`cat ~/.gitconfig ```shell
` cat ~/.gitconfig
```
سيسمح لك استبدال `cat` باستخدام `nano` بتحريرها أو إزالتها تمامًا. سيسمح لك استبدال `cat` باستخدام `nano` بتحريرها أو إزالتها تمامًا.

View File

@ -12,22 +12,25 @@ localeTitle: جيت بيزكت
لبدء جلسة شرائية ، ستقوم بإخبار بوابة git لبدء جلسة عمل ، وتحديد إصدار "سيئ" ، وتحديد إصدار "جيد". بافتراض أن الالتزام الحالي قد تم كسره ولكن التزام `4b60707` جيد ، فسوف يتم تشغيل ما يلي: لبدء جلسة شرائية ، ستقوم بإخبار بوابة git لبدء جلسة عمل ، وتحديد إصدار "سيئ" ، وتحديد إصدار "جيد". بافتراض أن الالتزام الحالي قد تم كسره ولكن التزام `4b60707` جيد ، فسوف يتم تشغيل ما يلي:
`git bisect start ```shell
git bisect bad git bisect start
git bisect good 4b60707 git bisect bad
` git bisect good 4b60707
```
سيقوم Git بالتحقق من التزام بين الإصدارات "الجيدة" و "السيئة" وإخراج شيء مثل ما يلي: سيقوم Git بالتحقق من التزام بين الإصدارات "الجيدة" و "السيئة" وإخراج شيء مثل ما يلي:
`Bisecting: 2 revisions left to test after this (roughly 2 steps) ```
` Bisecting: 2 revisions left to test after this (roughly 2 steps)
```
يجب عليك الآن أن تخبر git إذا كان الالتزام الحالي يعمل مع `git bisect good` أو إذا تم كسر الالتزام الحالي مع `git bisect bad` . ستتكرر هذه العملية حتى يصبح الأمر قادراً على طباعة أول التزام سيء. يجب عليك الآن أن تخبر git إذا كان الالتزام الحالي يعمل مع `git bisect good` أو إذا تم كسر الالتزام الحالي مع `git bisect bad` . ستتكرر هذه العملية حتى يصبح الأمر قادراً على طباعة أول التزام سيء.
عند الانتهاء ، يجب تنظيف جلسة المشط. سيؤدي ذلك إلى إعادة تعيين HEAD إلى ما كان عليه قبل بدء جلسة العمل: عند الانتهاء ، يجب تنظيف جلسة المشط. سيؤدي ذلك إلى إعادة تعيين HEAD إلى ما كان عليه قبل بدء جلسة العمل:
`git bisect reset ```shell
` git bisect reset
```
### موارد آخرى ### موارد آخرى

View File

@ -14,10 +14,11 @@ localeTitle: جيت بليم
سترى مخرجات مثل هذا: سترى مخرجات مثل هذا:
`0292b580 (Jane Doe 2018-06-18 00:17:23 -0500 1) 3.times do ```shell
e483daf0 (John Doe 2018-06-18 23:50:40 -0500 2) print 'Welcome ' 0292b580 (Jane Doe 2018-06-18 00:17:23 -0500 1) 3.times do
0292b580 (Jane Doe 2018-06-18 00:17:23 -0500 3) end e483daf0 (John Doe 2018-06-18 23:50:40 -0500 2) print 'Welcome '
` 0292b580 (Jane Doe 2018-06-18 00:17:23 -0500 3) end
```
يتم وضع علامة على كل سطر باستخدام SHA ، واسم المؤلف وتاريخ الالتزام الأخير. يتم وضع علامة على كل سطر باستخدام SHA ، واسم المؤلف وتاريخ الالتزام الأخير.

View File

@ -21,13 +21,15 @@ localeTitle: بوابة فرع
لعرض الفروع في مستودع Git ، قم بتشغيل الأمر: لعرض الفروع في مستودع Git ، قم بتشغيل الأمر:
`git branch ```shell
` git branch
```
لعرض كل من فروع التتبع عن بعد والفروع المحلية ، قم بتشغيل الأمر: لعرض كل من فروع التتبع عن بعد والفروع المحلية ، قم بتشغيل الأمر:
`git branch -a ```shell
` git branch -a
```
سيكون هناك علامة نجمية (\*) بجوار الفرع الذي تعمل عليه حاليًا. سيكون هناك علامة نجمية (\*) بجوار الفرع الذي تعمل عليه حاليًا.
@ -39,8 +41,9 @@ localeTitle: بوابة فرع
للتحقق من فرع موجود ، قم بتشغيل الأمر: للتحقق من فرع موجود ، قم بتشغيل الأمر:
`git checkout BRANCH-NAME ```shell
` git checkout BRANCH-NAME
```
بشكل عام ، لن تسمح لك Git بالتسجيل في فرع آخر ما لم يكن دليل عملك نظيفًا ، لأنك ستفقد أي تغييرات في دليل العمل غير ملتزم بها. لديك ثلاثة خيارات للتعامل مع تغييراتك: 1) القمامة لهم (انظر [بوابة الخروج للحصول على التفاصيل](https://guide.freecodecamp.org/git/git-checkout/) ) أو 2) ارتكابها (انظر [Git ارتكاب التفاصيل](https://guide.freecodecamp.org/git/git-commit/) ) أو 3) خبأهم (انظر [خبأ Git لمزيد من التفاصيل](https://guide.freecodecamp.org/git/git-stash/) ). بشكل عام ، لن تسمح لك Git بالتسجيل في فرع آخر ما لم يكن دليل عملك نظيفًا ، لأنك ستفقد أي تغييرات في دليل العمل غير ملتزم بها. لديك ثلاثة خيارات للتعامل مع تغييراتك: 1) القمامة لهم (انظر [بوابة الخروج للحصول على التفاصيل](https://guide.freecodecamp.org/git/git-checkout/) ) أو 2) ارتكابها (انظر [Git ارتكاب التفاصيل](https://guide.freecodecamp.org/git/git-commit/) ) أو 3) خبأهم (انظر [خبأ Git لمزيد من التفاصيل](https://guide.freecodecamp.org/git/git-stash/) ).
@ -48,20 +51,22 @@ localeTitle: بوابة فرع
لإنشاء فرع جديد ، قم بتشغيل الأمر: لإنشاء فرع جديد ، قم بتشغيل الأمر:
`git branch NEW-BRANCH-NAME ```shell
` git branch NEW-BRANCH-NAME
```
لاحظ أن هذا الأمر يقوم بإنشاء الفرع الجديد فقط. ستحتاج إلى تشغيل `git checkout NEW-BRANCH-NAME` للتبديل إليه. لاحظ أن هذا الأمر يقوم بإنشاء الفرع الجديد فقط. ستحتاج إلى تشغيل `git checkout NEW-BRANCH-NAME` للتبديل إليه.
هناك اختصار لإنشاء واختبار فرع جديد في وقت واحد. يمكنك تمرير الخيار `-b` (للفرع) مع `git checkout` . الأوامر التالية تفعل الشيء نفسه: هناك اختصار لإنشاء واختبار فرع جديد في وقت واحد. يمكنك تمرير الخيار `-b` (للفرع) مع `git checkout` . الأوامر التالية تفعل الشيء نفسه:
`# Two-step method ```shell
git branch NEW-BRANCH-NAME # Two-step method
git checkout NEW-BRANCH-NAME git branch NEW-BRANCH-NAME
git checkout NEW-BRANCH-NAME
# Shortcut # Shortcut
git checkout -b NEW-BRANCH-NAME git checkout -b NEW-BRANCH-NAME
` ```
عندما تنشئ فرعًا جديدًا ، سيتضمن كل الإلتزامات من الفرع الرئيسي. الفرع الأم هو الفرع الذي تتواجد فيه عندما تقوم بإنشاء الفرع الجديد. عندما تنشئ فرعًا جديدًا ، سيتضمن كل الإلتزامات من الفرع الرئيسي. الفرع الأم هو الفرع الذي تتواجد فيه عندما تقوم بإنشاء الفرع الجديد.
@ -69,37 +74,41 @@ localeTitle: بوابة فرع
لإعادة تسمية فرع ، قم بتشغيل الأمر: لإعادة تسمية فرع ، قم بتشغيل الأمر:
`git branch -m OLD-BRANCH-NAME NEW-BRANCH-NAME ```shell
git branch -m OLD-BRANCH-NAME NEW-BRANCH-NAME
# Alternative # Alternative
git branch --move OLD-BRANCH-NAME NEW-BRANCH-NAME git branch --move OLD-BRANCH-NAME NEW-BRANCH-NAME
` ```
### حذف فرع ### حذف فرع
لن تسمح لك Git بحذف فرع أنت موجود حاليًا. يجب عليك أولاً الخروج من فرع مختلف ، ثم تشغيل الأمر: لن تسمح لك Git بحذف فرع أنت موجود حاليًا. يجب عليك أولاً الخروج من فرع مختلف ، ثم تشغيل الأمر:
`git branch -d BRANCH-TO-DELETE ```shell
git branch -d BRANCH-TO-DELETE
# Alternative: # Alternative:
git branch --delete BRANCH-TO-DELETE git branch --delete BRANCH-TO-DELETE
` ```
الفرع الذي تقوم بالتبديل إلى إحداث فرق. سيطرح Git خطأً إذا لم يتم دمج التغييرات في الفرع الذي تحاول حذفه بالكامل في الفرع الحالي. يمكنك تجاوز هذا والقوة بوابة لحذف فرع مع `-D` الخيار (لاحظ حرف) أو باستخدام `--force` الخيار مع `-d` أو `--delete` : الفرع الذي تقوم بالتبديل إلى إحداث فرق. سيطرح Git خطأً إذا لم يتم دمج التغييرات في الفرع الذي تحاول حذفه بالكامل في الفرع الحالي. يمكنك تجاوز هذا والقوة بوابة لحذف فرع مع `-D` الخيار (لاحظ حرف) أو باستخدام `--force` الخيار مع `-d` أو `--delete` :
`git branch -D BRANCH-TO-DELETE ```shell
git branch -D BRANCH-TO-DELETE
# Alternatives # Alternatives
git branch -d --force BRANCH-TO-DELETE git branch -d --force BRANCH-TO-DELETE
git branch --delete --force BRANCH-TO-DELETE git branch --delete --force BRANCH-TO-DELETE
` ```
### قارن الفروع ### قارن الفروع
يمكنك مقارنة الفروع باستخدام الأمر `git diff` : يمكنك مقارنة الفروع باستخدام الأمر `git diff` :
`git diff FIRST-BRANCH..SECOND-BRANCH ```shell
` git diff FIRST-BRANCH..SECOND-BRANCH
```
سترى الإخراج الملون للتغييرات بين الفروع. بالنسبة إلى جميع الأسطر التي تغيرت ، سيكون إصدار `SECOND-BRANCH` خطًا أخضر يبدأ بـ "+" ، وسيكون إصدار `FIRST-BRANCH` خطًا أحمر يبدأ بـ "-". إذا كنت لا ترغب في أن يقوم Git بعرض سطرين لكل تغيير ، فيمكنك استخدام الخيار `--color-words` . بدلاً من ذلك ، سيعرض Git سطرًا واحدًا مع النص المحذوف باللون الأحمر ، وإضافة النص باللون الأخضر. سترى الإخراج الملون للتغييرات بين الفروع. بالنسبة إلى جميع الأسطر التي تغيرت ، سيكون إصدار `SECOND-BRANCH` خطًا أخضر يبدأ بـ "+" ، وسيكون إصدار `FIRST-BRANCH` خطًا أحمر يبدأ بـ "-". إذا كنت لا ترغب في أن يقوم Git بعرض سطرين لكل تغيير ، فيمكنك استخدام الخيار `--color-words` . بدلاً من ذلك ، سيعرض Git سطرًا واحدًا مع النص المحذوف باللون الأحمر ، وإضافة النص باللون الأخضر.
@ -109,10 +118,11 @@ localeTitle: بوابة فرع
إذا كنت قد نسيت كيفية استخدام أحد الخيارات أو تريد استكشاف وظائف أخرى حول الأمر `git branch` ، فيمكنك تشغيل أي من هذه الأوامر: إذا كنت قد نسيت كيفية استخدام أحد الخيارات أو تريد استكشاف وظائف أخرى حول الأمر `git branch` ، فيمكنك تشغيل أي من هذه الأوامر:
`git help branch ```shell
git branch --help git help branch
man git-branch git branch --help
` man git-branch
```
### معلومات اكثر: ### معلومات اكثر:

View File

@ -10,20 +10,23 @@ localeTitle: بوابة الخروج
للخروج من التزام معين ، قم بتشغيل الأمر: للخروج من التزام معين ، قم بتشغيل الأمر:
`git checkout specific-commit-id ```shell
` git checkout specific-commit-id
```
يمكننا الحصول على رقم تعريف الالتزام المحدد عن طريق تشغيل: يمكننا الحصول على رقم تعريف الالتزام المحدد عن طريق تشغيل:
`git log ```shell
` git log
```
### الخروج فرع موجود ### الخروج فرع موجود
للتحقق من فرع موجود ، قم بتشغيل الأمر: للتحقق من فرع موجود ، قم بتشغيل الأمر:
`git checkout BRANCH-NAME ```shell
` git checkout BRANCH-NAME
```
بشكل عام ، لن تسمح لك Git بالتسجيل في فرع آخر ما لم يكن دليل عملك نظيفًا ، لأنك ستفقد أي تغييرات في دليل العمل غير ملتزم بها. لديك ثلاثة خيارات للتعامل مع تغييراتك: 1) قم بسحبها ، 2) [ارتكابها](https://guide.freecodecamp.org/git/git-commit/) ، أو 3) [خبأتها](https://guide.freecodecamp.org/git/git-stash/) . بشكل عام ، لن تسمح لك Git بالتسجيل في فرع آخر ما لم يكن دليل عملك نظيفًا ، لأنك ستفقد أي تغييرات في دليل العمل غير ملتزم بها. لديك ثلاثة خيارات للتعامل مع تغييراتك: 1) قم بسحبها ، 2) [ارتكابها](https://guide.freecodecamp.org/git/git-commit/) ، أو 3) [خبأتها](https://guide.freecodecamp.org/git/git-stash/) .
@ -31,8 +34,9 @@ localeTitle: بوابة الخروج
لإنشاء فرع جديد بأمر واحد والخروج منه ، يمكنك استخدام: لإنشاء فرع جديد بأمر واحد والخروج منه ، يمكنك استخدام:
`git checkout -b NEW-BRANCH-NAME ```shell
` git checkout -b NEW-BRANCH-NAME
```
سيؤدي هذا إلى تبديلك تلقائيًا إلى الفرع الجديد. سيؤدي هذا إلى تبديلك تلقائيًا إلى الفرع الجديد.
@ -40,8 +44,9 @@ localeTitle: بوابة الخروج
يشبه الأمر التالي التحقق من فرع جديد ، ولكنه يستخدم علامة `-B` (لاحظ علامة captional B) ومعلمة `START-POINT` اختيارية: يشبه الأمر التالي التحقق من فرع جديد ، ولكنه يستخدم علامة `-B` (لاحظ علامة captional B) ومعلمة `START-POINT` اختيارية:
`git checkout -B BRANCH-NAME START-POINT ```shell
` git checkout -B BRANCH-NAME START-POINT
```
إذا كان `BRANCH-NAME` غير موجود ، فسيقوم Git بإنشائه وبدء تشغيله عند `START-POINT` . إذا كان `BRANCH-NAME` موجودًا بالفعل ، فعندئذٍ يقوم Git بإعادة تعيين الفرع إلى `START-POINT` . هذا يعادل تشغيل `git branch` مع `-f` . إذا كان `BRANCH-NAME` غير موجود ، فسيقوم Git بإنشائه وبدء تشغيله عند `START-POINT` . إذا كان `BRANCH-NAME` موجودًا بالفعل ، فعندئذٍ يقوم Git بإعادة تعيين الفرع إلى `START-POINT` . هذا يعادل تشغيل `git branch` مع `-f` .
@ -51,15 +56,17 @@ localeTitle: بوابة الخروج
عند تشغيل الأمر التالي ، سيتجاهل Git الإدخالات غير المدمجة: عند تشغيل الأمر التالي ، سيتجاهل Git الإدخالات غير المدمجة:
`git checkout -f BRANCH-NAME ```shell
git checkout -f BRANCH-NAME
# Alternative # Alternative
git checkout --force BRANCH-NAME git checkout --force BRANCH-NAME
` ```
### التراجع عن التغييرات في دليل العمل الخاص بك ### التراجع عن التغييرات في دليل العمل الخاص بك
يمكنك استخدام أمر `git checkout` للتراجع عن التغييرات التي أجريتها على ملف في دليل العمل. سيؤدي هذا إلى إعادة الملف إلى الإصدار في `HEAD` : يمكنك استخدام أمر `git checkout` للتراجع عن التغييرات التي أجريتها على ملف في دليل العمل. سيؤدي هذا إلى إعادة الملف إلى الإصدار في `HEAD` :
`git checkout -- FILE-NAME ```shell
` git checkout -- FILE-NAME
```

View File

@ -10,15 +10,17 @@ localeTitle: Git Cherry Pick
لتطبيق التغيير الذي تم تقديمه بواسطة الالتزام على طرف الفرع الرئيسي وإنشاء التزام جديد بهذا التغيير. قم بتشغيل الأمر التالي لتطبيق التغيير الذي تم تقديمه بواسطة الالتزام على طرف الفرع الرئيسي وإنشاء التزام جديد بهذا التغيير. قم بتشغيل الأمر التالي
`git cherry-pick master ```shell
` git cherry-pick master
```
### تحقق في تغيير من التزام مختلف ### تحقق في تغيير من التزام مختلف
لتطبيق التغيير الذي تم تقديمه بواسطة الالتزام في قيمة التجزئة المحددة التي تريدها ، قم بتشغيل الأمر التالي لتطبيق التغيير الذي تم تقديمه بواسطة الالتزام في قيمة التجزئة المحددة التي تريدها ، قم بتشغيل الأمر التالي
`git cherry-pick {HASHVALUE} ```shell
` git cherry-pick {HASHVALUE}
```
سيؤدي هذا إلى إضافة التغييرات التي تمت الإشارة إليها في الالتزام ، إلى المستودع الحالي الخاص بك سيؤدي هذا إلى إضافة التغييرات التي تمت الإشارة إليها في الالتزام ، إلى المستودع الحالي الخاص بك
@ -26,16 +28,19 @@ localeTitle: Git Cherry Pick
يسمح لك `cherry-pick` بالاختيار بين عمليات من فرع واحد إلى آخر. دعونا نقول لديك فرعين `master` و `develop-1` . في الفرع `develop-1` لديك 3 تلتزم مع تعهدات التزام `commit-1` ، `commit-2` `commit-3` . هنا يمكنك تطبيق `commit-2` على الفرع `master` خلال: يسمح لك `cherry-pick` بالاختيار بين عمليات من فرع واحد إلى آخر. دعونا نقول لديك فرعين `master` و `develop-1` . في الفرع `develop-1` لديك 3 تلتزم مع تعهدات التزام `commit-1` ، `commit-2` `commit-3` . هنا يمكنك تطبيق `commit-2` على الفرع `master` خلال:
`git checkout master ```shell
git cherry-pick commit-2 git checkout master
` git cherry-pick commit-2
```
إذا واجهت أي تعارضات في هذه المرحلة ، فيجب عليك إصلاحها وإضافتها باستخدام `git add` ، ثم يمكنك استخدام علامة متابعة لتطبيق اختيار cherry-pick. إذا واجهت أي تعارضات في هذه المرحلة ، فيجب عليك إصلاحها وإضافتها باستخدام `git add` ، ثم يمكنك استخدام علامة متابعة لتطبيق اختيار cherry-pick.
`git cherry-pick --continue ```shell
` git cherry-pick --continue
```
إذا كنت ترغب في إجهاض اختيار الكرز فيما بين يمكنك استخدام علامة abort: إذا كنت ترغب في إجهاض اختيار الكرز فيما بين يمكنك استخدام علامة abort:
`git cherry-pick --abort ```shell
` git cherry-pick --abort
```

View File

@ -10,13 +10,15 @@ localeTitle: جيت استنس
في سطر الأوامر على جهازك المحلي ، انتقل إلى المكان الذي تريد حفظ المشروع في دليل العمل الخاص بك. وأخيرًا ، قم بتشغيل الأمر `git clone` : في سطر الأوامر على جهازك المحلي ، انتقل إلى المكان الذي تريد حفظ المشروع في دليل العمل الخاص بك. وأخيرًا ، قم بتشغيل الأمر `git clone` :
`git clone URL-OF-REPOSITORY ```shell
` git clone URL-OF-REPOSITORY
```
الاسم الافتراضي للدليل الجديد على جهاز الكمبيوتر الخاص بك هو اسم المستودع ، ولكن يمكنك تغيير ذلك عن طريق تضمين المعلمة (اختياري) الأخيرة: الاسم الافتراضي للدليل الجديد على جهاز الكمبيوتر الخاص بك هو اسم المستودع ، ولكن يمكنك تغيير ذلك عن طريق تضمين المعلمة (اختياري) الأخيرة:
`git clone URL-OF-REPOSITORY NAME-OF-DIRECTORY-ON-COMPUTER ```shell
` git clone URL-OF-REPOSITORY NAME-OF-DIRECTORY-ON-COMPUTER
```
يعطي Git البعيد الاسم المستعار "الأصل". هذه طريقة مفيدة للإشارة إلى جهاز التحكم عن بعد عندما تريد دفع تغييراتك إلى الخادم البعيد أو سحب التغييرات منه. انظر [Git push](https://guide.freecodecamp.org/git/git-push/) و [Git pull](https://guide.freecodecamp.org/git/git-pull/) لمزيد من التفاصيل. يعطي Git البعيد الاسم المستعار "الأصل". هذه طريقة مفيدة للإشارة إلى جهاز التحكم عن بعد عندما تريد دفع تغييراتك إلى الخادم البعيد أو سحب التغييرات منه. انظر [Git push](https://guide.freecodecamp.org/git/git-push/) و [Git pull](https://guide.freecodecamp.org/git/git-pull/) لمزيد من التفاصيل.
@ -24,12 +26,13 @@ Git يسحب فقط الفرع الرئيسي عن بعد على جهاز الك
أيضا ، Git تلقائيا بإعداد الفرع الرئيسي المحلي لتتبع الفرع البعيد. عند تشغيل `git status` ، سترى معلومات حول ما إذا كان الفرع المحلي لديك محدثًا مع جهاز التحكم عن بُعد. إليك مثال على الناتج: أيضا ، Git تلقائيا بإعداد الفرع الرئيسي المحلي لتتبع الفرع البعيد. عند تشغيل `git status` ، سترى معلومات حول ما إذا كان الفرع المحلي لديك محدثًا مع جهاز التحكم عن بُعد. إليك مثال على الناتج:
`myCommandPrompt (master) >> git status ```shell
On branch master myCommandPrompt (master) >> git status
Your branch is up-to-date with 'origin/master'. On branch master
nothing to commit, working tree clean Your branch is up-to-date with 'origin/master'.
myCommandPrompt (master) >> nothing to commit, working tree clean
` myCommandPrompt (master) >>
```
إذا كان فرعك المحلي `master` يحتوي على ثلاث تعهدات لم تقم بدفعها إلى الخادم البعيد بعد ، فإن الحالة ستقول "الفرع الخاص بك متقدم على" الأصل / الرئيسي "بـ 3 مرات." إذا كان فرعك المحلي `master` يحتوي على ثلاث تعهدات لم تقم بدفعها إلى الخادم البعيد بعد ، فإن الحالة ستقول "الفرع الخاص بك متقدم على" الأصل / الرئيسي "بـ 3 مرات."
@ -37,13 +40,15 @@ Git يسحب فقط الفرع الرئيسي عن بعد على جهاز الك
إذا كنت ترغب في استضافة مرآة لمستودع ، فيمكنك استخدام معلمة mirror. إذا كنت ترغب في استضافة مرآة لمستودع ، فيمكنك استخدام معلمة mirror.
`git clone URL-OF-REPOSITORY --mirror ```shell
` git clone URL-OF-REPOSITORY --mirror
```
بعد إجراء نسخ متطابق لمستودع ، يمكنك استنساخ المرآة المحلية من الخادم الخاص بك. بعد إجراء نسخ متطابق لمستودع ، يمكنك استنساخ المرآة المحلية من الخادم الخاص بك.
`git clone NAME-OF-DIRECTORY-ON-COMPUTER ```shell
` git clone NAME-OF-DIRECTORY-ON-COMPUTER
```
### معلومات اكثر: ### معلومات اكثر:

View File

@ -21,8 +21,9 @@ localeTitle: جايت كومت
مثال على كيفية استخدام الخيار `-m` : مثال على كيفية استخدام الخيار `-m` :
`git commit -m "My message" ```shell
` git commit -m "My message"
```
يجب أن يبدو الإخراج في المحطة الطرفية كالتالي: يجب أن يبدو الإخراج في المحطة الطرفية كالتالي:
@ -42,8 +43,9 @@ localeTitle: جايت كومت
مثال على كيفية استخدام الخيار `-a` : مثال على كيفية استخدام الخيار `-a` :
`git commit -am “My new changes” ```shell
` git commit -am “My new changes”
```
يجب أن يبدو الإخراج في المحطة الطرفية كالتالي: يجب أن يبدو الإخراج في المحطة الطرفية كالتالي:
@ -67,18 +69,20 @@ localeTitle: جايت كومت
يتيح لك خيار `--amend` تغيير `--amend` الأخير. لنفترض أنك ارتكبت للتو وأنك ارتكبت خطأ في رسالة سجل الالتزام. يمكنك تعديل أحدث الالتزام باستخدام الأمر: يتيح لك خيار `--amend` تغيير `--amend` الأخير. لنفترض أنك ارتكبت للتو وأنك ارتكبت خطأ في رسالة سجل الالتزام. يمكنك تعديل أحدث الالتزام باستخدام الأمر:
`git commit --amend -m "an updated commit message" ```shell
` git commit --amend -m "an updated commit message"
```
إذا نسيت تضمين ملف في الالتزام: إذا نسيت تضمين ملف في الالتزام:
`git add FORGOTTEN-FILE-NAME ```shell
git commit --amend -m "an updated commit message" git add FORGOTTEN-FILE-NAME
git commit --amend -m "an updated commit message"
# If you don't need to change the commit message, use the --no-edit option # If you don't need to change the commit message, use the --no-edit option
git add FORGOTTEN-FILE-NAME git add FORGOTTEN-FILE-NAME
git commit --amend --no-edit git commit --amend --no-edit
` ```
تحدث الإلتزامات السابقة لأوانها طوال الوقت في سياق تطورك اليومي. من السهل نسيان تقديم ملف أو كيفية تنسيق رسالة الالتزام الخاصة بك بشكل صحيح. يعد علم `--amend` طريقة ملائمة لإصلاح هذه الأخطاء الصغيرة. سيحل هذا الأمر محل رسالة الالتزام القديمة مع الرسالة المحدثة المحددة في الأمر. تحدث الإلتزامات السابقة لأوانها طوال الوقت في سياق تطورك اليومي. من السهل نسيان تقديم ملف أو كيفية تنسيق رسالة الالتزام الخاصة بك بشكل صحيح. يعد علم `--amend` طريقة ملائمة لإصلاح هذه الأخطاء الصغيرة. سيحل هذا الأمر محل رسالة الالتزام القديمة مع الرسالة المحدثة المحددة في الأمر.
@ -86,8 +90,9 @@ localeTitle: جايت كومت
باستخدام `--amend` ، أحد `--amend` المفيدة التي يمكنك استخدامها هو `--author` والذي يمكنك من تغيير مؤلف آخر التزام قمت به. تخيل موقفًا لم تقم بإعداد اسمك أو بريدك الإلكتروني بشكل صحيح في تكوينات git ولكنك ارتكبت بالفعل التزامًا. مع العلم `--author` يمكنك ببساطة تغييرها دون إعادة التعيين الأخير. باستخدام `--amend` ، أحد `--amend` المفيدة التي يمكنك استخدامها هو `--author` والذي يمكنك من تغيير مؤلف آخر التزام قمت به. تخيل موقفًا لم تقم بإعداد اسمك أو بريدك الإلكتروني بشكل صحيح في تكوينات git ولكنك ارتكبت بالفعل التزامًا. مع العلم `--author` يمكنك ببساطة تغييرها دون إعادة التعيين الأخير.
`git commit --amend --author="John Doe <johndoe@email.com>" ```
` git commit --amend --author="John Doe <johndoe@email.com>"
```
#### الخيار -v أو --verbose #### الخيار -v أو --verbose

View File

@ -8,34 +8,39 @@ localeTitle: جيت ميرج
بناء جملة الأمر كما يلي: بناء جملة الأمر كما يلي:
`git merge BRANCH-NAME ```shell
` git merge BRANCH-NAME
```
على سبيل المثال ، إذا كنت تعمل حاليًا في فرع باسم `dev` وترغب في دمج أي تغييرات جديدة تم إجراؤها في فرع باسم `new-features` ، فستقوم بإصدار الأمر التالي: على سبيل المثال ، إذا كنت تعمل حاليًا في فرع باسم `dev` وترغب في دمج أي تغييرات جديدة تم إجراؤها في فرع باسم `new-features` ، فستقوم بإصدار الأمر التالي:
`git merge new-features ```shell
` git merge new-features
```
**يرجى ملاحظة:** إذا كانت هناك أي تغييرات غير ملزمة على فرعك الحالي ، فلن تسمح لك Git بالدمج حتى يتم الالتزام بكافة التغييرات في الفرع الحالي. للتعامل مع هذه التغييرات ، يمكنك إما: **يرجى ملاحظة:** إذا كانت هناك أي تغييرات غير ملزمة على فرعك الحالي ، فلن تسمح لك Git بالدمج حتى يتم الالتزام بكافة التغييرات في الفرع الحالي. للتعامل مع هذه التغييرات ، يمكنك إما:
* إنشاء فرع جديد وإلزام التغييرات * إنشاء فرع جديد وإلزام التغييرات
`git checkout -b new-branch-name ```shell
git add . git checkout -b new-branch-name
git commit -m "<your commit message>" git add .
` git commit -m "<your commit message>"
```
* خبأهم * خبأهم
`git stash # add them to the stash ```shell
git merge new-features # do your merge git stash # add them to the stash
git stash pop # get the changes back into your working tree git merge new-features # do your merge
` git stash pop # get the changes back into your working tree
```
* التخلي عن كل شيء * التخلي عن كل شيء
`git reset --hard # removes all pending changes ```shell
` git reset --hard # removes all pending changes
```
## دمج الصراع ## دمج الصراع

View File

@ -15,12 +15,13 @@ localeTitle: بوابة سحب
بناء جملة هذا الأمر هو كما يلي: بناء جملة هذا الأمر هو كما يلي:
`# General format ```shell
git pull OPTIONS REPOSITORY REFSPEC # General format
git pull OPTIONS REPOSITORY REFSPEC
# Pull from specific branch # Pull from specific branch
git pull REMOTE-NAME BRANCH-NAME git pull REMOTE-NAME BRANCH-NAME
` ```
بحيث: بحيث:

View File

@ -10,8 +10,9 @@ localeTitle: Git Push
بناء جملة هذا الأمر هو كما يلي: بناء جملة هذا الأمر هو كما يلي:
`git push <repo name> <branch name> ```bash
` git push <repo name> <branch name>
```
هناك عدد من الخيارات المختلفة التي يمكنك تمريرها باستخدام الأمر ، يمكنك معرفة المزيد عنها في [وثائق Git](https://git-scm.com/docs/git-push#_options_a_id_options_a) أو تشغيل `git push --help` . هناك عدد من الخيارات المختلفة التي يمكنك تمريرها باستخدام الأمر ، يمكنك معرفة المزيد عنها في [وثائق Git](https://git-scm.com/docs/git-push#_options_a_id_options_a) أو تشغيل `git push --help` .
@ -38,8 +39,9 @@ localeTitle: Git Push
إذا كنت ترغب في دفع جميع التغييرات الخاصة بك إلى مستودع بعيد وجميع الفروع في ذلك ، يمكنك استخدام: إذا كنت ترغب في دفع جميع التغييرات الخاصة بك إلى مستودع بعيد وجميع الفروع في ذلك ، يمكنك استخدام:
`git push --all <REMOTE-NAME> ```bash
` git push --all <REMOTE-NAME>
```
بحيث: بحيث:
@ -50,8 +52,9 @@ localeTitle: Git Push
إذا كنت ترغب في تجاهل التغييرات المحلية التي تم إجراؤها على مستودع Git في GitHub (الذي يفعله معظم المطورين للحصول على إصلاح سريع لخادم التطوير) ، يمكنك استخدام الأمر -force للدفع عن طريق تجاهل تلك التغييرات. إذا كنت ترغب في تجاهل التغييرات المحلية التي تم إجراؤها على مستودع Git في GitHub (الذي يفعله معظم المطورين للحصول على إصلاح سريع لخادم التطوير) ، يمكنك استخدام الأمر -force للدفع عن طريق تجاهل تلك التغييرات.
`git push --force <REMOTE-NAME> <BRANCH-NAME> ```bash
` git push --force <REMOTE-NAME> <BRANCH-NAME>
```
بحيث: بحيث:
@ -62,8 +65,9 @@ localeTitle: Git Push
افتراضيا ستطلق `git push` مفتاح `--verify` . وهذا يعني أن بوابة git ستنفذ أي برنامج نصي مسبق الدفع من جانب العميل قد يكون تم تكوينه. إذا فشلت النصوص التمهيدية ، فستدفع البوابة. (الخطافات مسبقة الدفع هي جيدة للقيام بأشياء مثل ، والتحقق مما إذا كانت رسائل الالتزام تؤكد معايير الشركة ، أو تشغيل اختبارات الوحدة ، الخ ...). قد ترغب أحيانًا في تجاهل هذا السلوك الافتراضي ، على سبيل المثال في السيناريو الذي ترغب فيه في دفع تغييراتك إلى فرع ميزة لمساهم آخر لسحبه ، ولكن تغييرات عملك في التقدم تخترق اختبارات الوحدة. لتجاهل الخطاف ، ما عليك سوى إدخال أمر الدفع وإضافة العلامة `--no-verify` افتراضيا ستطلق `git push` مفتاح `--verify` . وهذا يعني أن بوابة git ستنفذ أي برنامج نصي مسبق الدفع من جانب العميل قد يكون تم تكوينه. إذا فشلت النصوص التمهيدية ، فستدفع البوابة. (الخطافات مسبقة الدفع هي جيدة للقيام بأشياء مثل ، والتحقق مما إذا كانت رسائل الالتزام تؤكد معايير الشركة ، أو تشغيل اختبارات الوحدة ، الخ ...). قد ترغب أحيانًا في تجاهل هذا السلوك الافتراضي ، على سبيل المثال في السيناريو الذي ترغب فيه في دفع تغييراتك إلى فرع ميزة لمساهم آخر لسحبه ، ولكن تغييرات عملك في التقدم تخترق اختبارات الوحدة. لتجاهل الخطاف ، ما عليك سوى إدخال أمر الدفع وإضافة العلامة `--no-verify`
`git push --no-verify ```bash
` git push --no-verify
```
### معلومات اكثر: ### معلومات اكثر:

View File

@ -40,31 +40,32 @@ localeTitle: الذهاب Rebase
* في vim ، اضغط على `esc` ، ثم `i` لبدء تحرير الاختبار. * في vim ، اضغط على `esc` ، ثم `i` لبدء تحرير الاختبار.
* على الجانب الأيسر يمكنك الكتابة فوق `pick` واحد من الأوامر أدناه. إذا كنت تريد إسقاط التزام في السابق وتجاهل رسالة الالتزام ، أدخل `f` في مكان `pick` الالتزام. * على الجانب الأيسر يمكنك الكتابة فوق `pick` واحد من الأوامر أدناه. إذا كنت تريد إسقاط التزام في السابق وتجاهل رسالة الالتزام ، أدخل `f` في مكان `pick` الالتزام.
`pick 452b159 <message for this commit> ```
pick 7fd4192 <message for this commit> pick 452b159 <message for this commit>
pick c1af3e5 <message for this commit> pick 7fd4192 <message for this commit>
pick 5f5e8d3 <message for this commit> pick c1af3e5 <message for this commit>
pick 5186a9f <message for this commit> pick 5f5e8d3 <message for this commit>
pick 5186a9f <message for this commit>
# Rebase 0617e63..5186a9f onto 0617e63 (30 commands) # Rebase 0617e63..5186a9f onto 0617e63 (30 commands)
# #
# Commands: # Commands:
# p, pick = use commit # p, pick = use commit
# r, reword = use commit, but edit the commit message # r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending # e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit # s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message # f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell # x, exec = run command (the rest of the line) using shell
# d, drop = remove commit # d, drop = remove commit
# #
# These lines can be re-ordered; they are executed from top to bottom. # These lines can be re-ordered; they are executed from top to bottom.
# #
# If you remove a line here THAT COMMIT WILL BE LOST. # If you remove a line here THAT COMMIT WILL BE LOST.
# #
# However, if you remove everything, the rebase will be aborted. # However, if you remove everything, the rebase will be aborted.
# #
# Note that empty commits are commented out # Note that empty commits are commented out
` ```
* أدخل `esc` متبوعة `:wq` . * أدخل `esc` متبوعة `:wq` .
* إذا تم إعادة تعيينها بنجاح ، فستحتاج إلى فرض التغييرات على `git push -f` باستخدام `git push -f` لإضافة الإصدار المعاد توجيهه إلى repub github. * إذا تم إعادة تعيينها بنجاح ، فستحتاج إلى فرض التغييرات على `git push -f` باستخدام `git push -f` لإضافة الإصدار المعاد توجيهه إلى repub github.

View File

@ -14,8 +14,9 @@ localeTitle: غيت عن بعد
### قائمة جميع مستودعات بعيد تكوينها ### قائمة جميع مستودعات بعيد تكوينها
`git remote -v ```bash
` git remote -v
```
يسرد هذا الأمر جميع المستودعات البعيدة بجانب موقعها. يسرد هذا الأمر جميع المستودعات البعيدة بجانب موقعها.
@ -27,34 +28,39 @@ localeTitle: غيت عن بعد
لإضافة مستودع تخزين عن بعد إلى مشروعك ، يمكنك تشغيل الأمر التالي: لإضافة مستودع تخزين عن بعد إلى مشروعك ، يمكنك تشغيل الأمر التالي:
`git remote add REMOTE-NAME REMOTE-URL ```bash
` git remote add REMOTE-NAME REMOTE-URL
```
يمكن أن يكون `REMOTE-URL` إما HTTPS أو SSH. يمكنك العثور على عنوان URL على GitHub بالنقر على القائمة المنسدلة "نسخ أو تنزيل" في المستودع. يمكن أن يكون `REMOTE-URL` إما HTTPS أو SSH. يمكنك العثور على عنوان URL على GitHub بالنقر على القائمة المنسدلة "نسخ أو تنزيل" في المستودع.
على سبيل المثال ، إذا كنت ترغب في إضافة مستودع تخزين بعيد ووصفه `example` ، فيمكنك تشغيل: على سبيل المثال ، إذا كنت ترغب في إضافة مستودع تخزين بعيد ووصفه `example` ، فيمكنك تشغيل:
`git remote add example https://example.org/my-repo.git ```bash
` git remote add example https://example.org/my-repo.git
```
### تحديث عنوان URL بعيد ### تحديث عنوان URL بعيد
إذا تغير عنوان URL لمستودع تخزين عن بعد ، فيمكنك تحديثه باستخدام الأمر التالي ، حيث `example` هو اسم جهاز التحكم عن بعد: إذا تغير عنوان URL لمستودع تخزين عن بعد ، فيمكنك تحديثه باستخدام الأمر التالي ، حيث `example` هو اسم جهاز التحكم عن بعد:
`git remote set-url example https://example.org/my-new-repo.git ```bash
` git remote set-url example https://example.org/my-new-repo.git
```
### حذف أجهزة التحكم عن بعد ### حذف أجهزة التحكم عن بعد
يتم حذف أجهزة التحكم عن بعد مثل: يتم حذف أجهزة التحكم عن بعد مثل:
`git remote rm REMOTE-NAME ```bash
` git remote rm REMOTE-NAME
```
يمكنك التأكد من اختفاء جهاز التحكم عن بعد من خلال عرض قائمة أجهزة التحكم عن بعد الموجودة لديك: يمكنك التأكد من اختفاء جهاز التحكم عن بعد من خلال عرض قائمة أجهزة التحكم عن بعد الموجودة لديك:
`git remote -v ```bash
` git remote -v
```
### معلومات اكثر: ### معلومات اكثر:

View File

@ -10,15 +10,17 @@ localeTitle: غيت ريسيت
يتيح لك الأمر التالي اختيار أجزاء من المحتوى بشكل انتقائي والعودة أو إلغاء تثبيتها. يتيح لك الأمر التالي اختيار أجزاء من المحتوى بشكل انتقائي والعودة أو إلغاء تثبيتها.
`git reset (--patch | -p) [tree-ish] [--] [paths] ```shell
` git reset (--patch | -p) [tree-ish] [--] [paths]
```
### قم بإلغاء تثبيت ملف ### قم بإلغاء تثبيت ملف
إذا قمت بنقل ملف إلى منطقة التدريج مع `git add` ، ولكن لم تعد ترغب في أن يكون جزءًا من التزام ، يمكنك استخدام `git reset` لإلغاء تثبيت هذا الملف: إذا قمت بنقل ملف إلى منطقة التدريج مع `git add` ، ولكن لم تعد ترغب في أن يكون جزءًا من التزام ، يمكنك استخدام `git reset` لإلغاء تثبيت هذا الملف:
`git reset HEAD FILE-TO-UNSTAGE ```shell
` git reset HEAD FILE-TO-UNSTAGE
```
ستظل التغييرات التي أجريتها في الملف ، وهذا الأمر يزيل فقط هذا الملف من منطقة التدريج الخاصة بك. ستظل التغييرات التي أجريتها في الملف ، وهذا الأمر يزيل فقط هذا الملف من منطقة التدريج الخاصة بك.
@ -26,8 +28,9 @@ localeTitle: غيت ريسيت
يقوم الأمر التالي بإعادة تعيين HEAD الفرع الحالي الخاص بك إلى `COMMIT` المعطى ويقوم بتحديث الفهرس. إنها ترجع بشكل أساسي حالة فرعك ، ثم تلتزم جميعًا بالتقدم في الكتابة على أي شيء جاء بعد نقطة إعادة التعيين. إذا حذفت الدالة `MODE` ، `--mixed` الافتراضي لها - `--mixed` : يقوم الأمر التالي بإعادة تعيين HEAD الفرع الحالي الخاص بك إلى `COMMIT` المعطى ويقوم بتحديث الفهرس. إنها ترجع بشكل أساسي حالة فرعك ، ثم تلتزم جميعًا بالتقدم في الكتابة على أي شيء جاء بعد نقطة إعادة التعيين. إذا حذفت الدالة `MODE` ، `--mixed` الافتراضي لها - `--mixed` :
`git reset MODE COMMIT ```shell
` git reset MODE COMMIT
```
الخيارات الخاصة بـ `MODE` هي: الخيارات الخاصة بـ `MODE` هي:

View File

@ -9,8 +9,9 @@ localeTitle: Git Show
بناء جملة هذا الأمر هو كما يلي: بناء جملة هذا الأمر هو كما يلي:
`git show [<options>] [<object>…​] ```bash
` git show [<options>] [<object>…​]
```
لكائنات مختلفة بوابة `git show` يعطي مخرجات مختلفة. لكائنات مختلفة بوابة `git show` يعطي مخرجات مختلفة.
@ -21,8 +22,9 @@ localeTitle: Git Show
الاستخدام الأكثر شيوعًا لـ `git show` سيكون بالاشتراك مع كائن git commit الاستخدام الأكثر شيوعًا لـ `git show` سيكون بالاشتراك مع كائن git commit
`git show 3357d63 ```bash
` git show 3357d63
```
ستحصل على إنتاج مشابه لـ ، ستحصل على إنتاج مشابه لـ ،