Skip to content
Open

1 #2072

Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
Translate Chapter 4 git-daemon and smart-http sections to Arabic
- Translated `book/04-git-server/sections/git-daemon.asc` and `book/04-git-server/sections/smart-http.asc` to Arabic.
- Preserved technical terms in parentheses next to Arabic translation.
- Kept AsciiDoc formatting intact.
- Updated `status.json` to mark translated files as 100% complete.

Co-authored-by: essa01442 <73353997+essa01442@users.noreply.github.com>
  • Loading branch information
google-labs-jules[bot] and essa01442 committed Mar 21, 2026
commit 0f3a66bcd64cdba95d26648238fa70b873e2a46b
34 changes: 17 additions & 17 deletions book/04-git-server/sections/generating-ssh-key.asc
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
[[_generate_ssh_key]]
=== Generating Your SSH Public Key
=== Generating Your SSH Public Key (إنشاء مفتاحك العام لـ SSH)

(((SSH keys)))
Many Git servers authenticate using SSH public keys.
In order to provide a public key, each user in your system must generate one if they don't already have one.
This process is similar across all operating systems.
First, you should check to make sure you don't already have a key.
By default, a user's SSH keys are stored in that user's `~/.ssh` directory.
You can easily check to see if you have a key already by going to that directory and listing the contents:
تتم مصادقة (authenticate) العديد من خوادم Git باستخدام المفاتيح العامة لـ SSH (SSH public keys).
من أجل توفير مفتاح عام (public key)، يجب على كل مستخدم في نظامك إنشاء واحد إذا لم يكن لديه واحد بالفعل.
هذه العملية متشابهة عبر جميع أنظمة التشغيل (operating systems).
أولاً، يجب عليك التحقق للتأكد من أنه ليس لديك مفتاح (key) بالفعل.
بشكل افتراضي، يتم تخزين مفاتيح SSH (SSH keys) الخاصة بالمستخدم في دليل `~/.ssh` الخاص بذلك المستخدم.
يمكنك بسهولة التحقق لمعرفة ما إذا كان لديك مفتاح بالفعل عن طريق الانتقال إلى ذلك الدليل وسرد (listing) محتوياته:

[source,console]
----
Expand All @@ -17,9 +17,9 @@ authorized_keys2 id_dsa known_hosts
config id_dsa.pub
----

You're looking for a pair of files named something like `id_dsa` or `id_rsa` and a matching file with a `.pub` extension.
The `.pub` file is your public key, and the other file is the corresponding private key.
If you don't have these files (or you don't even have a `.ssh` directory), you can create them by running a program called `ssh-keygen`, which is provided with the SSH package on Linux/macOS systems and comes with Git for Windows:
أنت تبحث عن زوج (pair) من الملفات تسمى شيئاً مثل `id_dsa` أو `id_rsa` وملف مطابق بامتداد `.pub`.
الملف `.pub` هو مفتاحك العام (public key)، والملف الآخر هو المفتاح الخاص (private key) المقابل.
إذا لم تكن لديك هذه الملفات (أو ليس لديك حتى دليل `.ssh`)، يمكنك إنشاؤها عن طريق تشغيل برنامج يسمى `ssh-keygen`، والذي يتم توفيره مع حزمة SSH على أنظمة Linux/macOS ويأتي مع Git لنظام Windows (Git for Windows):

[source,console]
----
Expand All @@ -35,13 +35,13 @@ The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local
----

First it confirms where you want to save the key (`.ssh/id_rsa`), and then it asks twice for a passphrase, which you can leave empty if you don't want to type a password when you use the key.
However, if you do use a password, make sure to add the `-o` option; it saves the private key in a format that is more resistant to brute-force password cracking than is the default format.
You can also use the `ssh-agent` tool to prevent having to enter the password each time.
أولاً يؤكد المكان الذي تريد حفظ المفتاح فيه (`.ssh/id_rsa`)، ثم يطلب مرتين إدخال عبارة مرور (passphrase)، والتي يمكنك تركها فارغة إذا كنت لا تريد كتابة كلمة مرور (password) عند استخدام المفتاح.
ومع ذلك، إذا كنت تستخدم كلمة مرور (password)، فتأكد من إضافة الخيار `-o`؛ فهو يحفظ المفتاح الخاص (private key) بتنسيق أكثر مقاومة لاختراق كلمات المرور بالقوة الغاشمة (brute-force password cracking) من التنسيق الافتراضي.
يمكنك أيضاً استخدام أداة `ssh-agent` لتجنب الاضطرار إلى إدخال كلمة المرور (password) في كل مرة.

