Farzad Sarseifi

آموزش کامل Git

17 ارسال در این موضوع قرار دارد

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

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

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

 

تاریخچهٔ Git

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

تا قبل از ۲۰۰۲ برای گسترش کرنل از هیچ نرم‌افزار کنترل نسخه استفاده نمی‌شد و هر فردی که در گسترش کرنل نقش داشت به شکل خصوصی از نرم‌افزارهایی مانند SVN/CVS استفاده می‌کرد و دلیلش آن بود که هیچ‌کدام از نرم‌افزارهای کنترل نسخه این توانایی را نداشتند که حجم تغییرهایی که در لینوکس اتفاق می‌افتاد را پشتیبانی کنند. در این سال لینوس از BitKeeper به عنوان نرم‌افزار کنترل نسخه رسمی لینوکس استفاده کرد که به گسترش دهنده‌های کرنل (هر پروژهی متن باز) اجازه می‌داد به صورت رایگان از BitKeeper استفاده کنند.

در سال ۲۰۰۵ اجازهٔ استفاده رایگان از Bitkeeper برای گسترش دهندگان لینوکس محدود شد (به دلیل انجام مهندسی معکوس روی Bitkeeper) و لینوس شروع به جستجو برای یافتن جایگزینی مناسب کرد. اما نرم‌افزار مناسبی پیدا نکرد که بتواند حجم تغییر لینوکس را مدیریت کنند و این کمبود سبب شد تا توروالدز به فکر نوشتن یک نرم‌افزار کنترل نسخه بیفتد. توسعه گیت در ماه آوریل سال ۲۰۰۵ آغاز شد و تنها ۲ هفته بعد از شروع توسعه، گیت قادر بود شاخه‌ها (branch) را ادغام (merge) کند. ۲ ماه بعد گیت به عنوان نرم‌افزار کنترل نسخه رسمی برای گسترش لینوکس مورد استفاده قرار گرفت.

 

ساختار گیت

در طراحی گیت از نرم‌افزارهای Bitkeeper و Monotone الهام گرفته شده است. گیت در ابتدا به صورت یک نرم نرم‌افزار کنترل نسخه سطح پایین نوشته شد به این صورت که دیگران بتوانند برای آن نرم‌افزار لایه رویی بنویسند. با این که گیت از bitkeeper تاثیرها و الهام زیادی داشته است در آن تلاش شده است که روش‌های استفاده شده منحصر به فرد باشند.

اطلاعات کلی

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

حمایت قوی از برنامه‌نویسی غیر خطی

گیت از ادغام‌سازی و شاخه‌سازی متوالی پشتیبانی می‌کند؛ و در آن ابزارهای ویژه تصویر و سازی و جست و جو در تاریخچه کد تعبیه شده است. در گیت فرض بر این بوده است که معمولاً ادغام سازی تغییرهای بیشتر از ایجاد و نوشتن تغییرهای جدید انجام می‌شود. همچنین در گیت شاخه‌سازی کم هزینه است و هر شاخه‌سازی تنها لینکی به یک تغییر دارد؛ و با استفاده از روابط وراثتی در شاخه سازی‌ها شکل کلی بعد از هر شاخه سازی بدست می‌آید.

برنامه‌نویسی توزیع شده

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

تطبیق پذیری و با سیستم‌های خارجی و پروتوکل‌ها

تاریخچه می‌تواند در فرمت‌های مختلفی از جمله پروتکل انتقال ابرمتن (HTTP) و پروتکل انتقال فایل (FTP) و آرسینک و یا یک پروتوکل گیت تحت سوکت یا پوسته ایمن (SSH) منتشر شود. همچنین یک سازنده سرور سیستم نسخه‌های هم‌روند دارد که توسط آن سیستم نسخه‌های هم‌روند کاربر و محیط یکپارچه توسعه نرم‌افزار (IDE) می‌توانند به تاریخچه گیت دسترسی پیدا کنند.

پردازش بهینه برای پروژه‌های بزرگ

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

امنیت دسترسی پذیری به تاریخچه

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

طراحی وابسته به ابزار

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

استراتژی‌های ادغام‌سازی قابل اتصال

الگوریتم ادغام‌سازی گیت یک ادغام‌سازی کامل نیست؛ و در مواردی که نتواند ادغام سازی را انجام دهد به کاربر اطلاع داده و از اون می‌خواهد تا استراتژی مورد نظر خود برای ادغام‌سازی را انتخاب کند.

آشغال‌ها باقی می‌مانند تا وقتی جمع‌آوری شوند.

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

git gc --prune
جمع‌آوری دوره‌ای داده‌های مجزا

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

داده ساختار

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

