هماهنگ سازی وردپرس و mailerlite

چند ماه پیش بود که به درخواست و پیشنهاد علی حاجی محمدی قرار شد روشی رو پیاده کنم که تمام کاربرهایی که توی وبسایت همیار وردپرس عضو می‌شن به صورت خودکار توی لیست ایمیل‌های Mailerlite هم قرار بگیرند. برنامه نویس قبلی مجموعه، این کار رو انجام داده بود ولی مسئله‌ای که وجود داشت این بود که فقط با یک پلاگین خاص وردپرس هماهنگ بود.

بعد از صحبتی که با علی داشتیم و به پیشنهاد خودش، تصمیم گرفتیم این قابلیت رو به صورت گسترده تری پیاده سازی کنم و به صورت یک افزونه‌ی تجاری در مارکت وردپرس در اختیار بقیه وب مستران هم قرار بدیم.

برای انتشار نسخه‌ی اول امکانات و قابلیت‌های زیادی مد نظرم نبود. فقط در این حد که مدیر وبسایت گروه مورد نظرش رو از میلرلایت انتخاب کنه و با عضویت کاربران به هر طریقی در وبسایت (هر افزونه‌ای، دستی، ووکامرسی و …) ایمیل‌ آن‌ها توی گروه انتخاب شده‌ی میلرلایت هم اضافه شود.

خوشبختانه انتشار نسخه اول با این امکانات کار ساده‌ای بود. تنها کافی بود API از مدیرسایت دریافت بشه، گروه‌های ساخته شده توی سایت میلرلایت رو لود کنم و گروه انتخابی توسط کاربر رو توی دیتابیس ذخیره کنم. که همه این موارد به سادگی انجام شد. برای بخش هماهنگ سازی عضویت در وبسایت و میلرلایت هم با یه جستجوی ساده به اکشن user_register وردپرس رسیدم. اکشنی که با هر بار اضافه شدن کاربری به جدول users وردپرس اصطلاحا فایر میشه و شناسه‌ی کاربر اضافه شده را در اختیار ما قرار میده، در نتیجه به یه هوک ساده تونستم اطلاعات کاربر ثبت نام کرده رو بگیرم و با استفاده از API میلرلایت، ایمیل کاربر را به لیست مورد نظر مدیر وبسایت اضافه کنم.

همچنین توی نسخه‌ی اول، یک ابزارک فرم عضویت در میلرلایت هم توی افزونه قرار دادم تا در صورتی که مدیر تمایل به قرار دادن فرم عضویت در میلرلایت برای کاربرانش داشت رو، بتونه به راحتی این کار رو انجام بدهد.

wpmlr-widget

 

از اونجایی که افزونه رو به صورت پولی منتشر کردم، تصمیم گرفتم به حال خود رهاش نکنم و با به روز رسانی کردنش،  روز به روز کامل ترش کنم. در نتیجه تصمیم گرفتم نسخه ۱٫۱٫۰ افزونه رو با قابلیت اضافه کردن خریدارن محصول به میلرلایت رو منتشر کنم.  وقتی ما مدیریک وبسایت فروش آنلاین باشیم، مطمئنا یکی از خواسته‌هامون این خواهد بود که بتونیم به خریدارهای قبلی پیشنهاد‌های خرید جدیدی ارائه بدیم، یا اینکه به خریداران یک محصول خاص، پیشنهاد خاص تری رو ارائه بدیم. که همه این موارد مستلزم این بود که لیستی از ایمیل خریدارن هر محصول (یا همه خریدارن باهم) رو در اختیار داشته باشیم.

برای این منظور فیلدی را به عنوان گروه خبرنامه میلرلایت به محصولات ووکامرس اضافه کردم. که کافی بود مدیرسایت لیستی از گروه‌های ساخته‌ی شده‌ی خود را انتخاب کرده و محصول را به روز رسانی کند. پس از این هر زمانی که کاربری این محصول را می‌خرید، ایمیلش به لیست مورد نظر اضافه می‌شد.

wpmlrwoocommerce

بعد از انتشار این نسخه،  چند نفر از دوستانی که از افزونه استفاده می‌کردند، پیشنهادی دادند مبنی بر اینکه بتونن محصولات را به صورت چند تایی ویرایش کنند و گروه مورد نظرشون رو قرار دهند. حرف‌شون هم منطقی بود، در صورتی که یه وبسایت محصولات زیادی داشته باشه، اضافه کردن لیست خبرنامه به مصحولات به صورت تکی، پروسه‌ی سخت و طاقت فرسایی میشد. در نتیجه نسخه‌ی ۱٫۲٫۰ افزونه رو منتشر کردم. که توی این نسخه، در قسمت تنظیمات افزونه، تب جدیدی به نام تنظیمات محصولات اضافه شد، که کاربر لیست محصولات خودش رو می‌بینه و می‌تونه از همین بخش به سادگی، گروه مورد نظر برای یک محصول رو اضافه یا حذف کنه:

wpmlr-screensshot

 

در صورتی که سایت وردپرسی دارید و  از میلرلایت به عنوان سرویس دهنده‌ی ایمیل مارکتینگ استفاده می‌کنید،  احتمالا این افزونه کمک بزرگی به فروش سایت‌تون می‌کنه 🙂

برای خرید می‌تونید از لینک زیر استفاده کنید:

 

خرید افزونه‌ی هماهنگ ساز میلرلایت و وردپرس

گیت‌هاب برای تازه کارها: Commit، Push و بزن بریم

سلام مجدد

دومین و آخرین قسمت از گیت‌هاب برای تازه‌کارها رو می‌نویسم. خوشبختانه از قسمت اول بازخوردهای خوبی گرفتم. امیدوارم قسمت دوم هم مورد استقبال همه قرار بگیره 🙂

قبل از اینکه مطلب رو شروع کنم لازم می‌بینم این نکته رو ذکر کنم که از اون جایی که ترجمه‌ی اصطلاحات مفهوم رو به خوبی منتقل نمی‌کنه ترجیح دادم توی این نوشته، از اصطلاحات انگلیسی استفاده کنم.

حتما توصیه می‌کنم قبل از خواندن این مطلب، ابتدا قسمت اول آموزش گیت‌هاب رو مطالعه کنید. 

در قسمت اول، استفاده‌ی اصلی گیت‌هاب، روند ساخت حساب کاربری روی اون و همچنین نحوه‌ی ایجاد repository محلی برای کدهامون رو یاد گرفتیم.

حالا که این مراحل رو طی کردیم وقتشه که  اولین بخش از پروژه‌مون رو با ارسال اولین Commit به گیت‌هاب ایجاد کنیم. در قسمت قبل یک مخزن محلی به نام Test ایجاد کرده بودیم، که مراحل ایجاد این مخزن، از طریق خط فرمان رو می‌تونید توی عکس زیر ببینید:

git-2

حالا توی command line دستور زیر را وارد کنید:

touch Readme.txt

این دستور هم دوباره یک دستور گیتی نیست و در واقع یک دستور حرکتی استاندارد است. touch در واقع به معنی ساختن است. هرچیزی که بعد از آن تایپ کنید، نام چیزی خواهد بود که ساخته می‌شود. اگر به پوشه‌ی پروژه‌تون برید خواهید دید که یک فایل به نام Readme.txt داخل آن ایجاد شده است.

ما الان مشخصا می‌تونیم فایل Readme.txt رو ببینیم. اما گیت چی؟ بیاید بفهمیم! تایپ کنید:

git status

خروجی این دستور چند خط متن شبیه این خواهد بود:

On branch master 
 
Initial commit 
 
Untracked files: 
  (use "git add <file>..." to include in what will be committed) 
 
        Readme.txt

git-3

 

خب اینا چی هستند؟  اول اینکه، شما توی شاخه‌ی master پروژه‌تون هستید. که منطقی هم هست چون ما شاخه‌ای برای پروژه تعریف نکرده بودیم. و تا وقتی هم که به صورت تکی کار می‌کنیم دلیلی برای این کار وجود ندارد. دوم اینکه فایل Readme.txt به عنوان فایل شناسایی نشده (untracked file) در نظر گرفته شده است. که این معنی رو میده که  فعلا گیت اون رو در نظر نخواهد گرفت. برای اینکه گیت را متوجه این فایل بکنیم، دستورات زیر را وارد می‌کنیم:

git add Readme.txt

خب اولین فایل‌مون رو ایجاد کردیم. حالا وقتشه که اولین اسنپ‌شات از پروژه مون رو بگیریم. یا در واقع commit کنیم:

git commit -m “Add Readme.txt”

همون طوری که توی قسمت اول هم گفتم، بخش -m تعیین می‌کند که متن بعدی به عنوان پیام خوانده شود. دقت کنید که پیام commit را در زمان حال بنویسید. در واقع همیشه باید از افعال زمان حال استفاده کنید. زیرا کنترل نسخه فقط برای انعطاف پذیری در زمان استفاده می‌شود. ما نمی‌نویسیم که یک commit چه کاری انجام داده است چون که هر لحظه ممکنه به قبل برگردی، همیشه می‌نویسیم که commit ما چه کاری انجام می‌دهد.

حالا که کمی به صورت محلی (روی کامپیوتر خودمون) کار انجام دادیم، وقتشه که اولین commit مون رو به گیت‌هاب push کنیم.

صبر کنید! ما هنوز مخزن محلی‌مون رو به مخزن آنلاین‌مون وصل نکردیم!  احتمالا به این فکر کردین. و خب حق با شماست. در حقیقت،وقتی اضافات و تغییرات پروژه‌تون رو تایید می‌کنید، مخزن محلی و آنلاین شما فقط آماده اتصال شده اند. پس آماده بشید تا اولین اتصال واقعی رو برقرار کنیم.

اتصال مخزن محلی به مخزن گیت‌هاب

داشتن یک مخزن محلی به اندازه آنلاین جذاب هست. می‌تونید همه کارهاتون رو حتی بدون اتصال به اینترنت انجام بدین، و سپس نتیجه نهایی رو روی گیت‌هاب قرار میدین تا همه ببینند.

همچنین باعث میشه که چندین نفر بتونند روی یک پروژه به صورت همزمان کار کنند. هر کدوم می‌تونند روی کامپیوترهای خودشون به صورت تکی کار کنند و وقتی که کارشون تموم شد، اون رو روی گیت‌هاب آپلود یا push کنند.

اول باید به گیت بگیم که یک مخزن آنلاین برای این پروژه وجود دارد. ما این کارو با شناسایی مخزن آنلاین به گیت انجام می‌دهیم. همون طور که گیت فایل‌های جدید ما رو نمی‌شناخت و باید با دستور git add اون فایل‌ها رو برای گیت شناسایی می‌کردیم، مخزن آنلاین رو هم به صورت خودکار نخواهد شناخت.

فرض کنیم یک مخزن گیت‌هاب به نام Test داریم که توی مسیر https://github.com/iMojtaba/Test.git قرار گرفته است. مشخصه که به جای iMojtaba باید نام کاربری خودتون رو  و به جای Test هم اسم مخزن خودتون روی گیت‌هاب رو قرار بدهید.

git remote add origin https://github.com/username/myproject.git

قسمت اول حتما براتون آشنا هست. قبلا از دستور git add برای شناسایی فایل‌ها استفاده کردیم. کلمه‌ی origin رو بهش اضافه کردیم تا نشون بدیم که فایل‌ها از کجا نشات گرفته‌اند. واژه‌ی remote توصیف کننده‌‌ی origin است، تا نشون بدیم که منشا فایل‌ها کامپیوتر ما نیست بلکه جایی آنلاین است.

حالا گیت می‌دونه که یک مخزن آنلاینی وجود داره که ما می‌وایم تغییرات محلی‌مون به اونجا منتقل بشود. برای اطمینان این دستور را وارد کنید:

git remote -v

git-4

این دستور همه‌ی لیستی از همه‌ی origin هایی که مخزن محلی‌مون می‌شناسه را به ما می‌دهد. اگر تا اینجا با من پیش اومده باشید فقط باید یک Test.git وجود داشته باشد. که دوبار لیست شده است. که یعنی هم می‌تونیم اطلاعات رو بهش push کنیم و هم می‌تونیم اطلاعات رو از اون fetch کنیم.

حالا می‌خواهیم که تغییرات‌مون رو روی گیت‌هاب آپلود یا push کنیم. این کار خیلی ساده است. دستور زیر زیر تایپ کنید:

git push

بعد از وارد کردن این دستو، احتمالا توی ترمینال خطوطی از متن رو می‌بینید که در نهایت به عبارت everything up-to-date. ختم شده اند.

git-4

اگر با خطاهایی مشابه تصویر بالا مواجه شدین، بخاطر این است که دستور رو به ساده‌ترین شکل ممکن وارد کرده‌ایم.  برای دقیق‌تر کردن دستور می‌تونیم از git push origin master استفاده کنیم تا مشخص کنیم که منظور ما شاخه‌ی master مخزن‌مون بوده است.

به گیت‌هاب لاگین کنید، می‌بینید که گیت‌هاب متوجه تمام commitهای شما شده است. که اگر طبق این آموزش پیش اومده باشید فقط یک commit وجود دارد. بر روی اسم مخزن‌تون کلیک کنید و می‌بینید که فایل Readme.txt داخل اون موجود است.

جمع‌بندی نهایی

تبریک می‌گم، حالا شما رسما یک کاربر گیت هستید!  می‌تونید مخزن‌هایی رو ایجاد کنید و تغییرات‌تون رو به اون مخزن‌ها commit کنید. اینجا جایی هست که اکثر آموزش‌های ابتدایی متوقف می‌شوند.

با این حال ممکنه هست که این احساس آزاردهنده‌ای که هنوز حرفه‌ای نیستید رو داشته باشید.  برای اینکه با گیت راحت‌تر باشید، اجازه بدین که کل مطالبی که تا اینجا گفته شد را با هم از طریق یک مثال مرور کنیم. فرض کنیم شما یک طراح وب در شرکت ۱۲۳ دیزاین هستید. و با همکاران خودتون یک سایت برای مغازه بستنی فروشی صمد طرحی کرده‌اید.

زمانی‌که مدیر شما بهتون گفت که باید در پروژه‌ی طراحی مجدد وبسایت صمد مشارکت کنید، کمی نگران شده‌اید. تازه شما برنامه‌نویس هم نیستید و طراح گرافیک هستید. اما مدیرتون تاکید کرده که همه می‌تونند از گیت استفاده کنند و شما هم باید این کار را انجام دهید.

شما تصویر جدیدی از یک بستنی گردویی طراحی کرده‌اید، و می‌خواهید اون رو به پروژه اضافه کنید. تصویر را داخل یک پوشه روی کامپیوترتون ذخیره کرده‌اید که برای جلوگیری از گیج شدن خودتون، اسم این پوشه را icecream گذاشته‌اید.

خط فرمان را باز کنید و مسیر خودتون رو به داخل پوشه‌یicecream تغییر بدین.

cd ~/icecream

برای اینکه بتونید از گیت داخل پوشه‌ی icecream استفاده کنید، اون رو راه اندازی کنید:

git init

صبر کن! پوشه‌ی مورد نظر همینه نه؟ برای اینکه از صحت جایی که کارتون رو انجام میدین مطمئن بشید از دستور زیر استفاده کنید:

git status

و این چیزی هست که گیت در پاسخ به شما خواهد گفت:

# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
#       chocolate.jpeg

خب همه چیز درست هست. وقتش هست که عکس‌ها رو به مخزن محلی گیت‌مون معرفی کنیم تا تغییرات اون هارو زیر نظر بگیره :

git add chocolate.jpeg

حالا با استفاده از commit یک snapshot از مخزن‌مون ایجاد می کنیم.

git commit -m “Add chocolate.jpeg.”

عالیه! اما همکاران‌تون که سخت مشغول کار بر روی قسمت مربوط به خودشون هستند، هنوز نمی‌تونند طراحی زیبای شما رو ببینند. برای همین منظور هست که پروژه‌ی اصلی بر روی اکانت شرکت روی گیت‌هاب (نام کاربری: ۱۲۳design)  و داخل مخزن icercream ذخیره شده است.

تا زمانی که هنوز به مخزن گیت‌هاب وصل نشده‌اید، کامپیوترتون هنوز نمی‌دونه که همچین چیزی وجود دارد. پس به مخزن محلی‌تون مخزن آنلاین رو معرفی کنید:

git remote add origin https://github.com/123Design/icecream.git

و سپس دوباره چک کنید که همه چیز درست باشه :

git remote -v

و سرانجام، لحظه‌ای که منتظرش بودید فرا رسید. تصویر بستنی گردویی خوشمزه‌ رو آپلود کنید روی پروژه:

git push

با همه چیزایی که گفتم حتما متوجه شدین که گیت و گیت‌هاب فقط برای برنامه‌نویس‌ها نیست.

منابع گیت

گیت خیلی گسترده‌ است. توی این آموزش سعی کردم که طریقه‌ی استفاده‌ از گیت رو بیان کنم. ولی ما نمی‌تونیم کل گیت رو به این شکل یاد بگیریم. در اینجا منابعی که می‌تونند برای آموزش پیشرفته‌تر گیت مفید باشند رو معرفی می‌کنم:

  • Pro Git: یک کتاب کاملا متن باز برای یادگیری و استفاده از گیت. ظاهرا خیلی طولانی هست ولی برای آموزش و استفاده‌ی مقدماتی بیشتر از فصل سوم آن نیاز نیست.
  • Try Git: کداسکول و گیت‌هاب با هم تیم شدن و یه مجموعه آموزش سریع برای گیت ساخته‌اند. اگر تمرین‌های بیشتری برای اصول اولیه می‌خواید، این آموزش می‌تونه بهتون کمک کنه. اما اگر پول اضافه‌ای دارید و می‌خواهید هرچی درباره گیت وجود داره رو یاد بگیرید، دوره‌ی گیتِ کداسکول این کارو انجام میده.
  • GitHub Guides: اگر یادگیری بصری بالای دارید، کانال رسمی یوتیوبِ گیت‌هاب می‌تونه برای شما مفید باشد. خصوصا سری ۴ قسمتیِ اصول گیت  رو بهتون توصیه می‌کنم.
  • Git Reference: اصول اولیه رو یاد گرفتید ولی دستورات رو یادتون میره؟‌ این سایت یک منبع عالی برای دستورات گیت هست.
  • Git – the simple guide: این آموزش مختصر و شیرین است. اما برای تازه‌کارها یه خرده سریع پیش میره، و اگر مایلید اطلاعات‌تون درباره اصول اولیه‌ی گیت رو به روز کنید، این همه‌ی چیزی هست که نیاز دارید.

این هم از قسمت دوم و پایانی آموزش گیت، امیدوارم دروازه‌ی ورودِ خوبی برای وارد شدن‌تون به دنیای گیت باشه 🙂

 

 

گیت‌هاب برای تازه کارها: نترسید! شروع کنید

سلام

بعیده توی دنیای امروز کسی از گیت چیزی نشنیده باشه، اگر هم چنین کسی رو پیدا بکنید قطعا کسی وجود نداره که برای یک بار هم شده که گذرش به گیت‌هاب نخورده باشه!

زمانی که خواستم گیت رو یاد بگیرم خیلی دنبال یه آموزش ساده بودم که بعد از کلی گشتن به مقاله‌ی GitHub For Beginners: Don’t Get Scared, Get Started رسیدم. مقاله‌ی خیلی ساده و جامعی که برای شروع کار با گیت به نظرم خیلی خوب هست. یه ترجمه‌ی ناقص از این مقاله به فارسی توی نت بود که همین ناقص بودنش دلیلی شد برای اینکه تصمیم بگیرم به صورت کامل مقاله رو ترجمه کنم. ضمن اینکه تجربه‌های خودم از کار با گیت رو هم به مقاله اضافه کنم. خودم توی کار با گیت به شدت تازه کار هستم. و یکی از هدف‌هام از ترجمه‌ی این مقاله بالاتر بردن سطح اطلاعات خودم از گیت هست. امیدوارم که برای کسانی که دوست دارن با گیت آشنا بشن مطلب مفیدی باشه 🙂

گیت چیست؟

ویکی‌پدیا میگه:

گیت (به انگلیسی: Git) یک نرم‌افزار آزاد و متن‌باز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برروی سرعت تاکید می‌کند. گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد و اکنون پروژه‌های فراوانی از آن الهام گرفته‌اند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرات و قابلیت بازنگری تغییرات است و برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد. گیت یک نرم‌افزار آزاد است که تحت عنوان جی‌پی‌ال نسخه ۲ توزیع شده است.

از لینوس توروالدز ممنونیم به خاطر گیت! نرم‌افزاری که قلب تپنده‌ی گیت‌هاب است. (و البته بیشتر از لینوس ممنونیم به خاطر سیستم عامل لینوکس 🙂 ). گیت یه نرم‌افزار کنترل ورژن هست. که یعنی تغییرات یک پروژه را بدون تداخل هیچ کدوم از بخش‌های اون، مدیریت می‌کند. و نکته‌ای که وجود داره اینه که گیت به این زودی‌ها از رده خارج نخواهد شد به خصوص تا زمانی که توروالدز و تیم توسعه‌ی کرنل لینوکسش، از گیت برای توسعه‌ی هسته‌ی کرنل لینوکس استفاده می‌کنند.

