ساحة Git
اكتب الأكواد البرمجية، شغّلها وشاركها - بدون أي إعداد.
git log --oneline --graph --allالالتزامات بعد هذه الخطوة
- ea85bd9 Merge branch 'feature' (HEAD -> main) <- f5363c6, 47b6cfb
- 47b6cfb Work on feature (feature) <- b2134da
- f5363c6 Hotfix on main <- b2134da
- b2134da Add app.txt
- شجرة العمل نظيفة
كل تشغيل يعيد تنفيذ السكربت بالكامل ويلتقط حالة المستودع بعد كل سطر. انقر على خطوة لرؤية الرسم في تلك اللحظة.
جرّب أوامر Git الشائعة
يعمل Git في هذه الطرفية أيضًا. حمّل سير عمل جاهزًا في موجّه الأوامر، واضغط تشغيل لمشاهدة تنفيذ كل أمر، ثم افتح الدليل الكامل لأي أمر تريد فهمه.
git initecho "hello" > app.txtgit add app.txtgit commit -m "Add app.txt"git checkout -b featureecho "new feature" >> app.txtgit commit -am "Work on feature"git checkout -git merge featuregit log --oneline --graph
git initecho "v1" > notes.txtgit add notes.txtgit commit -m "Add notes.txt"echo "v2" >> notes.txtgit commit -am "Oops, wrong message"git reset --soft HEAD~1git statusgit commit -m "Update notes.txt"git log --oneline
ساحة Git أونلاين مع رسم كوميتات حيّ
ساحة Git مجانية تشغّل git الحقيقي داخل طرفية Linux معزولة، لا محاكاة مكتوبة بجافاسكريبت. اكتب الأوامر على اليسار - git init وgit add وgit commit وgit branch وgit merge وgit rebase وgit reset - ثم اضغط تشغيل، فتعيد لوحة المستودع على اليمين رسم شجرة الكوميتات والفروع وHEAD وشجرة العمل بعد كل سطر من سكربتك. إنها أسرع طريقة للتدرّب على Git أونلاين ورؤية ما فعله كل أمر فعلياً.
كل تشغيل يعيد تنفيذ السكربت كاملاً من مجلد فارغ ويلتقط لقطة للمستودع بعد كل تعليمة، فيمكنك النقر على أي خطوة ورؤية الرسم في تلك اللحظة بالضبط. الكوميت الذي تركه git reset خلفه يبقى في الصورة باهتاً، حتى يُظهر التراجع ما الذي تراجع عنه. لا شيء لتثبيته، ولا حساب مطلوب، ولا يُمَسّ أي مستودع من مستودعاتك.
ما الذي يميّز ساحة Git هذه
- Git حقيقي ومخرجات حقيقية: تشغّل البيئة المعزولة ملف
gitالتنفيذي الأصلي على Linux، فتتصرّف رسائل الخطأ وgit log --graphوgit statusوالـ flags كما على جهازك - على عكس محاكي Git الذي لا يعرف سوى الأوامر التي صمّمها مؤلفوه. الفارق المتعمَّد الوحيد: هوية المؤلف وتواريخ الكوميتات ثابتة، فتبقى البصمات نفسها بين تشغيل وآخر. - رسم كوميتات يتحدّث بعد كل سطر: الفروع كمسارات، وعمليات الدمج كمنحنيات، و
HEADوكل ref كوسم فوق الكوميت الخاص به، إضافة إلى الملفات المُدرَجة والمعدّلة وغير المتعقَّبة والمتعارضة المقروءة منgit status. انقر على أي خطوة لتتنقّل عبر تاريخ جلستك. - تدرّب على الأوامر الأكثر بحثاً: التراجع عن كوميت، ودمج الكوميتات بـ squash، وإعادة الأساس على main، و cherry-pick، و stash، وحلّ تعارض دمج، والدفع القسري بأمان. حمّل سير عمل جاهزاً في الأسفل، أو افتح أي صفحة من مرجع أوامر Git واضغط "جرّبه مباشرةً".
- مستودعات بعيدة بلا شبكة: أنشئ مستودع bare محلياً، أضفه باسم
origin، وتدرّب علىgit pushوgit fetchوgit pullوgit cloneعليه. يُظهر الرسمorigin/mainوهو يتحرّك بجوارmain. - تشغيلات حتمية: التواريخ وهوية المؤلف مثبّتة، فالسكربت نفسه ينتج دائماً بصمات كوميت متطابقة. شارك سكربتاً مع زميل وسيرى كلاكما الرسم ذاته.
ما الذي يمكن تجربته في ساحة Git
- التفريع والدمج:
git checkout -b feature، اعمل كوميت عليه، ثم عد إلىmainواعمل كوميت هناك أيضاً، ثمgit merge featureوشاهد كوميت الدمج يصل المسارين. - تراجع بأمان: اعمل كوميت تندم عليه، ثم شغّل
git reset --soft HEAD~1وشاهد الكوميت يبهت من الرسم بينما تعود تغييراتك كملفات مُدرَجة. بعدها جرّبgit revertوقارن. - rebase مقابل merge: ابنِ التاريخ نفسه بفرعين مرتين، أنهِ أحدهما بـ
git mergeوالآخر بـgit rebase main، ثم قارن شكل الرسمين جنباً إلى جنب. - تعارض دمج متعمّد: غيّر السطر نفسه في فرعين، ادمج، وشاهد الملف يظهر في صف التعارضات. أصلحه، ثم
git addوgit commit، وسترى التعارض يختفي.
أسئلة شائعة عن ساحة Git
هل ساحة Git هذه مجانية؟
هل هذا Git حقيقي أم محاكاة؟
git التنفيذي الأصلي داخل حاوية Linux معزولة، فتتطابق الأوامر والـ flags والمخرجات ورسائل الخطأ مع ما تراه على جهازك. هناك أمران يُضافان عن قصد: هوية مؤلف افتراضية (يتجاوزها أمر git config user.name الخاص بك، تماماً كما يحدث محلياً) وتواريخ كوميتات مثبّتة، حتى تكون بصمات الكوميتات نفسها في كل تشغيل. لا شيء يستطيع أن يطلب منك إدخالاً أثناء التشغيل، لذا يحتاج أمر تفاعلي مثل git rebase -i إلى محرّر محدَّد عبر السكربت - والأمثلة توضّح كيف.كيف يعمل رسم الكوميتات؟
HEAD وقائمة الـ stash وgit status. ترسم الصفحة الشجرة من هذه اللقطات: مسار لكل فرع، ودمج على شكل منحنى، وكل ref كوسم. انقر على رقم خطوة لترى المستودع كما كان مباشرة بعد ذلك السطر. في جلسة طويلة جداً تُلتقط الأوامر السابقة عند نهايتها فقط، ويعرض شريط الخطوات الحالات التي سُجّلت فعلياً لا غير.هل يمكنني التدرّب هنا على التفريع والدمج وإعادة الأساس؟
هل يمكنني استخدام git push و pull و fetch و clone؟
git clone https://… الوصول إلى الإنترنت. أنشئ مستودع bare في مجلد فرعي (git init --bare remote.git)، أضفه باسم origin، ثم ادفع واجلب واسحب واستنسخ منه - وستظهر فروع التتبّع البعيدة في الرسم كما تظهر مع GitHub.هل يبقى عملي محفوظاً بين التشغيلات؟
ما الفرق بين هذه الصفحة وطرفية Linux أونلاين؟
هل توجد دورة تعلّم Git من الصفر؟
git init إلى الفروع وعمليات الدمج وإعادة الأساس والمستودعات البعيدة مع تمارين مصحَّحة، ولكل صفحة أمر في مرجع أوامر Git زر "جرّبه مباشرةً" يفتح هذه الساحة بمثال قابل للتشغيل.