این پایگاه داده چهار نوع داده را ذخیره می‌کند.

  • حباب (blob) شامل اطلاعات یک فایل است. blob دارای نام و یا تاریخ نیست و نام آن از اطلاعات داخل آن نشئت می‌گیرد.
  • درخت (tree) نشئت گرفته از یک پوشه است و لیستی از مجموعه فایل‌ها را ذخیره می‌کند. در این لیست لینک‌های مربوطه به حباب‌ها ذخیره می‌شود.
  • اعمال (commit) مجموعه‌ای از درخت‌ها را در خود ذخیره می‌کند. شمال اسم درخت‌ها، تاریخ اعمال، توضیحات (log message) و نام‌ها مربوط به اعمال‌های والدین خود است.
  • تگ (tag) شامل یک اشاره به یک داده دیگر است که در آن فراداده مربوطه ذخیره می‌شود. اخیراً از آن برای نگهداری امضاهای مربوطه نیز استفاده می‌شود.

سرورهای گیت عموماً از پورت (TCP port 9418) استفاده می‌کنند.

رابطه‌ها

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

  • سر (head): به صورت محلی به یک داده اشاره دارد.
  • کنترل از دور (remote): به یک داده خارجی اشاره دارد.
  • ذخیره‌ای (stash): به یک داده که هنوز اعمال نشده اشاره دارد.
  • پرچم (tag): در بالاتر توضیح داده شد.

در پوشهٔ پایهٔ هر پروژه که با استفاده از گیت مدیریت می‌شود پوشه‌ای با نام git. (نقطه git) وجود دارد که تمامی اطلاعات مربوط به پروژه (تاریخچه، برچسب‌ها، ...) را در خود نگه می‌دارد. این ساختار بر خلاف ساختار سابورژن است که در هر زیرشاخه یک پوشهٔ svn. (نقطه svn) دارد. از جمله پرونده‌هایی که در پوشهٔ git. وجود دارند، config است که تنظیمات مخزن را در خود نگه می‌دارد.

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با سپاس فراوان

بی صبرانه منتظر ادامه آموزش هستیم

تا اگر امکان دارد از این طریق محصولات این سایت را تولید کنیم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آموزش Egit :

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

http://www.eclipse.org/egit

سپس از طریق منوی Help->install new software آن را در ایکلیپس نصب کنید(بهتراست نت خود را قطع کنید تا زود پلاگین نصب شود).

پس از نصب آن،برای وارد کردن گیت،باید بدین روش اقدام کنید :

File->Import->Git->Project From Git را انتخاب کنید.

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

[align=center]427x400http://www.uploadtak.com/images/t6497_git1.png[/img][/align]

برای وارد کردن کد گیت باید آدرس گیت را وارد کنید.برای تست کار آدرسی از سایت گیت هاب قرار داده میشود

https://github.com/simogeo/Filemanager

این آدرس را در URL وارد میکنیم و بطور اتوماتیک ایتم های بعدی پر میشوند.

دکمه Next را بزنید تا فایل برای شما دانلود شود.

در آموزش بعدی نحوه کار با کد دانلود شده قرار میگیرد

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام تو این آموزش دومی من دکمه clone ندیدم رفتم تو import>git>projects from git> url بعدسایتی که دادی رو وارد کردم ارور داد هیچی نیومد اصلا میشه توضیح بدی چیکار کنم ؟

بعد اگه بخواهم یک پروژه رو با کمک سایت گیت درست کنم یعنی کاربران دیگه سایت کمکم کنن باید چیکار کنم ؟ مرسی 

عکس ارور 

 41263840716669310293.jpg

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

یک آدرس دیگر را تست کنید،شاید اون پروژه دیگر موجود نباشد.

در اون مورد باید یک آموزش جدا ایجاد کنم،چون سورس کنترل بحثی بسیار مهم برای برنامه نویسان میباشد که حتما باید با آنها آشنا باشند

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

.

دوستان!

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

کد خودمان را در کجا باید قرار بدیم؟ در githgnore? یا در فایل دیگری؟ اگر در فایل دیگری باید قرار بدیم، آن فایل را چگونه ایجاد کنیم؟

لطفاً راهنمائی کنید

ممنون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آموزش کا مل گیت در این سایت وجود دارد.

این آموزش ها در حال ترجمه به زبان شیرین فارسی است.

آموزش

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

یکی از بزرگترین و بهترین سایت های ارائه دهنده هاست برای نسخه کنترل، سایت https://bitbucket.org هست که 1 گیگ هم فظا به هر برنامه نویس میدهد. البته که بهترین همه اینها سایت معروف Github هست ولی این بیت باکت تقریبا یک سرویس کاملا مطمئن و امن میباشد. امکان استفاده 5نفر را هم به صورت رایگان میدهد

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

موفق و سربلند باشید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام. عالی آموزش دادین. متشکر . فقط لطفااا ادامه دار باشه :)

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ببخشیدمی تونم ازسورس هایgithubاستفاده کنم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

RE: آموزش کامل Git - دیروز, 10:02 PM

[align=right]ببخشیدمی تونم ازسورس هایgithubاستفاده کنم خواهشا جواب بدید[/align]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آیا میشه Git رو با فریم وورک هایی مانند Laravel ترکیب کرد؟

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

میشه بیشتر در مورد امکانات Git توضیح بدید.:)

مرسی

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 3 دقیقه قبل، mohi72 گفته است :

میشه بیشتر در مورد امکانات Git توضیح بدید.:)

مرسی

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

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

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

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری