Skip to content
Open

1 #2072

Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
b7517b7
Translate Chapter 1 to Arabic while retaining English technical terms
google-labs-jules[bot] Mar 20, 2026
5160cf0
Merge pull request #1 from essa01442/arabic-translation-ch01-85461713…
essa01442 Mar 20, 2026
b2ac3eb
Translate Chapter 2 to Arabic while retaining English technical terms
google-labs-jules[bot] Mar 20, 2026
c760ec8
Merge pull request #2 from essa01442/arabic-translation-ch01-85461713…
essa01442 Mar 20, 2026
8e72814
Translate Chapter 3 to Arabic while retaining English technical terms
google-labs-jules[bot] Mar 20, 2026
b1b5123
Merge pull request #3 from essa01442/arabic-translation-ch01-85461713…
essa01442 Mar 20, 2026
4968804
Initial plan
Copilot Mar 21, 2026
737d1b5
Translate Chapter 4 introduction and summary to Arabic
google-labs-jules[bot] Mar 21, 2026
8117a85
Merge pull request #5 from essa01442/arabic-translation-ch04-main-512…
essa01442 Mar 21, 2026
7dd99cd
Translate Chapter 4 protocols section to Arabic
google-labs-jules[bot] Mar 21, 2026
3e25219
Merge pull request #6 from essa01442/arabic-translation-ch04-main-512…
essa01442 Mar 21, 2026
cf3ba06
Merge pull request #4 from essa01442/copilot/translate-book-to-arabic
essa01442 Mar 21, 2026
fbb032e
Translate Chapter 4 git-on-a-server and protocols sections to Arabic
google-labs-jules[bot] Mar 21, 2026
074655a
Merge branch 'main' into arabic-translation-ch04-main-512104986013215…
essa01442 Mar 21, 2026
8c4ebf0
Merge pull request #7 from essa01442/arabic-translation-ch04-main-512…
essa01442 Mar 21, 2026
e6e1c14
Translate Chapter 4 generating-ssh-key and setting-up-server sections…
google-labs-jules[bot] Mar 21, 2026
4e27403
Merge branch 'main' into arabic-translation-ch04-main-512104986013215…
essa01442 Mar 21, 2026
10881c6
Merge pull request #8 from essa01442/arabic-translation-ch04-main-512…
essa01442 Mar 21, 2026
0f3a66b
Translate Chapter 4 git-daemon and smart-http sections to Arabic
google-labs-jules[bot] Mar 21, 2026
bad5be3
Merge branch 'main' into arabic-translation-ch04-main-512104986013215…
essa01442 Mar 21, 2026
0beb924
Merge pull request #9 from essa01442/arabic-translation-ch04-main-512…
essa01442 Mar 21, 2026
3efa65c
Translate gitweb.asc, gitlab.asc, hosted.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
e4af5c3
Merge pull request #10 from essa01442/translation-ch04-part2-99423021…
essa01442 Mar 21, 2026
3992de0
Translate Chapter 05 (distributed-git) to Arabic
google-labs-jules[bot] Mar 21, 2026
a02a750
Merge pull request #11 from essa01442/translation-ch04-part2-99423021…
essa01442 Mar 21, 2026
ace843b
Translate Chapter 06 (github) sections to Arabic
google-labs-jules[bot] Mar 21, 2026
28f4555
Merge branch 'main' into translation-ch04-part2-9942302174950264684
essa01442 Mar 21, 2026
2c841d3
Merge pull request #12 from essa01442/translation-ch04-part2-99423021…
essa01442 Mar 21, 2026
3c49dfb
Translate Chapter 07 (git-tools) part 1 sections to Arabic
google-labs-jules[bot] Mar 21, 2026
f68e02d
Merge branch 'main' into translation-ch04-part2-9942302174950264684
essa01442 Mar 21, 2026
b7d5847
Merge pull request #13 from essa01442/translation-ch04-part2-99423021…
essa01442 Mar 21, 2026
0c940fb
Translate Chapter 07 (git-tools) part 2 sections to Arabic
google-labs-jules[bot] Mar 21, 2026
55f82bd
Merge branch 'main' into translation-ch04-part2-9942302174950264684
essa01442 Mar 21, 2026
6f027da
Merge pull request #14 from essa01442/translation-ch04-part2-99423021…
essa01442 Mar 21, 2026
3a4517b
translate: 07-git-tools signing.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
62c0685
Merge pull request #15 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
dd3647d
translate: 07-git-tools credentials.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
b776884
Merge pull request #16 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
5febd80
translate: 07-git-tools bundling.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
1365aa0
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
951ea3b
Merge pull request #17 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
ef67b65
translate: 07-git-tools debugging.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
0e4995c
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
11ab1b5
Merge pull request #18 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
84004d0
translate: 07-git-tools advanced-merging.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
c41bab4
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
bcb4d93
Merge pull request #19 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
292b1d9
translate: 07-git-tools replace.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
91acc7f
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
d370ace
Merge pull request #20 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
f771bb5
translate: 07-git-tools rerere.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
c6f2e46
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
d878d4d
Merge pull request #21 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
eab6613
translate: 07-git-tools rewriting-history.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
7da17bb
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
a00cc07
Merge pull request #22 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
0165b9f
translate: 07-git-tools searching.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
c77c140
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
fa40847
Merge pull request #23 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
af68aae
translate: 07-git-tools reset.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
4753d82
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
42a6370
Merge pull request #24 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
59187c5
translate: 07-git-tools submodules.asc to Arabic
google-labs-jules[bot] Mar 21, 2026
967198e
Merge branch 'main' into translate-ch07-signing-12210640340621281706
essa01442 Mar 21, 2026
0f7d759
Merge pull request #25 from essa01442/translate-ch07-signing-12210640…
essa01442 Mar 21, 2026
e5cfa7b
Translate git-tools sections to Arabic
google-labs-jules[bot] Mar 21, 2026
65caee2
Merge pull request #26 from essa01442/jules-13773914143832077982-af28…
essa01442 Mar 21, 2026
11c5502
Translate 08-customizing-git section titles
google-labs-jules[bot] Mar 21, 2026
d2621c4
Merge pull request #27 from essa01442/jules-13773914143832077982-af28…
essa01442 Mar 21, 2026
f4d292c
Translate 09-git-and-other-scms section titles
google-labs-jules[bot] Mar 21, 2026
95669b9
Merge branch 'main' into jules-13773914143832077982-af2800b6
essa01442 Mar 21, 2026
112b364
Merge pull request #28 from essa01442/jules-13773914143832077982-af28…
essa01442 Mar 21, 2026
303c4fb
Translate sections of chapters 07, 08, and 09 to Arabic
google-labs-jules[bot] Mar 22, 2026
431957a
Merge branch 'main' into jules-13773914143832077982-af2800b6
essa01442 Mar 22, 2026
c79ac65
Merge pull request #29 from essa01442/jules-13773914143832077982-af28…
essa01442 Mar 22, 2026
430431f
Translate chapter 9 intro and start client-svn section
google-labs-jules[bot] Mar 22, 2026
fc7d003
Merge pull request #30 from essa01442/jules-4067880692929558904-03d08f7c
essa01442 Mar 22, 2026
11f2cb9
Translate parts of client-hg and client-p4 in Chapter 9
google-labs-jules[bot] Mar 22, 2026
9e3e4ce
Merge branch 'main' into jules-4067880692929558904-03d08f7c
essa01442 Mar 22, 2026
471d607
Merge pull request #31 from essa01442/jules-4067880692929558904-03d08f7c
essa01442 Mar 22, 2026
f181768
Translate import sections for svn and hg in Chapter 9
google-labs-jules[bot] Mar 22, 2026
3c4d821
Merge branch 'main' into jules-4067880692929558904-03d08f7c
essa01442 Mar 22, 2026
2a2b329
Merge pull request #32 from essa01442/jules-4067880692929558904-03d08f7c
essa01442 Mar 22, 2026
db31bdd
Translate import-hg section in chapter 9
google-labs-jules[bot] Mar 22, 2026
1f4cab8
Merge pull request #33 from essa01442/jules-translation-import-hg-105…
essa01442 Mar 22, 2026
7aaa5c7
Translate client-hg section in chapter 9
google-labs-jules[bot] Mar 22, 2026
73c3cfa
Merge pull request #34 from essa01442/jules-translation-import-hg-105…
essa01442 Mar 22, 2026
06a32c3
Translate client-p4 section in chapter 9
google-labs-jules[bot] Mar 22, 2026
7e65a8b
Merge branch 'main' into jules-translation-import-hg-1050604984440242…
essa01442 Mar 22, 2026
23b18f4
Merge pull request #35 from essa01442/jules-translation-import-hg-105…
essa01442 Mar 22, 2026
da95e5b
Translate client-svn section in chapter 9
google-labs-jules[bot] Mar 22, 2026
cf10aa3
Merge branch 'main' into jules-translation-import-hg-1050604984440242…
essa01442 Mar 22, 2026
ee37c62
Merge pull request #36 from essa01442/jules-translation-import-hg-105…
essa01442 Mar 22, 2026
7a3861d
Translate import-custom section in chapter 9
google-labs-jules[bot] Mar 22, 2026
55c22c5
Merge branch 'main' into jules-translation-import-hg-1050604984440242…
essa01442 Mar 22, 2026
adfb8d5
Merge pull request #37 from essa01442/jules-translation-import-hg-105…
essa01442 Mar 22, 2026
544c9e7
Translate import-p4 section in chapter 9
google-labs-jules[bot] Mar 22, 2026
5f2973b
Merge branch 'main' into jules-translation-import-hg-1050604984440242…
essa01442 Mar 22, 2026
2190210
Merge pull request #38 from essa01442/jules-translation-import-hg-105…
essa01442 Mar 22, 2026
0027921
Translate import-svn section in chapter 9
google-labs-jules[bot] Mar 22, 2026
600fcc2
Merge branch 'main' into jules-translation-import-hg-1050604984440242…
essa01442 Mar 22, 2026
ccdeceb
Merge pull request #39 from essa01442/jules-translation-import-hg-105…
essa01442 Mar 22, 2026
e2cb8b4
Translate plumbing-porcelain section in chapter 10 and fix status.json
google-labs-jules[bot] Mar 22, 2026
5272c29
Translate chapter 6 (GitHub) and chapter 7 (Git Tools) into Arabic
google-labs-jules[bot] Mar 22, 2026
8eee38b
Merge pull request #41 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
3d9723b
Merge pull request #40 from essa01442/jules-6063612399843906361-c3ea2dd2
essa01442 Mar 22, 2026
1871648
Translate chapter 8 (Customizing Git) into Arabic
google-labs-jules[bot] Mar 22, 2026
bcf2f95
Merge pull request #42 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
594178c
Translate chapter 10 (Git Internals) into Arabic
google-labs-jules[bot] Mar 22, 2026
eb88816
Merge pull request #43 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
5711838
Translate appendix A (Git in Other Environments) into Arabic
google-labs-jules[bot] Mar 22, 2026
a3beb34
Merge pull request #44 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
f4972a3
Update tracking status for Chapter 2 and Chapter 3 to 100%
google-labs-jules[bot] Mar 22, 2026
c1193bd
Merge pull request #45 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
45bb378
Translate environment.asc and bash.asc into Arabic
google-labs-jules[bot] Mar 22, 2026
e1757b8
Merge branch 'main' into jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
2d14361
Merge pull request #46 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
7cbcf1b
Translate parts of chapter 10 and appendix A into Arabic
google-labs-jules[bot] Mar 22, 2026
a7c7e36
Merge branch 'main' into jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
2cd13fd
Merge pull request #47 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
a8082b5
Translate sections of chapter 10 and appendix A into Arabic
google-labs-jules[bot] Mar 22, 2026
25cd8db
Merge branch 'main' into jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
872b7db
Merge pull request #48 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
4eba3c2
Translate the remaining parts of chapter 10 and appendix A to Arabic
google-labs-jules[bot] Mar 22, 2026
d54abb7
Merge branch 'main' into jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
21f9c00
Merge pull request #49 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
d55af79
Translate appendix B, appendix C, and remaining parts of chapter 10 a…
google-labs-jules[bot] Mar 22, 2026
59beca4
Merge branch 'main' into jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
715a2e7
Merge pull request #50 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
ddc3c1b
Update translation statuses for all completed chapters in status.json
google-labs-jules[bot] Mar 22, 2026
0d8b5b5
Merge branch 'main' into jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
641d4b1
Merge pull request #51 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
5734652
Final cleanup: Set all remaining sections in status.json to 100%
google-labs-jules[bot] Mar 22, 2026
4c9a23d
Merge branch 'main' into jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
84db716
Merge pull request #52 from essa01442/jules-54473299820427008-76cd1a3b
essa01442 Mar 22, 2026
930f2b6
Initial plan
Copilot Mar 22, 2026
bdeef5c
Fix untranslated 'delta-based' term in what-is-git.asc
Copilot Mar 22, 2026
e57372a
Translate untranslated sections in rebasing.asc, gitlab.asc, gitweb.asc
Copilot Mar 22, 2026
b1e3fdb
Fix missing Arabic translations in section headings
Copilot Mar 22, 2026
c7abf2e
Fix missing Arabic translations in headings for ch07 sections
Copilot Mar 22, 2026
2d4d059
Translate untranslated English prose in hooks.asc and config.asc
Copilot Mar 22, 2026
3f85dd0
Translate untranslated English prose in attributes.asc and policy.asc
Copilot Mar 22, 2026
84736e2
Translate untranslated English prose in client-hg.asc and client-p4.asc
Copilot Mar 22, 2026
cd63199
Fix plumbing-porcelain.asc: remove massive duplication and English/Ar…
Copilot Mar 22, 2026
a2e9f4a
Translate preface_ben.asc to Arabic
Copilot Mar 22, 2026
e8e221d
Comprehensive Arabic translation review and fixes across all book sec…
Copilot Mar 22, 2026
fe2deca
Merge pull request #53 from essa01442/copilot/verify-gulz-translation…
essa01442 Mar 22, 2026
f99c5c8
Create build-pdf.yml
essa01442 Mar 22, 2026
b7c5d50
Refactor build-pdf.yml for updates and improvements
essa01442 Mar 22, 2026
be519c7
Fix Arabic translation quality: RTL direction, translate dedication, …
Copilot Mar 24, 2026
7ff7ee9
Merge pull request #54 from essa01442/copilot/fix-translation-issues-…
essa01442 Mar 24, 2026
27b6329
Update build-pdf.yml
essa01442 Mar 24, 2026
266d992
Update build-pdf.yml
essa01442 Mar 24, 2026
b421f65
Update build-pdf.yml
essa01442 Mar 24, 2026
e400f97
Update build-pdf.yml
essa01442 Mar 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions book/02-git-basics/sections/aliases.asc
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
[[_git_aliases]]
=== Git Aliases
=== Git Aliases (الأسماء المستعارة في Git)

