Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ساحة Git

اكتب الأكواد البرمجية، شغّلها وشاركها - بدون أي إعداد.

طرفية Git
user$ git init
user$ echo "hello" > app.txt
user$ git add app.txt
user$ git commit -m "Add app.txt"
user$ git checkout -b feature
user$ echo "new feature" >> app.txt
user$ git commit -am "Work on feature"
user$ git checkout main
user$ echo "fix" > fix.txt
user$ git add fix.txt
user$ git commit -m "Hotfix on main"
user$ git merge feature
user$
المستودععلى الفرع main
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 في هذه الطرفية أيضًا. حمّل سير عمل جاهزًا في موجّه الأوامر، واضغط تشغيل لمشاهدة تنفيذ كل أمر، ثم افتح الدليل الكامل لأي أمر تريد فهمه.

أنشئ مستودعًا ونفّذ أول commitهيّئ مستودعًا، وجهّز ملفًا، ونفّذ commit، ثم تحقّق من الحالة.
  1. git init
  2. git config user.name "You"
  3. git config user.email "you@example.com"
  4. echo "# My Project" > README.md
  5. git add README.md
  6. git commit -m "Initial commit"
  7. git status
  8. git log --oneline
أنشئ فرعًا وادمجهأنشئ فرعًا، وأجرِ تغييرًا، ونفّذ commit، ثم ادمج الفرع مجددًا في main.
  1. git init
  2. echo "hello" > app.txt
  3. git add app.txt
  4. git commit -m "Add app.txt"
  5. git checkout -b feature
  6. echo "new feature" >> app.txt
  7. git commit -am "Work on feature"
  8. git checkout -
  9. git merge feature
  10. git log --oneline --graph
التراجع عن آخر commitنفّذ commit تندم عليه، ثم تراجع عنه مع الاحتفاظ بتغييراتك.
  1. git init
  2. echo "v1" > notes.txt
  3. git add notes.txt
  4. git commit -m "Add notes.txt"
  5. echo "v2" >> notes.txt
  6. git commit -am "Oops, wrong message"
  7. git reset --soft HEAD~1
  8. git status
  9. git commit -m "Update notes.txt"
  10. 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 حقيقي أم محاكاة؟
Git حقيقي. كل تشغيل ينفّذ سكربتك بملف git التنفيذي الأصلي داخل حاوية Linux معزولة، فتتطابق الأوامر والـ flags والمخرجات ورسائل الخطأ مع ما تراه على جهازك. هناك أمران يُضافان عن قصد: هوية مؤلف افتراضية (يتجاوزها أمر git config user.name الخاص بك، تماماً كما يحدث محلياً) وتواريخ كوميتات مثبّتة، حتى تكون بصمات الكوميتات نفسها في كل تشغيل. لا شيء يستطيع أن يطلب منك إدخالاً أثناء التشغيل، لذا يحتاج أمر تفاعلي مثل git rebase -i إلى محرّر محدَّد عبر السكربت - والأمثلة توضّح كيف.
كيف يعمل رسم الكوميتات؟
بعد كل تعليمة في سكربتك تسجّل البيئة المعزولة كوميتات المستودع ومراجعه وHEAD وقائمة الـ stash وgit status. ترسم الصفحة الشجرة من هذه اللقطات: مسار لكل فرع، ودمج على شكل منحنى، وكل ref كوسم. انقر على رقم خطوة لترى المستودع كما كان مباشرة بعد ذلك السطر. في جلسة طويلة جداً تُلتقط الأوامر السابقة عند نهايتها فقط، ويعرض شريط الخطوات الحالات التي سُجّلت فعلياً لا غير.
هل يمكنني التدرّب هنا على التفريع والدمج وإعادة الأساس؟
نعم - وهذا هو الغرض من الرسم. أنشئ فروعاً واعمل عليها كوميتات، ثم ادمج وأعد الأساس واستخدم cherry-pick و reset و revert، وشاهد كيف تغيّر كل عملية الصورة. إنه بديل عملي للعبة التفريع، لكن بـ Git حقيقي تحته.
هل يمكنني استخدام git push و pull و fetch و clone؟
مع مستودع بعيد محلي، نعم. لا تملك البيئة المعزولة اتصالاً بالشبكة، لذا لا يستطيع git clone https://… الوصول إلى الإنترنت. أنشئ مستودع bare في مجلد فرعي (git init --bare remote.git)، أضفه باسم origin، ثم ادفع واجلب واسحب واستنسخ منه - وستظهر فروع التتبّع البعيدة في الرسم كما تظهر مع GitHub.
هل يبقى عملي محفوظاً بين التشغيلات؟
لا. كل تشغيل يبدأ من مجلد فارغ ويعيد تنفيذ السكربت كاملاً، وهذا بالضبط ما يجعل الخط الزمني ممكناً. أبقِ أوامرك في موجّه الإدخال (Shift+Enter يضيف سطراً)، واستخدم إعادة تعيين للعودة إلى السكربت الابتدائي.
ما الفرق بين هذه الصفحة وطرفية Linux أونلاين؟
إنها الطرفية المعزولة نفسها - و Git يعمل هناك أيضاً - مع إضافة لوحة للمستودع. صفحة طرفية Linux مخصّصة لأوامر الصدفة وسكربتاتها، أما هذه الصفحة فتركّب جلستك بحيث يُلتقط رسم الكوميتات وحالة شجرة العمل بعد كل سطر.
هل توجد دورة تعلّم Git من الصفر؟
نعم. دورة Git المجانية من Coddy تمتد من git init إلى الفروع وعمليات الدمج وإعادة الأساس والمستودعات البعيدة مع تمارين مصحَّحة، ولكل صفحة أمر في مرجع أوامر Git زر "جرّبه مباشرةً" يفتح هذه الساحة بمثال قابل للتشغيل.