چرا باید از چیزی مثل گیت استفاده کنیم؟ فرض کنید شما و همکارتون صفحاتی رو روی یک وبسایت آپدیت می‌کنید. شما تغییراتتون رو اعمال می‌کنید، ذخیره‌اش می‌کنید و روی وبسایت آپلود می‌کنید. تا اینجا همه چیز خوبه، اما مشکل زمانی پیدا میشه که شما و همکارتون به صورت همزمان روی یک صفحه کار می‌کنید و نتیجه‌اش این خواهد شد که تغییرات یکی از شما از بین خواهد رفت.

یک نرم‌افزار کنترل نسخه از این اتفاق جلوگیری می‌کند. شما و همکارتون می‌تونید اصلاحات خودتون از یک صفحه رو آپلود کنید و گیت دو نسخه از اون رو ذخیره خواهد کرد. و شما می‌توانید تغییرات خودتون رو با هم ترکیب کنید بدون اینکه اطلاعاتی رو از دست بدین. حتی می‌تونید در هر زمانی به نسخه‌های قبلی برگردید زیرا گیت یک کپی از هر تغییری که انجام شده رو نگه‌داری می‌کند.

مشکلی که گیت داره اینه که استفاده از اون خیلی سنتی هست و باید از دستورات خط فرمان استفاده کنیم. نوشتن دستورات کوتاهی برای انجام کارها مثل هکرهای دهه‌ی ۹۰! که این برای کاربران مدرن امروزی مقداری سخت است. و اینجاست که گیت‌هاب وارد می‌شود!

گیت‌هاب استفاده از گیت رو به دو روش ساده‌تر می‌کند. اول اینکه اگر برنامه‌ی گیت‌هاب رو دانلود و نصب کنید به شما یک محیط بصری برای مدیریت پروژه‌های محلی‌تون با استفاده از گیت میده و دوم اینکه اگر در گیت‌هاب عضو بشین می‌تونید پروژه‌هاتون رو روی وب داشته باشید و از ویژگی‌ها روابط شبکه‌های اجتماعی استفاده ببرید.

می‌تونید پروژه‌های بقیه‌ی کاربران گیت‌هاب رو ببینید و حتی نسخه‌ای از اون‌ها رو برای یادگیری و تغییر دادن مخصوص خودتون استفاده کنید. بقیه کاربران هم می‌تونند همین‌کارها رو با پروژه‌های عمومی شما بکنند و حتی خطا‌های پروژه رو گوشزد کرده و راه حلی برای آن‌ها ارائه بدن.

با اینکه استفاده از گیت‌هاب بدون یادگیری گیت ممکن است، اما فرق بزرگی بین استفاده کردن و درک کردن وجود دارد. قبل از اینکه گیت رو درک کنیم، می‌تونیم از گیت‌هاب استفاده کنیم اما واقعا نمی‌فهمیم چه اتفاقی داره میفته! در این آموزش استفاده از گیت با خط فرمان را یاد خواهیم گرفت.

کلماتی که مردم زمان حرف زدن از گیت، استفاده می‌کنند

در این آموزش کلماتی وجود دارند که به تکرار استفاده خواهند شد. کلماتی که قبل از یادگیری گیت، اون‌ها رو نشنیده بودیم.  بعضی از اصلی ترین‌هاشون رو مرور کنیم:

خط فرمان (Command Line): برنامه کامپیوتری که برای وارد کردن دستورات گیت استفاده می‌کنیم. توی مک  Terminal نامیده میشه، روی پی سی برنامه‌ای غیر بومی هست که هنگامی که برای اولین بار گیت رو دانلود می‌کنید، اون رو هم دانلود خواهید کرد. و روی سیستم‌های لینوکسی از ترمینال استفاده خواهیم کرد. که در هر حالتی ما دستورات متنی را به جای استفاده از موس روی صفحه تایپ خواهیم کرد.

مخزن (Repository): پوشه یا فضای ذخیره‌سازی که پروژه شما داخل اون وجود دارد. بعضی وقت‌ها کاربران گیت‌هاب از اون با عنوان “repo.” نام می‌برند. اون می‌تونه یه پوشه‌ روی کامپیوتر شما باشه یا فضایی روی گیت‌هاب یا هر سرویس میزبانی آنلاین دیگری. شما می‌تونید فایل‌های برنامه نویسی، متنی، عکس و هرچیزی رو داخل مخزن ذخیره کنید.

کنترل نسخه (Version Control): هدف اساسی که گیت برای اون طراحی شد. وقتی یه فایل وُرد مایکروسافتی دارید،  مجبورید که هر بار که مجزا ذخیره‌اش کنید یا چندین نسخه از اون رو دخیره کنید. با گیت، مجبور به این کار نیستید. اون اسنپ‌شات هایی از هر لحظه از تاریخچه‌ی پروژه رو ذخیره می‌کنه، بنابراین هیچ وقت هیچ چیزی رو از دست نمی‌دین با بازنویسی نمی‌کنید.

سپردن (Commit): این دستوری هست که به گیت قدرت می‌دهد. وقتی که Commit می‌کنید، اسنپ‌شاتی از وضعیت فعلی پروژه‌تون رو در نقطه‌ی زمان فعلی ایجاد می‌کنید، که به شما نقطه‌ی بررسی برای تجدید نظر یا بازگرداند پروژه به این نقطه رو خواهد داد.

