Skip to content

أوامر Git مشروحة

أوامر Git التي تستخدمها فعلًا، مجمّعة حسب المهمة: إعداد مستودع، حفظ لقطات العمل، التفريع والدمج، قراءة السجل، المشاركة عبر مستودع بعيد، التراجع عن الأخطاء، الحفظ المؤقت للعمل، وإدارة الملفات والوحدات الفرعية. كل صف يقرن الأمر باستدعاء واقعي.

يحتوي Git على مئات الأوامر، لكن العمل اليومي يحتاج إلى قليل منها فقط. النموذج الذهني هو: شجرة العمل هي ملفاتك، والفهرس (منطقة التحضير) هو الالتزام القادم، وHEAD هو الالتزام الحالي. تحضّر، تلتزم، تشارك. اقرأ الحالة كثيرًا. كل ما يلي يفترض أن الأمر المذكور موجود أصلًا.

جدول مرجعي · 55 مدخلات
55 of 55 rows
الإعداد والضبط
يعيّن اسمك أو بريدك أو محررك مرة واحدة لكل المستودعات.git config --global user.name "Ada"
يحدد اسمًا مختصرًا لأمر تكتبه كثيرًا.git config --global alias.co checkout
ينشئ مستودعًا جديدًا في المجلد الحالي.git init
ينسخ مستودعًا بعيدًا إلى جهازك.git clone git@github.com:org/repo.git
ينسخ أحدث الالتزامات لفرع واحد فقط.git clone --depth 1 --single-branch git@github.com:org/repo.git
أساسيات اللقطات
يعرض ما هو محضر وما هو معدل وغير متتبع.git status -sb
يحضر التغييرات لتدخل الالتزام القادم.git add src/app.ts
راجع التغييرات جزءًا جزءًا وحضر ما تقبله فقط.git add -p src/app.ts
يحضر تغييرات كل الملفات المتتبعة دون إضافة ملفات جديدة.git add -u
يسجل التغييرات المحضرة كالتزام جديد.git commit -m "fix: null check"
يستبدل آخر التزام بنسخة مصححة.git commit --amend -m "fix: handle empty input"
يعرض التغييرات غير المحضرة، أو المحضرة مع --staged.git diff --staged
يعرض كل تغيير منذ آخر التزام، محضرًا كان أم لا.git diff HEAD
التفريع والدمج
يعرض الفروع أو ينشئها أو يحذفها.git branch feature-x
يحذف فرعًا مدموجًا (-D يجبر الحذف، و-a يعرض كل الفروع).git branch -d feature-x
بدّل الفروع (البديل الحديث للأمر checkout).git switch feature-x
ينشئ فرعًا جديدًا وينتقل إليه في خطوة واحدة.git switch -c feature-x
بدّل الفروع أو استعد الملفات (الأمر الأقدم والأوسع).git checkout feature-x
يجلب تغييرات فرع آخر إلى الفرع الحالي.git merge feature-x
يلغي دمجًا متضاربًا ويعيد الفرع إلى حالته السابقة.git merge --abort
يعيد تشغيل التزامات الفرع الحالي فوق فرع آخر.git rebase main
ادمج الالتزامات أو أعد ترتيبها أو حررها أثناء إعادة تشغيلها.git rebase -i main
ينسخ التزامًا واحدًا من فرع آخر إلى هذا الفرع.git cherry-pick a1b2c3d
يوسم التزامًا بعلامة مقروءة مثل رقم إصدار.git tag -a v1.2.0
يفحص فرعًا آخر في مجلد منفصل في الوقت نفسه.git worktree add ../repo-feature feature-x
فحص السجل
يتنقل عبر سجل الالتزامات.git log --oneline --graph --decorate
يتنقل عبر سجل كل الفروع، لا الفرع الحالي فقط.git log --oneline --graph --all
يعرض الفرق الكامل ورسالة التزام واحد.git show HEAD
يعرض من غير كل سطر من الملف آخر مرة.git blame src/app.ts
يعرض كل التزام أشار إليه HEAD، بما فيها المتروكة.git reflog
يبحث في السجل بالتنصيف لإيجاد الالتزام الذي كسر شيئًا.git bisect start
يلخص الالتزامات حسب المؤلف.git shortlog -sn
يسمي الالتزام الحالي بالعد من أقرب وسم.git describe --tags
التعاون عبر المستودعات البعيدة
يعرض المستودعات البعيدة أو يضيفها.git remote add origin <url>
يعرض البعيد مع عناوين الجلب والدفع.git remote -v
ينزل التغييرات البعيدة دون تغيير فروعك.git fetch origin
ينزل التغييرات البعيدة ويسقط مراجع الفروع البعيدة المحذوفة.git fetch --prune
ينزل تغييرات الفرع البعيد الحالي ويدمجها.git pull --rebase
يرسل الالتزامات المحلية إلى المستودع البعيد.git push -u origin feature-x
يستبدل الفرع البعيد، لكن فقط إن لم يدفع أحد قبلك.git push --force-with-lease origin feature-x
التراجع عن التغييرات
يتخلص من تغييرات شجرة العمل، أو يلغي تحضيرها.git restore src/app.ts
يلغي تحضير ملف ويبقي تعديلاته في شجرة العمل.git restore --staged src/app.ts
ينقل طرف الفرع الحالي والفهرس اختياريًا.git reset --hard HEAD~1
يضيف التزامًا جديدًا يتراجع عن التزام سابق (آمن للمشاركة).git revert HEAD
يحذف الملفات والمجلدات غير المتتبعة.git clean -fd
الحفظ المؤقت (stash)
يحفظ العمل غير الملتزم ويعيد ضبط شجرة العمل.git stash -u
يعرض كل ما حفظته من عناصر stash.git stash list
يعيد تطبيق عنصر stash ويبقيه محفوظًا.git stash apply stash@{1}
يحذف عنصر stash لم تعد بحاجته.git stash drop stash@{1}
يعيد تطبيق أحدث عنصر stash ويحذفه.git stash pop
الملفات والوحدات الفرعية
ينقل ملفًا أو يعيد تسميته ويحضر التغيير.git mv old.ts src/new.ts
يحذف ملفًا ويحضر الحذف.git rm src/old.ts
يتتبع مستودعًا آخر كمجلد داخل هذا المستودع.git submodule add git@github.com:org/lib.git lib
يفحص فقط المجلدات التي تسميها من مستودع كبير.git sparse-checkout set src docs
يصدر شجرة التزام كملف tar أو zip.git archive -o repo.zip HEAD