-
1. شروع به کار
- 1.1 دربارهٔ کنترل نسخه
- 1.2 تاریخچهٔ کوتاهی از گیت
- 1.3 گیت چیست؟
- 1.4 خط فرمان
- 1.5 نصب گیت
- 1.6 اولین راهاندازی گیت
- 1.7 کمک گرفتن
- 1.8 خلاصه
-
2. مقدمات گیت
- 2.1 دستیابی به یک مخزن گیت
- 2.2 ثبت تغییرات در مخزن
- 2.3 دیدن تاریخچهٔ کامیتها
- 2.4 بازگردانی کارها
- 2.5 کار با ریموتها
- 2.6 برچسبگذاری
- 2.7 نامهای مستعار در گیت
- 2.8 خلاصه
-
3. شاخهسازی در گیت
- 3.1 شاخهها در یک کلمه
- 3.2 شاخهسازی و ادغام مقدماتی
- 3.3 مدیریت شاخه
- 3.4 روند کاری شاخهسازی
- 3.5 شاخههای ریموت
- 3.6 ریبیسکردن
- 3.7 خلاصه
-
4. گیت روی سرور
- 4.1 پروتکلها
- 4.2 راهاندازی گیت در سرور
- 4.3 ساختن کلید عمومی SSH
- 4.4 نصب و راهاندازی سرور
- 4.5 دیمن گیت
- 4.6 HTTP هوشمند
- 4.7 گیتوب
- 4.8 گیتلب
- 4.9 گزینههای شخصی ثالث میزبانی شده
- 4.10 خلاصه
-
5. گیت توزیعشده
- 5.1 روندهای کاری توزیعشده
- 5.2 مشارکت در یک پروژه
- 5.3 نگهداری یک پروژه
- 5.4 خلاصه
-
6. GitHub
-
7. Git Tools
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugging with Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Summary
-
8. Customizing Git
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Summary
-
9. Git and Other Systems
- 9.1 Git as a Client
- 9.2 Migrating to Git
- 9.3 Summary
-
10. Git Internals
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Summary
-
A1. پیوست A: Git in Other Environments
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Visual Studio Code
- A1.4 Git in Eclipse
- A1.5 Git in IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.6 Git in Sublime Text
- A1.7 Git in Bash
- A1.8 Git in Zsh
- A1.9 Git in PowerShell
- A1.10 Summary
-
A2. پیوست B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. پیوست C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
4.3 گیت روی سرور - ساختن کلید عمومی SSH
ساختن کلید عمومی SSH
بسیاری از سرورهای گیت به وسیله کلید عمومی SSH تصدیق هویت میکنند.
برای تهیه کردن یک کلید عمومی، هر کاربر در سیستمتان، در صورتی که ندارد، ملزم است یکی بسازد.
این فرایند در همهٔ سیستمعاملها یکسان است.
اول، باید اطمینان حاصل کنید که از قبل کلید کلیدی ندارید.
به صورت پیش فرض، کلید SSH هر کاربر در پوشه ~/.ssh
ذخیره میشود.
شما میتوانید به سادگی با رفتن به آن پوشه و لیست کردن محتویات آن را بررسی کنید:
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
شما به دنبال یک جفت فایل با نامهایی شبیه به id_dsa
یا id_rsa
و فایلی مشابه با پسوند .pub
هستید.
فایل .pub
کلید عمومی شما است و فایل دیگر کلید خصوصی نظیر آن است.
اگر این فایلها (و یا حتی پوشه .ssh
) را ندارید، میتوانید آنها را با اجرای برنامهای به نام ssh-keygen
بسازید،
که همراه پکیج SSH در سیستمعاملهای لینوکس/مک و همراه «گیت برای ویندوز» ارائه میشود:
$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local
ابتدا از شما میپرسد که کلید را کجا میخواهید ذخیره کنید (.ssh/id_rsa
)، سپس دو بار از شما یک رمز (Passphrase) میخواهد،
که میتوانید آنرا خالی بگذارید اگر مایل نیستید هر بار که از کلید استفاده میکنید رمز وارد کنید.
هرچند، اگر از رمزی استفاده میکنید، مطمئن شوید که از آپشن -o
در دستور استفاده میکنید؛
این کار کلید خصوصی را به نحوی ذخیره میکند که در برابر حملات شکستن رمز Brute-force مقاومتر است که فرمت پیشفرض فایل کلید خصوصی است.
همچنین میتوانید از ابزار ssh-agent
برای اجتناب از هر بار رمزعبور وارد کردن رمز عبور استفاده کنید.
حالا، هر کاربر باید این کار را انجام دهد و کلید عمومی خود را به شما یا هرکسی که سرور گیت را مدیریت میکند ارسال کند (با فرض اینکه شما از سرور SSH استفاده میکند که نیازمند کلیدهای عمومی است).
تمام کاری که آنها باید انجام دهند کپی کردن محتویات فایل .pub
و ایمیل کردن آن به شما است.
کلید عمومی چیزی شبیه به این است:
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local
برای آموزش عمیقتر درباره ساختن کلید SSH در سیستمعاملهای مختلف، به صفحه راهنمای کلیدهای SSH در گیتهاب به آدرس https://help.github.com/articles/generating-ssh-keys مراجعه کنید.