Now, each user that does this has to send their public key to you or whoever is administrating the Git server (assuming you're using an SSH server setup that requires public keys).
All they have to do is copy the contents of the `.pub` file and email it.
The public keys look something like this:
الآن، يجب على كل مستخدم يفعل ذلك إرسال مفتاحه العام (public key) إليك أو إلى الشخص الذي يدير خادم Git (بافتراض أنك تستخدم إعداد خادم SSH (SSH server setup) يتطلب مفاتيح عامة).
كل ما عليهم فعله هو نسخ محتويات الملف `.pub` وإرسالها بالبريد الإلكتروني.
تبدو المفاتيح العامة (public keys) كالتالي:

[source,console]
----
Expand All @@ -54,4 +54,4 @@ mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local
----

For a more in-depth tutorial on creating an SSH key on multiple operating systems, see the GitHub guide on SSH keys at https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent[^].
للحصول على برنامج تعليمي (tutorial) أكثر تعمقاً حول إنشاء مفتاح SSH (SSH key) على أنظمة تشغيل (operating systems) متعددة، راجع دليل GitHub حول مفاتيح SSH على https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent[^].
42 changes: 21 additions & 21 deletions book/04-git-server/sections/git-daemon.asc
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
=== Git Daemon
=== Git Daemon (الخادم الخفي لـ Git)

(((serving repositories, git protocol)))
Next we'll set up a daemon serving repositories using the "`Git`" protocol.
This is a common choice for fast, unauthenticated access to your Git data.
Remember that since this is not an authenticated service, anything you serve over this protocol is public within its network.
بعد ذلك سنقوم بإعداد خادم خفي (daemon) يقدم المستودعات (serving repositories) باستخدام بروتوكول "`Git`".
هذا خيار شائع للوصول السريع وغير المصادق عليه (fast, unauthenticated access) إلى بيانات Git الخاصة بك.
تذكر أنه نظراً لأن هذه ليست خدمة مصادق عليها (authenticated service)، فإن أي شيء تقدمه (serve) عبر هذا البروتوكول يكون عاماً (public) داخل شبكته.

If you're running this on a server outside your firewall, it should be used only for projects that are publicly visible to the world.
If the server you're running it on is inside your firewall, you might use it for projects that a large number of people or computers (continuous integration or build servers) have read-only access to, when you don't want to have to add an SSH key for each.
إذا كنت تقوم بتشغيل هذا على خادم خارج جدار الحماية (firewall) الخاص بك، فيجب استخدامه فقط للمشاريع المرئية علناً (publicly visible) للعالم.
إذا كان الخادم الذي تقوم بتشغيله عليه يقع داخل جدار الحماية (firewall) الخاص بك، فيمكنك استخدامه للمشاريع التي يتمتع فيها عدد كبير من الأشخاص أو أجهزة الكمبيوتر (خوادم التكامل المستمر (continuous integration) أو البناء (build servers)) بوصول للقراءة فقط (read-only access)، عندما لا ترغب في الاضطرار إلى إضافة مفتاح SSH (SSH key) لكل منها.

In any case, the Git protocol is relatively easy to set up.
Basically, you need to run this command in a daemonized manner:(((git commands, daemon)))
على أي حال، من السهل نسبياً إعداد (set up) بروتوكول Git.
في الأساس، تحتاج إلى تشغيل هذا الأمر بطريقة الخفي (daemonized manner):(((git commands, daemon)))

[source,console]
----
$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
----

The `--reuseaddr` option allows the server to restart without waiting for old connections to time out, while the `--base-path` option allows people to clone projects without specifying the entire path, and the path at the end tells the Git daemon where to look for repositories to export.
If you're running a firewall, you'll also need to punch a hole in it at port 9418 on the box you're setting this up on.
يسمح الخيار `--reuseaddr` للخادم بإعادة التشغيل (restart) دون انتظار انتهاء مهلة الاتصالات القديمة (old connections to time out)، بينما يسمح الخيار `--base-path` للأشخاص باستنساخ (clone) المشاريع دون تحديد المسار بأكمله (entire path)، والمسار الموجود في النهاية يخبر الخادم الخفي لـ Git (Git daemon) بمكان البحث عن المستودعات (repositories) لتصديرها (export).
إذا كنت تقوم بتشغيل جدار حماية (firewall)، فستحتاج أيضاً إلى إحداث ثقب (punch a hole) فيه عند المنفذ (port) 9418 على الجهاز الذي تقوم بإعداد هذا عليه.

You can daemonize this process a number of ways, depending on the operating system you're running.
يمكنك جعل هذه العملية خفية (daemonize this process) بعدة طرق، اعتماداً على نظام التشغيل (operating system) الذي تقوم بتشغيله.

Since `systemd` is the most common init system among modern Linux distributions, you can use it for that purpose.
Simply place a file in `/etc/systemd/system/git-daemon.service` with these contents:
نظراً لأن `systemd` هو نظام التهيئة (init system) الأكثر شيوعاً بين توزيعات Linux (Linux distributions) الحديثة، فيمكنك استخدامه لهذا الغرض.
ببساطة ضع ملفاً في `/etc/systemd/system/git-daemon.service` بهذه المحتويات:

[source,console]
----
Expand All @@ -46,21 +46,21 @@ Group=git
WantedBy=multi-user.target
----

You might have noticed that Git daemon is started here with `git` as both group and user.
Modify it to fit your needs and make sure the provided user exists on the system.
Also, check that the Git binary is indeed located at `/usr/bin/git` and change the path if necessary.
ربما لاحظت أنه يتم بدء تشغيل الخادم الخفي لـ Git (Git daemon) هنا باستخدام `git` كمجموعة (group) ومستخدم (user) على حد سواء.
قم بتعديله ليناسب احتياجاتك وتأكد من وجود المستخدم (user) المقدم على النظام.
تحقق أيضاً من أن الملف الثنائي لـ Git (Git binary) موجود بالفعل في `/usr/bin/git` وقم بتغيير المسار (path) إذا لزم الأمر.

Finally, you'll run `systemctl enable git-daemon` to automatically start the service on boot, and can start and stop the service with, respectively, `systemctl start git-daemon` and `systemctl stop git-daemon`.
أخيراً، ستقوم بتشغيل `systemctl enable git-daemon` لبدء تشغيل الخدمة (service) تلقائياً عند التمهيد (boot)، ويمكنك بدء الخدمة وإيقافها (start and stop the service) باستخدام `systemctl start git-daemon` و `systemctl stop git-daemon` على التوالي.

On other systems, you may want to use `xinetd`, a script in your `sysvinit` system, or something else -- as long as you get that command daemonized and watched somehow.
على الأنظمة الأخرى، قد ترغب في استخدام `xinetd`، وهو برنامج نصي (script) في نظام `sysvinit` الخاص بك، أو شيء آخر -- طالما أنك تحصل على هذا الأمر كخفي (daemonized) ومراقب (watched) بطريقة ما.

Next, you have to tell Git which repositories to allow unauthenticated Git server-based access to.
You can do this in each repository by creating a file named `git-daemon-export-ok`.
بعد ذلك، يجب عليك إخبار Git بالمستودعات (repositories) التي يجب السماح فيها بالوصول غير المصادق عليه (unauthenticated) المستند إلى خادم Git (Git server-based access).
يمكنك القيام بذلك في كل مستودع عن طريق إنشاء ملف يسمى `git-daemon-export-ok`.

[source,console]
----
$ cd /path/to/project.git
$ touch git-daemon-export-ok
----

The presence of that file tells Git that it's OK to serve this project without authentication.
يخبر وجود ذلك الملف Git أنه لا بأس بتقديم (serve) هذا المشروع دون مصادقة (authentication).
Loading