شاخه‌ (Branch): چطور چند نفر به صورت هم‌زمان روی یک پروژه کار می‌کنند بدون اینکه گیت اون‌ها رو قاتی کنه؟ معمولا اون‌ها شاخه‌ای از پروژه اصلی هستند با همه تغییراتی که خودشون اعمال کرده‌اند. وقتی که کارشون تموم شد، زمان اون خواهد بود که با “master”، پوشه‌ی اصلی پروژه،  ترکیب شوند.

دستورات مخصوص گیت

از اون‌جاییکه گیت با دورنمای پروژه‌ی بزرگی مثل لینوکس طراحی شده، دستورات گیتی زیادی وجود دارد. با این حال، برای استفاده‌ی مقدماتی از گیت، با اصطلاحات کمی آشنا شوید.  همه این دستورات به یک شکل شروع می‌شوند، با کلمه‌ی “git.”

git init  

:راه‌اندازی مخزن گیتی جدید. تا قبل از اینکه این دستور را داخل یک پوشه یا مخزن وارد کنید، اون فقط یک پوشه‌ی ساده است. فقط بعد از اینکه این دستور را وارد کنید بقیه دستورات گیت اجرا می‌شوند.

git config

: مخففی برای “configure,”، این بیشتر زمانی کاربرد دارد که برای اولین بار مشغول راه‌اندازی و تنظیم گیت هستید.

git help

: دستوری رو یادتون رفته؟ این دستور رو در خط فرمان تایپ کنید و ۲۱ دستور متداول گیت را فراخوانی کنید. همچنین می‌توانید خاص تر عمل کنید و “git help init” رو تایپ کنید. یا اصطلاح دیگری را تا بفهمید چطوری اون دستور خاص استفاده و تنظیم می‌شود.

git status

: وضعیت مخزن خود را بررسی کنید. ببینید چه فایل‌هایی داخل اون هستند. چه تغییراتی نیازمند Commit شدن هستند. و همچنین هم‌اکنون توی چه شاخه‌ای مشغول کار هستید.

git add

: این دستور فایلی را به مخزن شما اضافه نخواهد کرد. در عوض، گیت را از وجود فایل‌های جدید خبردار می‌کند. بعد از اینکه فایل‌ها را add کردید، آن‌ها به “اسنپ‌شات‌های” مخزن‌تون اضافه خواهند شد.

git commit

:مهم‌ترین دستور گیت. بعد از اینکه تغییرات مختلفی را اعمال کردید، این دستور را برای گرفتن یک اسنپ‌شات از مخزن وارد می‌کنید. معمولا به این شکل استفاده می‌شود:

git commit -m “Message here.

-m تعیین می‌کند که قسمت بعدی دستور به عنوان پیام در نظر گرفته شود.
git branch

:با همکاران‌تون روی یک پروژه کار می‌کنید و مایلید تغییرات مختص به خودتون رو داشته باشید؟ این دستور به شما اجازه‌ی ساختن یه شاخه‌ی جدید، یا خط زمانی از Commitها، یا تغییرات و اضافات فایل‌ها  را مختص خودتات می‌دهد. عنوان شما بعد از دستور می‌آید. اگر می‌خواهید شاخه جدید به نام cats باشد از این دستور استفاده کنید:

git branch cats

git checkout

:به شما اجازه می‌دهد که محتوای یک شاخه را که داخل آن نیستید، وارسی کنید. این یک دستور ناوبری هست که به شما اجازه میده به مخزنی که مایل به بررسی آن هستید منتقل شوید. از این دستور به این شکل استفاده می‌کنیم:

git checkout master

برای بررسی‌ شاخه‌ی master و یا

git checkout cats

برای بررسی شاخه‌ای دیگر

git merge

:زمانی‌که کارتون با یک شاخه تموم شد، می‌توانید تغییرات‌تون رو به شاخه master منتقل کنید. تا برای همه همکاران‌تون قابل دسترسی باشد.

git merge cats

همه تغییراتی که شما در شاخه‌ی “cats”  داده‌اید را گرفته و به شاخه‌ی master اضافه می‌کند.

git push

: اگر روی کامپیوتر شخصی‌ خودتون کار می‌کنید و می‌خواهید commit هاتون روی گیت‌هاب در دسترس باشه، تغییرات‌تون رو با این دستور به روی گیت‌هاب هُل میدین.

git pull

اگر روی کامپیوتر شخصی خودتون کار می‌کنید و جدید‌ترین نسخه‌ی مخزن‌تون رو برای کار کردن می‌خواهید، آخرین نسخه را با این دستور از گیت‌هاب به روی کامپیوتر خودتون می‌کشید.

راه‌اندازی گیت‌هاب و گیت برای اولین بار

نخست، لازم است که روی Github.com عضو شوید و یک حساب کاربری برای خود ایجاد کنید. این کار به سادگی عضویت در هر شبکه‌ی اجتماعی دیگریست. ایمیلی که عضو می‌شید را به خاطر داشته باشید، به زودی به سراغش خواهیم اومد.

اگر می‌خواید که روی کامپیوتر خودتون روی پروژه‌تون کار کنید، لازم است که اول گیت رو روی اون نصب کنید. در حقیقت گیت‌هاب روی کامپیوتر شما کار نخواهد کرد اگر گیت را نصب نکنید. گیت می‌تونید روی ویندوز، مک یا لینوکس به این طریق نصب کنید. 

حالا وقتشه که وارد خط فرمان بشیم. روی ویندوز باید برنامه‌ی Git Bash را که نصب کردید اجرا کنید، روی مک و لینوکس هم از برنامه‌ی ترمینال خود سیستم عامل استفاده خواهیم کرد. وقتشه که خودمون رو به گیت معرفی کنیم. دستورات زیر را وارد کنید:

git config --global user.name "Your Name Here"

البته که لازم هست به جای “Your Name Here” اسم خودتون رو که قبلا وارد کردید، قرار بدین. این می‌تونی نام اصلی‌تون باشه، یا لقب آنلاین‌تون یا هرچیزی! برای گیت اهمیتی ندارد و فقط نیاز داره که بدونه چه کسی commit ها و بقیه چیزها رو انجام میدهد.

سپس، ایمیل خودتون رو بهش بگید، توجه داشته باشید که حتما همون ایمیلی که باهاش اکانت گیت‌هاب تون رو ساختید وارد کنید. دستوری شبیه به این را وارد کنید:

git config --global user.email "your_email@youremail.com"

این همه چیزی  بود که برای شروع کار با گیت روی کامپیوتر خودتون نیاز داشتید.

ایجاد اولین مخزن آنلاین

حالا که همه چیز رو آماده کردید، وقتشه محلی رو برای زندگی کردن پروژه‌تون درست کنید. گیت و گیت‌هاب هر دو، این محل رو با عنوان مخزن یا به طور خلاصه “repo” می‌شناسند. پوشه‌ای دیجیتالی یا فضای ذخیره سازی که از طریق اون می‌تونید به فایل‌های پروژه تون و همه نسخه‌های اون که توسط گیت ذخیره شده‌اند، دسترسی داشته باشید.

به GitHub.com برگردید و روی آیکون + کوچکی که کنار نام کاربری‌تون قرار داره کلیک کنید. یا اینکه مستقیما به ضفحه‌ی مخزن جدید بروید. برای مخزن‌تون نام به یاد ماندنی و  توضیح کوتاهی وارد کنید، جلوتر برید و اونو منتشر کنید

git1

نگران تیکِ “Initialize this repository with a README.” نباشید. فایل Readme معمولا فایل متنی کوچکی هست که اندکی درباره پروژه شما توضیح میدهد. روی دکمه‌ی سبز رنگ  “Create Repository” کلیک کنید و حالا شما یک فضای آنلاین برای زندگی پروژه‌تون در اختیار دارید 🙂

ایجاد اولین مخزن محلی

خب تا اینجا یه فضایی رو برای پروژه‌تون به صورت آنلاین ساختیم. ولی اون جایی نیست که شما روی پروژه کار خواهید کرد. اکثر کارتون روی کامپیوتر خودتون انجام خواهد شد. پس لازم هست که مخزنی که ساختیم را به صورت یک پوشه‌ی محلی منعکس کنیم.

ادامه این بخش ممکن هست برای کاربران حرفه‌ای تر تا حدودی کسل کننده باشه ولی برای کاربران تازه کار قطعا جذاب خواهد بود.

نخست این دستور رو تایپ کنید:

mkdir ~/Test

mkdir خلاصه‌ی make directory به معنی ساخت پوشه است. این در واقع یک دستور گیتی نیست اما یک دستور حرکتی عمومی، مربوط به زمان قبل از کامپیوترهایی با رابط کاربری بصری هست.

~/ تصمین می‌کنه که مخزن‌مون رو در بالاترین سطح از ساختار فایل‌های کامپیوترمون ایجاد کنیم. به جای اینکه اونو داخل یه فولدری که بعدا سخت پیداش می‌کنیم، بسازیم.  در واقع اگه ~/ رو داخل مرورگرتون تایپ کنید بالاترین سطح پوشه‌های کامپیوترتون رو به شما خواهد داد. برای من که از لینوکس استفاده می‌کنم فولدر Home یوزرم رو باز خواهد کرد.

همچنین توجه داشته باشید که اسم فولدر ساخته شده رو مشابه اسم مخزن ساخته شده روی گیت‌هاب قرار دادم. سعی کنید اسم‌هاتون ثابت باشند.

حالا این دستور رو تایپ کنید:

cd ~/Test

cd خلاصه‌ی change directory به معنی تغییر پوشه هست. تا اینجا یک پوشه ساختیم و حالا وارد اون پوشه‌ای که ساختیم شدیم.

و بالاخره یک دستور گیتی رو تایپ می‌کنیم. در خط بعدی این دستور رو تایپ کنید:

git init

می‌دونید که از یک دستور گیتی داریم استفاده می‌کنیم چون این دستورات با git شروع می‌شوند.

init مخفف “initialize.” هست. وقتی این دستور رو وارد می‌کنیم به کامپیوتر اعلام می‌کنیم که این فولدر (Test) یک مخزن گیت است. اگر پوشه را باز کنید، تغییری مشاهده نمی‌کنید. زیرا این پوشه‌ی گیت جدید به صورت مخفی داخل پوشه‌ی اصلی قرار دارد.

تا اینجا کامپیوترتون می‌دونه که این پوشه‌ی آماده‌ی استفاده به عنوان گیت هست و می‌تونید دستورات گیتی رو وارد کنید. حالا ما یک مخزن آنلاین و محلی برای پروژه‌مون داریم. در قسمت بعد یاد خواهیم گرفت چطور اولین commit مون رو از مخزن محلی به آنلاین ارسال کنیم.

