نوشته‌های من

درباره برنامه‌نویسی، بازی، کتاب و هر چیزی که دوست داشته باشم

نوشته‌های من

درباره برنامه‌نویسی، بازی، کتاب و هر چیزی که دوست داشته باشم

نوشته‌های من
طبقه بندی موضوعی

همانطور که احتمالا می‌دانید «گیت» یا همان "git" یک «سیستم کنترل نسخه» توزیع شده است. تا دیروز تمامی پروژه‌هایم توسط "svn" کنترل می‌شد اما برای پروژه‌ی اخیر تصمیم گرفتم که از گیت استفاده کنم. در ادامه مراحل مختلف نصب و راه اندازی گیت را توضیح می‌دهم به امید اینکه بتواند مورد استفاده واقع شود.

تمامی دستورات بر روی سیستم اوبونتو و سرور دبیان انجام شده است. برای استفاده از این دستورات در سیستم عامل ویندوز ابتدا نرم‌افزار گیت را از سایتش (http://www.git-scm.com) دریافت کرده و پس از نصب از git bash استفاده نمایید.

برای دسترسی به یک سرور گیت می‌توان از سه پروتکل ssh، git و http استفاده کرد که در اینجا نحوه راه‌اندازی و استفاده ssh توضیح داده خواهد شد.

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

server$ sudo adduser git

پس از پاسخگویی به سوالات مربوط به کاربر git نوبت به نصب گیت میرسه.

server$ sudo apt-get install git-core

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

server$ mkdir /Projects/ProjectName
server$ cd /Projects/ProjectName
server$ git --bare init

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

client$ sudo apt-get install git-core

با اجرای مرحله بالا گیت را روی سیستم مورد نظر نصب می‌کنیم. چنانچه قبلا این کار را انجام داده‌ایم نیازی به اجرای دوباره‌ی آن نیست.

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

client$ git config --global user.name "Hamed Zaghaghi"
client$ git config --global user.email "hamed.zaghaghi@gmail.com"

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

client$ cd ProjectPath
client$ git init

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

client$ git add *.cpp
client$ git add *.h
client$ git add Makefile

چنانچه در حال حاضر پروژه حاوی هیچ فایلی نیست، یک فایل خالی ایجاد کنید و آن را به مخزن اضافه نمایید.

در ادامه فایل‌های اضافه شده در مخزن را به مخزن تحویل می‌دهیم به عبارت دیگر این تغییرات را commit میکنیم.

client$ git commit -m "Initial commit"

عبارتی که در انتهای دستور آمده است توضیحاتی است که برای این تحویل می نویسیم و می‌تواند هر متن دیگری باشد.

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

client$ git remote add origin git@server:/Projects/ProjectName
دقت نمایید که آخرین قسمت از دستور بالا حاوی کاربر تعریف شده در سرور (git)، نام و یا آی‌پی سرور (server) و مسیر پروژه روی سرور (/Projects/ProjectName) می‌باشد.
بعد از برقراری این ارتباط تغییراتی را که به مخزن محلی تخویل داده‌ایم را برای مخزن اصلی ارسال می‌کنیم.
client$ git push origin master
بعد از اجرای فرمان بالا گیت برای ارسال تغییرات به سرور از پروتکل ssh استفاده می‌کند و به همین دلیل در این مرحله رمزعبور کاربر git پرسیده می‌شود.

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

other-client$ git clone git@server:/Projects/ProjectName

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

server$ git instaweb --httpd=apache2

چنانچه روی سرور، وب‌سروری غیر از apache نصب کرده‌اید مانند webrick و یا lighttpd. برای اجرای فرمان بالا از نام وب سرور به جای apache2 استفاده کنید.

با فرمان زیر نیز می‌توانید این محیط تحت وب را غیر فعال نمایید.

server$ git instaweb --httpd=apache2 --stop

بیشتر بخوانید، بیشتر بدانید

  • برای یادگیری مفاهیم کار با گیت خواندن این کتاب را توصیه می‌کنم.
  • برای تمرین دستورات گیت حتما به اینجا سر بزنید.
  • چنانچه پروژه شما متن باز است می‌توانید از سرویس رایگان github.com استفاده کنید.
  • حامد ذقاقی