<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://wiki.elinakaravi.ir/index.php?action=history&amp;feed=atom&amp;title=Git</id>
	<title>Git - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.elinakaravi.ir/index.php?action=history&amp;feed=atom&amp;title=Git"/>
	<link rel="alternate" type="text/html" href="https://wiki.elinakaravi.ir/index.php?title=Git&amp;action=history"/>
	<updated>2026-10-30T12:18:57Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.elinakaravi.ir/index.php?title=Git&amp;diff=6&amp;oldid=prev</id>
		<title>Elina در ۶ سپتامبر ۲۰۲۶، ساعت ۰۸:۰۷</title>
		<link rel="alternate" type="text/html" href="https://wiki.elinakaravi.ir/index.php?title=Git&amp;diff=6&amp;oldid=prev"/>
		<updated>2026-09-06T08:07:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.elinakaravi.ir/index.php?title=Git&amp;amp;diff=6&amp;amp;oldid=4&quot;&gt;نمایش تغییرات&lt;/a&gt;</summary>
		<author><name>Elina</name></author>
	</entry>
	<entry>
		<id>https://wiki.elinakaravi.ir/index.php?title=Git&amp;diff=4&amp;oldid=prev</id>
		<title>Elina: صفحه‌ای تازه حاوی «Git Git چیست؟  Git یک سیستم کنترل نسخه (Version Control System) است که برای مدیریت تغییرات فایل‌ها و پروژه‌ها استفاده می‌شود. Git به برنامه‌نویسان و تیم‌های توسعه کمک می‌کند تا تغییرات پروژه را ثبت کنند، به نسخه‌های قبلی برگردند و هم‌زمان روی یک پروژه کار...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://wiki.elinakaravi.ir/index.php?title=Git&amp;diff=4&amp;oldid=prev"/>
		<updated>2026-09-06T06:21:41Z</updated>

		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «Git Git چیست؟  Git یک سیستم کنترل نسخه (Version Control System) است که برای مدیریت تغییرات فایل‌ها و پروژه‌ها استفاده می‌شود. Git به برنامه‌نویسان و تیم‌های توسعه کمک می‌کند تا تغییرات پروژه را ثبت کنند، به نسخه‌های قبلی برگردند و هم‌زمان روی یک پروژه کار...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Git&lt;br /&gt;
Git چیست؟&lt;br /&gt;
&lt;br /&gt;
Git یک سیستم کنترل نسخه (Version Control System) است که برای مدیریت تغییرات فایل‌ها و پروژه‌ها استفاده می‌شود. Git به برنامه‌نویسان و تیم‌های توسعه کمک می‌کند تا تغییرات پروژه را ثبت کنند، به نسخه‌های قبلی برگردند و هم‌زمان روی یک پروژه کار کنند.&lt;br /&gt;
&lt;br /&gt;
Git بیشتر در پروژه‌های برنامه‌نویسی، طراحی سایت و توسعه نرم‌افزار استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
Git چه کاربردی دارد؟&lt;br /&gt;
&lt;br /&gt;
مهم‌ترین کاربردهای Git عبارت‌اند از:&lt;br /&gt;
&lt;br /&gt;
ثبت تغییرات فایل‌ها و پروژه&lt;br /&gt;
مشاهده تاریخچه تغییرات&lt;br /&gt;
بازگشت به نسخه‌های قبلی&lt;br /&gt;
ایجاد شاخه‌های مختلف برای توسعه قابلیت‌های جدید&lt;br /&gt;
ادغام تغییرات چند شاخه&lt;br /&gt;
همکاری چند نفر روی یک پروژه&lt;br /&gt;
اتصال پروژه به سرویس‌هایی مانند GitHub، GitLab و Bitbucket&lt;br /&gt;
نگهداری نسخه‌های مختلف یک پروژه&lt;br /&gt;
مفاهیم اصلی Git&lt;br /&gt;
&lt;br /&gt;
قبل از یادگیری دستورات Git بهتر است چند مفهوم اصلی را بشناسیم.&lt;br /&gt;
&lt;br /&gt;
Repository&lt;br /&gt;
&lt;br /&gt;
مخزن یا Repository محلی است که Git اطلاعات مربوط به پروژه و تاریخچه تغییرات آن را نگهداری می‌کند.&lt;br /&gt;
&lt;br /&gt;
یک Repository می‌تواند روی کامپیوتر یا روی سرویس‌هایی مانند GitHub قرار داشته باشد.&lt;br /&gt;
&lt;br /&gt;
Commit&lt;br /&gt;
&lt;br /&gt;
هر بار که مجموعه‌ای از تغییرات را در Git ثبت می‌کنیم، یک Commit ایجاد می‌شود.&lt;br /&gt;
&lt;br /&gt;
هر Commit مانند یک نقطه در تاریخچه پروژه است و می‌توان اطلاعات تغییرات انجام‌شده را در آن مشاهده کرد.&lt;br /&gt;
&lt;br /&gt;
Branch&lt;br /&gt;
&lt;br /&gt;
Branch یا شاخه به ما اجازه می‌دهد بدون تغییر مستقیم نسخه اصلی پروژه، روی یک قابلیت یا تغییر جدید کار کنیم.&lt;br /&gt;
&lt;br /&gt;
برای مثال می‌توان یک Branch برای توسعه قابلیت جدید و یک Branch برای نسخه اصلی پروژه داشت.&lt;br /&gt;
&lt;br /&gt;
Merge&lt;br /&gt;
&lt;br /&gt;
از Merge برای ترکیب تغییرات یک Branch با Branch دیگر استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
Remote&lt;br /&gt;
&lt;br /&gt;
Remote به یک Repository که در یک محل دیگر، معمولاً روی اینترنت، قرار دارد گفته می‌شود.&lt;br /&gt;
&lt;br /&gt;
برای مثال Repository موجود در GitHub می‌تواند Remote پروژه محلی ما باشد.&lt;br /&gt;
&lt;br /&gt;
دستورات پایه Git&lt;br /&gt;
git init&lt;br /&gt;
&lt;br /&gt;
برای تبدیل یک پوشه به Repository از دستور زیر استفاده می‌شود:&lt;br /&gt;
&lt;br /&gt;
git init&lt;br /&gt;
&lt;br /&gt;
بعد از اجرای این دستور، Git یک پوشه مخفی با نام .git ایجاد می‌کند.&lt;br /&gt;
&lt;br /&gt;
این پوشه اطلاعات مربوط به تاریخچه و تنظیمات Repository را نگهداری می‌کند.&lt;br /&gt;
&lt;br /&gt;
git status&lt;br /&gt;
&lt;br /&gt;
برای مشاهده وضعیت فعلی پروژه استفاده می‌شود:&lt;br /&gt;
&lt;br /&gt;
git status&lt;br /&gt;
&lt;br /&gt;
این دستور نشان می‌دهد:&lt;br /&gt;
&lt;br /&gt;
چه فایل‌هایی تغییر کرده‌اند&lt;br /&gt;
چه فایل‌هایی برای Commit آماده شده‌اند&lt;br /&gt;
چه فایل‌هایی هنوز توسط Git دنبال نمی‌شوند&lt;br /&gt;
در حال حاضر روی چه Branchای قرار داریم&lt;br /&gt;
git add&lt;br /&gt;
&lt;br /&gt;
برای اضافه کردن تغییرات به مرحله آماده‌سازی (Staging Area) استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
برای اضافه کردن یک فایل:&lt;br /&gt;
&lt;br /&gt;
git add index.html&lt;br /&gt;
&lt;br /&gt;
برای اضافه کردن چند فایل:&lt;br /&gt;
&lt;br /&gt;
git add index.html style.css script.js&lt;br /&gt;
&lt;br /&gt;
برای اضافه کردن تمام تغییرات:&lt;br /&gt;
&lt;br /&gt;
git add .&lt;br /&gt;
git commit&lt;br /&gt;
&lt;br /&gt;
برای ثبت تغییرات آماده‌شده در تاریخچه Git استفاده می‌شود:&lt;br /&gt;
&lt;br /&gt;
git commit -m &amp;quot;Add homepage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
عبارت داخل -m توضیح کوتاهی درباره تغییرات Commit است.&lt;br /&gt;
&lt;br /&gt;
بهتر است پیام Commit کوتاه، واضح و مرتبط با تغییرات باشد.&lt;br /&gt;
&lt;br /&gt;
git log&lt;br /&gt;
&lt;br /&gt;
برای مشاهده تاریخچه Commitها استفاده می‌شود:&lt;br /&gt;
&lt;br /&gt;
git log&lt;br /&gt;
&lt;br /&gt;
برای نمایش خلاصه‌تر:&lt;br /&gt;
&lt;br /&gt;
git log --oneline&lt;br /&gt;
&lt;br /&gt;
مثلاً:&lt;br /&gt;
&lt;br /&gt;
a83f21a Add homepage&lt;br /&gt;
52bc91d Fix navigation&lt;br /&gt;
19ac742 Initial commit&lt;br /&gt;
کار با Branch&lt;br /&gt;
مشاهده Branchها&lt;br /&gt;
&lt;br /&gt;
برای مشاهده Branchهای موجود:&lt;br /&gt;
&lt;br /&gt;
git branch&lt;br /&gt;
ایجاد Branch جدید&lt;br /&gt;
git branch feature-login&lt;br /&gt;
&lt;br /&gt;
در این حالت یک Branch جدید ایجاد می‌شود.&lt;br /&gt;
&lt;br /&gt;
تغییر Branch&lt;br /&gt;
git switch feature-login&lt;br /&gt;
&lt;br /&gt;
همچنین در نسخه‌های قدیمی‌تر Git می‌توان از دستور زیر استفاده کرد:&lt;br /&gt;
&lt;br /&gt;
git checkout feature-login&lt;br /&gt;
ایجاد و ورود هم‌زمان به Branch&lt;br /&gt;
git switch -c feature-login&lt;br /&gt;
&lt;br /&gt;
این دستور یک Branch جدید ایجاد کرده و بلافاصله وارد آن می‌شود.&lt;br /&gt;
&lt;br /&gt;
حذف Branch&lt;br /&gt;
git branch -d feature-login&lt;br /&gt;
&lt;br /&gt;
اگر Branch هنوز Merge نشده باشد، Git ممکن است از حذف آن جلوگیری کند.&lt;br /&gt;
&lt;br /&gt;
اتصال Git به GitHub&lt;br /&gt;
&lt;br /&gt;
برای اتصال Repository محلی به یک Repository روی GitHub معمولاً ابتدا Remote اضافه می‌شود:&lt;br /&gt;
&lt;br /&gt;
git remote add origin https://github.com/USERNAME/REPOSITORY.git&lt;br /&gt;
&lt;br /&gt;
برای مشاهده Remoteهای موجود:&lt;br /&gt;
&lt;br /&gt;
git remote -v&lt;br /&gt;
ارسال تغییرات به Remote&lt;br /&gt;
&lt;br /&gt;
برای ارسال Branch به Repository آنلاین:&lt;br /&gt;
&lt;br /&gt;
git push origin main&lt;br /&gt;
&lt;br /&gt;
در بسیاری از پروژه‌ها Branch اصلی با نام main است.&lt;br /&gt;
&lt;br /&gt;
برای اینکه Branch محلی برای Pushهای بعدی به Remote متصل شود:&lt;br /&gt;
&lt;br /&gt;
git push -u origin main&lt;br /&gt;
&lt;br /&gt;
پس از تنظیم اولیه، معمولاً می‌توان از:&lt;br /&gt;
&lt;br /&gt;
git push&lt;br /&gt;
&lt;br /&gt;
استفاده کرد.&lt;br /&gt;
&lt;br /&gt;
دریافت تغییرات از Remote&lt;br /&gt;
git pull&lt;br /&gt;
&lt;br /&gt;
برای دریافت تغییرات جدید و ادغام آن‌ها با Branch فعلی:&lt;br /&gt;
&lt;br /&gt;
git pull&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
git pull origin main&lt;br /&gt;
git fetch&lt;br /&gt;
&lt;br /&gt;
برای دریافت اطلاعات و تغییرات Remote بدون ادغام مستقیم آن‌ها:&lt;br /&gt;
&lt;br /&gt;
git fetch&lt;br /&gt;
&lt;br /&gt;
تفاوت مهم این دو دستور این است که fetch تغییرات را دریافت می‌کند ولی آن‌ها را به Branch فعلی Merge نمی‌کند؛ در حالی که pull معمولاً دریافت و ادغام تغییرات را با هم انجام می‌دهد.&lt;br /&gt;
&lt;br /&gt;
برگرداندن تغییرات&lt;br /&gt;
git restore&lt;br /&gt;
&lt;br /&gt;
اگر فایلی را تغییر داده‌ای ولی هنوز آن را Commit نکرده‌ای، می‌توانی تغییرات آن را کنار بگذاری:&lt;br /&gt;
&lt;br /&gt;
git restore index.html&lt;br /&gt;
&lt;br /&gt;
برای خارج کردن یک فایل از Staging Area:&lt;br /&gt;
&lt;br /&gt;
git restore --staged index.html&lt;br /&gt;
git revert&lt;br /&gt;
&lt;br /&gt;
برای ایجاد یک Commit جدید که اثر یک Commit قبلی را برعکس می‌کند:&lt;br /&gt;
&lt;br /&gt;
git revert COMMIT_ID&lt;br /&gt;
&lt;br /&gt;
این روش معمولاً برای برگرداندن تغییرات در پروژه‌هایی که تاریخچه آن‌ها به اشتراک گذاشته شده مناسب‌تر است.&lt;br /&gt;
&lt;br /&gt;
git reset&lt;br /&gt;
&lt;br /&gt;
git reset می‌تواند HEAD و وضعیت Staging را تغییر دهد.&lt;br /&gt;
&lt;br /&gt;
برای مثال:&lt;br /&gt;
&lt;br /&gt;
git reset HEAD~1&lt;br /&gt;
&lt;br /&gt;
این دستور آخرین Commit را از حالت Commit خارج می‌کند، در حالی که تغییرات فایل‌ها باقی می‌مانند.&lt;br /&gt;
&lt;br /&gt;
دستور reset به‌خصوص در حالت‌های پیشرفته باید با دقت استفاده شود.&lt;br /&gt;
&lt;br /&gt;
مشاهده تفاوت تغییرات&lt;br /&gt;
git diff&lt;br /&gt;
&lt;br /&gt;
برای مشاهده تغییراتی که هنوز Commit نشده‌اند:&lt;br /&gt;
&lt;br /&gt;
git diff&lt;br /&gt;
&lt;br /&gt;
برای مشاهده تفاوت بین دو Commit:&lt;br /&gt;
&lt;br /&gt;
git diff COMMIT1 COMMIT2&lt;br /&gt;
کار با فایل‌های نادیده گرفته‌شده&lt;br /&gt;
&lt;br /&gt;
گاهی نمی‌خواهیم بعضی فایل‌ها وارد Repository شوند.&lt;br /&gt;
&lt;br /&gt;
برای این کار از فایل:&lt;br /&gt;
&lt;br /&gt;
.gitignore&lt;br /&gt;
&lt;br /&gt;
استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
برای مثال:&lt;br /&gt;
&lt;br /&gt;
node_modules/&lt;br /&gt;
.env&lt;br /&gt;
*.log&lt;br /&gt;
&lt;br /&gt;
در این مثال:&lt;br /&gt;
&lt;br /&gt;
پوشه node_modules نادیده گرفته می‌شود.&lt;br /&gt;
فایل .env نادیده گرفته می‌شود.&lt;br /&gt;
فایل‌های دارای پسوند .log نادیده گرفته می‌شوند.&lt;br /&gt;
دستورات مهم Git در یک جدول&lt;br /&gt;
دستور	کاربرد&lt;br /&gt;
git init	ایجاد Repository&lt;br /&gt;
git status	مشاهده وضعیت پروژه&lt;br /&gt;
git add	اضافه کردن تغییرات به Staging&lt;br /&gt;
git commit	ثبت تغییرات&lt;br /&gt;
git log	مشاهده تاریخچه&lt;br /&gt;
git branch	مدیریت Branchها&lt;br /&gt;
git switch	تغییر Branch&lt;br /&gt;
git merge	ادغام Branchها&lt;br /&gt;
git remote	مدیریت Remote&lt;br /&gt;
git clone	کپی کردن یک Repository&lt;br /&gt;
git push	ارسال تغییرات به Remote&lt;br /&gt;
git pull	دریافت و ادغام تغییرات&lt;br /&gt;
git fetch	دریافت اطلاعات Remote بدون Merge&lt;br /&gt;
git diff	مشاهده تفاوت تغییرات&lt;br /&gt;
git restore	برگرداندن تغییرات فایل&lt;br /&gt;
git revert	معکوس کردن یک Commit&lt;br /&gt;
git reset	تغییر وضعیت Commit/Stage&lt;br /&gt;
git tag	ایجاد Tag برای نسخه‌ها&lt;br /&gt;
یک مثال عملی&lt;br /&gt;
&lt;br /&gt;
فرض کنید یک سایت HTML ساخته‌ایم و می‌خواهیم آن را با Git مدیریت کنیم.&lt;br /&gt;
&lt;br /&gt;
ابتدا وارد پوشه پروژه می‌شویم:&lt;br /&gt;
&lt;br /&gt;
cd my-website&lt;br /&gt;
&lt;br /&gt;
سپس Repository را ایجاد می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
git init&lt;br /&gt;
&lt;br /&gt;
وضعیت پروژه را بررسی می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
git status&lt;br /&gt;
&lt;br /&gt;
فایل‌ها را به Staging اضافه می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
git add .&lt;br /&gt;
&lt;br /&gt;
اولین Commit را ایجاد می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
git commit -m &amp;quot;Initial website&amp;quot;&lt;br /&gt;
&lt;br /&gt;
حالا اگر فایل index.html را تغییر دهیم، می‌توانیم تغییرات را مشاهده کنیم:&lt;br /&gt;
&lt;br /&gt;
git diff&lt;br /&gt;
&lt;br /&gt;
سپس تغییرات را ثبت می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
git add index.html&lt;br /&gt;
git commit -m &amp;quot;Update homepage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
به این ترتیب Git تاریخچه تغییرات سایت را نگهداری می‌کند.&lt;br /&gt;
&lt;br /&gt;
روند معمول کار با Git&lt;br /&gt;
&lt;br /&gt;
در بسیاری از پروژه‌ها روند کار به شکل زیر است:&lt;br /&gt;
&lt;br /&gt;
تغییر فایل‌ها&lt;br /&gt;
     ↓&lt;br /&gt;