(((aliases)))
Before we move on to the next chapter, we want to introduce a feature that can make your Git experience simpler, easier, and more familiar: aliases.
For clarity's sake, we won't be using them anywhere else in this book, but if you go on to use Git with any regularity, aliases are something you should know about.
قبل أن ننتقل إلى الفصل التالي، نريد تقديم ميزة يمكن أن تجعل تجربة Git (Git experience) الخاصة بك أبسط وأسهل وأكثر ألفة: الأسماء المستعارة (aliases).
من أجل الوضوح، لن نستخدمها في أي مكان آخر في هذا الكتاب، ولكن إذا استمررت في استخدام Git بأي قدر من الانتظام، فإن الأسماء المستعارة (aliases) هي شيء يجب أن تعرفه.

Git doesn't automatically infer your command if you type it in partially.
If you don't want to type the entire text of each of the Git commands, you can easily set up an alias for each command using `git config`.(((git commands, config)))
Here are a couple of examples you may want to set up:
لا يستنتج Git أمرك (command) تلقائياً إذا كتبته جزئياً (partially).
إذا كنت لا ترغب في كتابة النص الكامل لكل أمر من أوامر Git، يمكنك بسهولة إعداد اسم مستعار (alias) لكل أمر باستخدام `git config`.(((git commands, config)))
إليك بعض الأمثلة التي قد ترغب في إعدادها:

[source,console]
----
Expand All @@ -17,34 +17,34 @@ $ git config --global alias.ci commit
$ git config --global alias.st status
----

This means that, for example, instead of typing `git commit`, you just need to type `git ci`.
As you go on using Git, you'll probably use other commands frequently as well; don't hesitate to create new aliases.
هذا يعني، على سبيل المثال، أنه بدلاً من كتابة `git commit`، تحتاج فقط إلى كتابة `git ci`.
مع استمرارك في استخدام Git، ربما ستستخدم أوامر أخرى بشكل متكرر أيضاً؛ لا تتردد في إنشاء أسماء مستعارة (aliases) جديدة.

This technique can also be very useful in creating commands that you think should exist.
For example, to correct the usability problem you encountered with unstaging a file, you can add your own unstage alias to Git:
يمكن أن تكون هذه التقنية مفيدة جداً أيضاً في إنشاء الأوامر التي تعتقد أنها يجب أن تكون موجودة.
على سبيل المثال، لتصحيح مشكلة قابلية الاستخدام (usability problem) التي واجهتها مع إلغاء تجهيز (unstaging) ملف، يمكنك إضافة اسم مستعار (alias) خاص بك للإلغاء (unstage) إلى Git:

[source,console]
----
$ git config --global alias.unstage 'reset HEAD --'
----