امیدوارم که چیزایی که انتظار داشتید رو از قسمت اول این مقاله یاد گرفته باشید. به زودی قسمت دوم رو هم خواهم گذاشت. اگر سوالی دارید خوشحال می‌شم توی دیدگاه‌ها بپرسید و اگر در توانم بود پاسخ خواهم داد. همچنین خوشحال تر میشم اگر تخصص بیشتری نسبت به من دارید مقاله رو اصلاح کنید 🙂

موفق باشید.

 

اوبونتو و طراحی وب: هر آنچه لازم داریم

دقیقا از ۴ ماه و ۲۳ روز گذشته به صورت کامل از ویندوز به سیستم عامل اوبونتو مهاجرت کردم. قبل از این بارها سعی کرده بودم از شر ویندوز خلاص بشم 😀  اما باید متاسفانه جایگزین خوبی براش پیدا نمی‌کردم. حتی نسخه‌های قبلی اوبونتو هم اصلا پایدار و قابل استفاده نبودند. اما خوشبختانه از نسخه ۱۴٫۰۴ که ۱۷ آوریل ۲۰۱۴ منتشر شد به پایداری فوق‌العاده خوبی رسید که باعث شد بتونم بدون هیچ مشکلی ازش استفاده کنم.

توی این نوشته می‌خوام تجربه خودم توی این ۴ ماه رو توی کار با اوبونتو و نرم‌افزار‌های جایگزین اون، برای کار تخصصی خودم که طراحی وب هست رو باهاتون به اشتراک بذارم. اگه دوست دارید شما هم به یه دنیای فوق‌العاده جذاب وارد بشید، فکر می‌کنم خوندن این مطلب به دردتون بخوره 🙂

کار اصلی من طراحی و پیاده سازی وبسایت‌های مختلف با استفاده از سیستم وردپرس هست. توی ویندوز نرم‌افزار اصلی که استفاده می‌کردم و یه جورایی عصای دستم Adobe dreamweaver و Notepad++ بود که همه کارهام رو با این دوتا انجام می‌دادم که متاسفانه هیچ کدوم نسخه لینوکس ندارند. در کنار این دو، از XAMPP هم برای ایجاد لوکال هاست استفاده می‌کردم. اما توی اوبونتو از چه نرم‌افزارهایی استفاده می‌کنم ؟

Sublime Text

sublime-text-3

Sublime Text بدون شک یکی از بهترین ویرایش‌گرهای متن هست که خوشبختانه علاوه بر نسخه ویندوز و مک، نسخه لینوکس اون هم موجود هست. نرم‌افزاری که به شدت برای کار برنامه‌نویس‌ها مناسب هست و اکثر زبان‌های برنامه نویسی رو هم پشتیبانی میکنه و تقریبا تمام کارهام رو با سابلایم انجام میدم.

سابلایم رو می‌تونید از اینجا دانلود کنید. و خیلی راحت نصبش کنید.

Brackets

brackets

Brackets نرم‌افزاریه که توسط شکت Adobe و به صورت اوپن سورس طراحی شده و مخصوص طراحی رابط کاربری وب هست. این به این معنیه که اگه نیاز به نوشتن کدهایی غیر از HTML، CSS و Java Script دارید (مثلا PHP) نمی‌تونه گزینه مناسبی باشه و نیاز به یه نرم‌افزار دیگه خواهید داشت. اگه غیر از این سه موردی که اشاره کردم، کد دیگه‌ای نمی‌نویسید تلفیق براکت و Emmet خیلی می‌تونه جذاب باشه

ویرایشگر‌های متنی زیاد دیگه‌ای هم برای لینوکس و اوبونتو وجود داره که می‌تونید استفاده کنید. اما چیزی که من استفاده می‌کنم این دو تا بود.

XAMPP

xampp

جایگزین XAMPP توی اوبونتو خودش هست 😀 خوشبختانه XAMPP هم نسخه اوبونتو رو داره و به صورت کامل ساپورت می‌کنه، طریقه نصبش روی اوبونتو رو می‌تونید اینجا ببینید.

FileZilla

FileZilla

برای مدیریت فایل‌ها با استفاده از ftp هم من FileZilla رو پیشنهاد می‌کنم. که تقریبا برای همه سیستم عامل‌ها ارائه میشه و خیلی هم ساده و کاربردی هست.

اما در پایان:

Adobe photoshop

Adobe-Photoshop-CC

فوتوشاپ جزو جدایی ناپذیر طراحی وب هست و کسانی که طراحی گرافیک وب رو انجام می‌دن بدون شک نیاز به کار با این نرم‌‌افزار رو دارند. متاسفانه اگه  شما هم جزو این دسته از آدم‌ها هستید و فوتوشاپ جزو نرم‌افزارهای اصلی و کاربردی‌تون هست نمی‌تونید از اون توی اوبونتو استفاده کنید و از اون بدتر اینکه نرم‌افزار مشابهی که با این قدرت بتونه کار کنه رو هم توی لینوکس نداریم.

اما اگه مثل من گه‌گداری به فوتوشاپ نیاز پیدا می‌کنید می‌تونید با استفاده از VirtualBox کارتون رو راه بندازید 😀 فقط کافیه یه ویندوز روی ویرچوال باکس‌تون نصب کنید و روی اون یه فوتوشاپ نصب کنید تا درمواقع ضروری نیاز به ریبوت کردن سیستم نداشته باشید.

در آینده بیشتر از اوبونتو و جذابیت‌هاش خواهم نوشت. اگه شما هم برنامه‌نویس هستید و از اوبونتو استفاده می‌کنید خوشحال میشم پیشنهادهای شما رو هم بشنوم 🙂