git status&lt;br /&gt;
     ↓&lt;br /&gt;
git add&lt;br /&gt;
     ↓&lt;br /&gt;
git commit&lt;br /&gt;
     ↓&lt;br /&gt;
git push&lt;br /&gt;
&lt;br /&gt;
اگر پروژه دارای Repository آنلاین باشد، برای دریافت تغییرات جدید معمولاً ابتدا:&lt;br /&gt;
&lt;br /&gt;
git pull&lt;br /&gt;
&lt;br /&gt;
اجرا می‌شود.&lt;br /&gt;
&lt;br /&gt;
نکته مهم&lt;br /&gt;
&lt;br /&gt;
Git و GitHub یکی نیستند.&lt;br /&gt;
&lt;br /&gt;
Git یک سیستم کنترل نسخه است که روی کامپیوتر اجرا می‌شود.&lt;br /&gt;
&lt;br /&gt;
GitHub یک سرویس آنلاین برای میزبانی Repositoryهای Git و همکاری روی پروژه‌هاست.&lt;br /&gt;
&lt;br /&gt;
به زبان ساده:&lt;br /&gt;
&lt;br /&gt;
Git = مدیریت نسخه‌ها&lt;br /&gt;
GitHub = میزبانی و همکاری آنلاین&lt;/div&gt;</summary>
		<author><name>Elina</name></author>
	</entry>
</feed>