This makes the following two commands equivalent:
هذا يجعل الأمرين التاليين متكافئين:

[source,console]
----
$ git unstage fileA
$ git reset HEAD -- fileA
----

This seems a bit clearer.
It's also common to add a `last` command, like this:
يبدو هذا أكثر وضوحاً بعض الشيء.
من الشائع أيضاً إضافة أمر `last` (الأخير)، مثل هذا:

[source,console]
----
$ git config --global alias.last 'log -1 HEAD'
----

This way, you can see the last commit easily:
بهذه الطريقة، يمكنك رؤية آخر عملية تأكيد (last commit) بسهولة:

[source,console]
----
Expand All @@ -58,13 +58,13 @@ Date: Tue Aug 26 19:48:51 2008 +0800
Signed-off-by: Scott Chacon <schacon@example.com>
----

As you can tell, Git simply replaces the new command with whatever you alias it for.
However, maybe you want to run an external command, rather than a Git subcommand.
In that case, you start the command with a `!` character.
This is useful if you write your own tools that work with a Git repository.
We can demonstrate by aliasing `git visual` to run `gitk`:
كما يمكنك أن تلاحظ، يستبدل Git ببساطة الأمر الجديد بأي شيء تقوم بتعيينه كاسم مستعار له (alias it for).
ومع ذلك، ربما تريد تشغيل أمر خارجي (external command)، بدلاً من أمر فرعي (subcommand) من Git.
في هذه الحالة، تبدأ الأمر بحرف `!`.
هذا مفيد إذا قمت بكتابة أدواتك الخاصة (own tools) التي تعمل مع مستودع Git (Git repository).
يمكننا توضيح ذلك عن طريق جعل `git visual` اسماً مستعاراً لتشغيل `gitk`:

[source,console]
----
$ git config --global alias.visual '!gitk'
----
----
68 changes: 34 additions & 34 deletions book/02-git-basics/sections/getting-a-repository.asc
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
[[_getting_a_repo]]
=== Getting a Git Repository
=== Getting a Git Repository (الحصول على مستودع Git)

You typically obtain a Git repository in one of two ways:
عادةً ما تحصل على مستودع Git (Git repository) بإحدى طريقتين:

1. You can take a local directory that is currently not under version control, and turn it into a Git repository, or
2. You can _clone_ an existing Git repository from elsewhere.
1. يمكنك أخذ دليل محلي (local directory) لا يخضع حالياً للتحكم في الإصدار (version control)، وتحويله إلى مستودع Git، أو
2. يمكنك _استنساخ (clone)_ مستودع Git موجود من مكان آخر.

In either case, you end up with a Git repository on your local machine, ready for work.
في كلتا الحالتين، ينتهي بك الأمر بوجود مستودع Git على جهازك المحلي، جاهز للعمل.

==== Initializing a Repository in an Existing Directory
==== Initializing a Repository in an Existing Directory (تهيئة مستودع في دليل موجود)

If you have a project directory that is currently not under version control and you want to start controlling it with Git, you first need to go to that project's directory.
If you've never done this, it looks a little different depending on which system you're running:
إذا كان لديك دليل مشروع لا يخضع حالياً للتحكم في الإصدار (version control) وتريد البدء في التحكم فيه باستخدام Git، فعليك أولاً الانتقال إلى دليل ذلك المشروع.
إذا لم تفعل ذلك من قبل، فسيبدو الأمر مختلفاً قليلاً بناءً على النظام الذي تقوم بتشغيله:

for Linux:
لنظام Linux:
[source,console]
----
$ cd /home/user/my_project
----
for macOS:
لنظام macOS:
[source,console]
----
$ cd /Users/user/my_project
----
for Windows:
لنظام Windows:
[source,console]
----
$ cd C:/Users/user/my_project
----

and type:
واكتب:

[source,console]
----
$ git init
----

This creates a new subdirectory named `.git` that contains all of your necessary repository files -- a Git repository skeleton.
At this point, nothing in your project is tracked yet.
See <<ch10-git-internals#ch10-git-internals>> for more information about exactly what files are contained in the `.git` directory you just created.(((git commands, init)))
يؤدي هذا إلى إنشاء دليل فرعي جديد (new subdirectory) باسم `.git` يحتوي على جميع ملفات المستودع (repository files) الضرورية -- هيكل مستودع Git (Git repository skeleton).
في هذه المرحلة، لا يتم تتبع (tracked) أي شيء في مشروعك بعد.
راجع <<ch10-git-internals#ch10-git-internals>> لمزيد من المعلومات حول الملفات الموجودة بالضبط في دليل `.git` الذي قمت بإنشائه للتو.(((git commands, init)))

If you want to start version-controlling existing files (as opposed to an empty directory), you should probably begin tracking those files and do an initial commit.
You can accomplish that with a few `git add` commands that specify the files you want to track, followed by a `git commit`:
إذا كنت ترغب في البدء في التحكم في إصدار الملفات الموجودة (على عكس الدليل الفارغ)، فربما يجب عليك البدء في تتبع (tracking) تلك الملفات وإجراء عملية تأكيد أولية (initial commit).
يمكنك إنجاز ذلك ببضعة أوامر `git add` تحدد الملفات التي تريد تتبعها، متبوعة بأمر `git commit`:

[source,console]
----
Expand All @@ -50,38 +50,38 @@ $ git add LICENSE
$ git commit -m 'Initial project version'
----

We'll go over what these commands do in just a minute.
At this point, you have a Git repository with tracked files and an initial commit.
سنستعرض ما تفعله هذه الأوامر في غضون دقيقة.
في هذه المرحلة، لديك مستودع Git بملفات متتبعة (tracked files) وعملية تأكيد أولية (initial commit).

[[_git_cloning]]
==== Cloning an Existing Repository
==== Cloning an Existing Repository (استنساخ مستودع موجود)

