در سیستم کنترل نسخهٔ گیت میتوان یک فایل مخفی تحت عنوان gitignore.
ساخت که این وظیفه دارد تا فایلها و فولدرهایی که حاوی دیتای حساس همچون رمزعبور دیتابیس هستند و یا حاوی فایلهایی هستند که وجودشان در ریپازیتوری آنلاین لزومی ندارد را به اصطلاح Ignore کرده یا فاکتور گرفت. برای درک بهتر این موضوع، مجدد به پروژهٔ git-tutorial
که در ابتدای این دوره ساختیم بازگشته و چنین فایلی را در مسیر روت این پروژه ایجاد میکنیم:
git-tutorial
├── .git
├── .gitignore
├── index.html
├── main.js
└── styles.css
سپس فایل دیگری مثلاً تحت عنوان config.php
حاوی محتویات زیر میسازیم:
<?php
return [
'username' => 'something',
'pass' => '123456',
];
فرض کنیم که این اطلاعات خیلی حساس هستند و تحت هیچ عنوان نمیباید روی ریپازیتوری آنلاینمان پوش شوند. در ادامه، فایل gitignore.
را به صورت زیر تکمیل میکنیم:
config.php
در ادامه، تغییرات را به صورت زیر ابتدا کامیت میکنیم:
/var/www/git-tutorial$ git add .
/var/www/git-tutorial$ git commit -m "config added"
[master 7006a25] config added
1 file changed, 1 insertion(+)
create mode 100644 .gitignore
سپس اقدام به پوش کردن دیتا روی سرورهای گیتهاب مینماییم:
/var/www/git-tutorial$ git push origin master
Username for 'https://github.com': my.email.address@gmail.com
Password for 'https://my.email.address@gmail.com@github.com':
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 356 bytes | 356.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/behzadmoradi/git-tutorial.git
d2123d4..7006a25 master -> master
اکنون اگر به صفحهٔ اصلی ریپازیتوری مذکور در گیتهاب مراجعه کنیم، میبینیم که فایل gitignore.
اضافه شده اما فایل config.php
هرگز آپلود نشده است. همچنین اگر بخواهیم یک دایرکتوری و کلیهٔ محتویاتش را نیز نادیده بگیریم، میتوانیم این فایل را به صورت زیر آپدیت کنیم:
config.php
images/
در حقیقت، از این پس پوشهای تحت عنوان images
و کلیهٔ محتویات آن دیگر روی ریپازیتوری آنلاین پوش نخواهند شد.