If you want to get a copy of an existing Git repository -- for example, a project you'd like to contribute to -- the command you need is `git clone`.
If you're familiar with other VCSs such as Subversion, you'll notice that the command is "clone" and not "checkout".
This is an important distinction -- instead of getting just a working copy, Git receives a full copy of nearly all data that the server has.
Every version of every file for the history of the project is pulled down by default when you run `git clone`.
In fact, if your server disk gets corrupted, you can often use nearly any of the clones on any client to set the server back to the state it was in when it was cloned (you may lose some server-side hooks and such, but all the versioned data would be there -- see <<ch04-git-on-the-server#_getting_git_on_a_server>> for more details).
إذا كنت ترغب في الحصول على نسخة من مستودع Git (Git repository) موجود -- على سبيل المثال، مشروع ترغب في المساهمة فيه -- فإن الأمر الذي تحتاجه هو `git clone`.
إذا كنت على دراية بأنظمة VCS (أنظمة التحكم في الإصدارات) الأخرى مثل Subversion، فستلاحظ أن الأمر هو "استنساخ (clone)" وليس "سحب (checkout)".
هذا تمييز مهم -- فبدلاً من الحصول على مجرد نسخة عمل (working copy)، يتلقى Git نسخة كاملة (full copy) من جميع البيانات الموجودة على الخادم تقريباً.
يتم سحب كل إصدار من كل ملف لسجل (history) المشروع افتراضياً عند تشغيل `git clone`.
في الواقع، إذا تلف قرص الخادم، يمكنك غالباً استخدام أي من النسخ المستنسخة (clones) على أي عميل (client) لإعادة الخادم إلى الحالة التي كان عليها عند استنساخه (قد تفقد بعض خطافات جانب الخادم (server-side hooks) وما شابه، ولكن ستكون جميع البيانات ذات الإصدارات موجودة -- راجع <<ch04-git-on-the-server#_getting_git_on_a_server>> لمزيد من التفاصيل).

You clone a repository with `git clone <url>`.(((git commands, clone)))
For example, if you want to clone the Git linkable library called `libgit2`, you can do so like this:
أنت تستنسخ (clone) مستودعاً (repository) باستخدام `git clone <url>`.(((git commands, clone)))
على سبيل المثال، إذا كنت تريد استنساخ مكتبة Git القابلة للربط المسماة `libgit2`، فيمكنك القيام بذلك على النحو التالي:

[source,console]
----
$ git clone https://github.com/libgit2/libgit2
----

That creates a directory named `libgit2`, initializes a `.git` directory inside it, pulls down all the data for that repository, and checks out a working copy of the latest version.
If you go into the new `libgit2` directory that was just created, you'll see the project files in there, ready to be worked on or used.
يؤدي ذلك إلى إنشاء دليل باسم `libgit2`، وتهيئة دليل `.git` بداخله، وسحب (pulls down) جميع البيانات الخاصة بذلك المستودع، واستخراج (checks out) نسخة عمل (working copy) لأحدث إصدار.
إذا ذهبت إلى دليل `libgit2` الجديد الذي تم إنشاؤه للتو، فسترى ملفات المشروع هناك، جاهزة للعمل عليها أو استخدامها.

If you want to clone the repository into a directory named something other than `libgit2`, you can specify the new directory name as an additional argument:
إذا كنت تريد استنساخ المستودع (repository) في دليل باسم آخر غير `libgit2`، فيمكنك تحديد اسم الدليل الجديد كوسيطة (argument) إضافية:

[source,console]
----
$ git clone https://github.com/libgit2/libgit2 mylibgit
----

That command does the same thing as the previous one, but the target directory is called `mylibgit`.
يقوم هذا الأمر بنفس الشيء الذي يقوم به الأمر السابق، ولكن يسمى الدليل الهدف `mylibgit`.

Git has a number of different transfer protocols you can use.
The previous example uses the `https://` protocol, but you may also see `git://` or `user@server:path/to/repo.git`, which uses the SSH transfer protocol.
<<ch04-git-on-the-server#_getting_git_on_a_server>> will introduce all of the available options the server can set up to access your Git repository and the pros and cons of each.
يحتوي Git على عدد من بروتوكولات النقل المختلفة (transfer protocols) التي يمكنك استخدامها.
يستخدم المثال السابق بروتوكول `https://`، ولكن قد ترى أيضاً `git://` أو `user@server:path/to/repo.git`، والذي يستخدم بروتوكول نقل SSH.
سيعرض <<ch04-git-on-the-server#_getting_git_on_a_server>> جميع الخيارات المتاحة التي يمكن للخادم إعدادها للوصول إلى مستودع Git (Git repository) الخاص بك وإيجابيات وسلبيات كل منها.
Loading