واجهة مستخدم طرفية بسيطة لأوامر git
أصبحت صيانة هذا المشروع ممكنة بفضل جميع المساهمين والجهات الراعية. إذا كنت ترغب في رعاية هذا المشروع وظهور الصورة الرمزية الخاصة بك أو شعار الشركة أدناه، فانقر هنا. ؟
وقت التشدق: لقد سمعت ذلك من قبل، git قوي ، ولكن ما فائدة هذه القوة عندما يكون القيام بكل شيء صعبًا جدًا؟ هل تتطلب عملية إعادة التأسيس التفاعلية تحرير ملف TODO اللعين في المحرر الخاص بك؟ هل تمزح معي؟ لتنظيم جزء من ملف، يجب عليك استخدام برنامج سطر الأوامر للتنقل خلال كل قطعة كبيرة، وإذا لم يكن من الممكن تقسيم قطعة كبيرة إلى أجزاء أخرى ولكنها تحتوي على تعليمات برمجية لا ترغب في تنظيمها، فيجب عليك تحرير ملف تصحيح غامض باليد ؟ هل تمزح معي؟! في بعض الأحيان يُطلب منك تخزين تغييراتك عند تبديل الفروع فقط لتدرك أنه بعد التبديل وإلغاء التخزين، لم يكن هناك أي تعارضات وكان من الجيد مجرد الخروج من الفرع مباشرة؟ عليك أن تمزح معي!
إذا كنت مجرد بشر مثلي وتعبت من سماع مدى قوة الجيت عندما يكون ذلك بمثابة ألم قوي في مؤخرتك في حياتك اليومية، فقد يكون الكسلجيت مناسبًا لك.
Lazygit ليست وظيفتي بدوام كامل ولكنها وظيفة كبيرة بدوام جزئي، لذا إذا كنت ترغب في دعم المشروع، فيرجى التفكير في رعايتي
اضغط على مسافة على الخط المحدد لعرضه، أو اضغط على v
لبدء تحديد نطاق من الخطوط. يمكنك أيضًا الضغط على a
لتحديد المجموعة الحالية بالكامل.
اضغط على i
لبدء عملية إعادة قاعدة تفاعلية. ثم سحق ( s
) أو إصلاح ( f
) أو إسقاط ( d
) أو تحرير ( e
) أو نقل لأعلى ( ctrl+i
) أو تحريك لأسفل ( ctrl+j
) أي من التزامات TODO، قبل مواصلة إعادة الأساس عن طريق إظهار إعادة الأساس قائمة الخيارات مع m
ثم تحديد continue
.
يمكنك أيضًا تنفيذ أي من هذه الإجراءات لمرة واحدة (على سبيل المثال الضغط على s
عند الالتزام لسحقها) دون بدء عملية إعادة الأساس بشكل صريح.
يستخدم هذا العرض التوضيحي أيضًا Shift+down لتحديد نطاق من الالتزامات للنقل والإصلاح.
اضغط على shift+c
عند الالتزام لنسخه واضغط على shift+v
للصقه (اختيار الكرز).
اضغط على b
في عرض الالتزامات لوضع علامة على الالتزام بأنه جيد/سيئ لبدء منصف git.
لأنه عندما تريد حقًا التخلص من أي شيء يظهر عند تشغيل git status
(ونعم يتضمن وحدات فرعية قذرة) بأسلوب kidpix، اضغط على shift+d
لإظهار قائمة خيارات إعادة التعيين ثم حدد خيار "nuke".
سيؤدي الضغط على shift+a
في أي التزام إلى تعديل هذا الالتزام مع التغييرات المرحلية حاليًا (تشغيل إعادة قاعدة تفاعلية في الخلفية).
يمكنك تصفية العرض باستخدام /
. هنا نقوم بتصفية عرض الفروع ثم نضغط على enter
لعرض التزاماتها.
يحتوي Lazygit على نظام أوامر مخصص مرن للغاية. في هذا المثال، يتم تعريف أمر مخصص يحاكي إجراء الخروج من الفرع المضمن.
يمكنك إنشاء أشجار عمل بحيث تحتوي على فروع متعددة تعمل في وقت واحد دون الحاجة إلى التخزين أو إنشاء التزامات WIP عند التبديل بينها. اضغط على w
في عرض الفروع لإنشاء شجرة عمل من الفرع المحدد والانتقال إليه.
يمكنك إنشاء تصحيح مخصص من التزام قديم، ثم إزالة التصحيح من الالتزام، وتقسيم التزام جديد، وتطبيق التصحيح بشكل عكسي على الفهرس، والمزيد.
في هذا المثال لدينا تعليق زائد ونريد إزالته من التزام قديم. نضغط على
عند الالتزام لعرض ملفاته، ثم
على ملف للتركيز على التصحيح، ثم
لإضافة سطر التعليق إلى تصحيحنا المخصص، ثم ctrl+p
لعرض خيارات التصحيح المخصصة ; تحديد إزالة التصحيح من الالتزام الحالي.
تعرف على المزيد في البرنامج التعليمي Rebase Magic Youtube.
لنفترض أنك في فرع مميز تم تفرعه من فرع التطوير، وقررت أنك تفضل التفرع من الفرع الرئيسي. أنت بحاجة إلى طريقة لإعادة تحديد الالتزامات من فرع الميزات الخاص بك فقط. في هذا العرض التوضيحي، نتحقق لمعرفة ما هو الالتزام الأخير في فرع التطوير، ثم اضغط على shift+b
لوضع علامة على هذا الالتزام باعتباره التزامًا أساسيًا لدينا، ثم اضغط على r
على الفرع الرئيسي لإعادة الأساس إليه، مع عرض الالتزامات فقط من لدينا فرع الميزة. ثم ندفع تغييراتنا باستخدام shift+p
.
يمكنك التراجع عن الإجراء الأخير بالضغط على "z" ثم إعادته باستخدام ctrl+z
. نحن هنا نسقط بعض الالتزامات ثم نتراجع عن الإجراءات. يستخدم التراجع عملية إعادة التسجيل الخاصة بالالتزامات والفروع حتى لا نتمكن من التراجع عن التغييرات التي تم إجراؤها على شجرة العمل أو التخزين.
مزيد من المعلومات
عند عرض الرسم البياني للالتزام في نافذة مكبرة (استخدم +
_
للتنقل بين أحجام النوافذ)، يتم عرض الرسم البياني للالتزام. تتوافق الألوان مع مؤلفي الالتزام، وأثناء التنقل لأسفل الرسم البياني، يتم تمييز الالتزامات الأصلية للالتزام المحدد.
إذا قمت بالضغط على shift+w
عند الالتزام (أو الفرع/المرجع)، فسيتم فتح قائمة تسمح لك بوضع علامة على هذا الالتزام بحيث يتم تمييز أي التزام آخر تحدده مقابله. بمجرد تحديد الالتزام الثاني، سترى الفرق في العرض الرئيسي وإذا ضغطت على
سترى ملفات الفرق. يمكنك الضغط على shift+w
لعرض قائمة الفرق مرة أخرى لرؤية خيارات مثل عكس اتجاه الفرق أو الخروج من وضع الفرق. يمكنك أيضًا الخروج من وضع الاختلاف بالضغط على
.
تتم صيانة معظم الحزم المذكورة أعلاه من قبل أطراف ثالثة، لذا تأكد من فحصها بنفسك والتأكد من أن المشرف هو شخص جدير بالثقة ويحضر الألعاب الرياضية المحلية ويقدم الدعم لمجتمعاته من خلال حملات جمع التبرعات لحفلات الشواء وما إلى ذلك.
بالنسبة لنظام التشغيل Windows أو Mac OS(10.12+) أو Linux، يمكنك تنزيل الإصدار الثنائي هنا.
عادة يمكن العثور على صيغة Lazygit في قلب Homebrew ولكننا نقترح عليك النقر على صيغتنا للحصول على الصيغة التي يتم تحديثها بشكل متكرر. وهو يعمل مع نظام Linux أيضًا.
مقبض:
brew install jesseduffield/lazygit/lazygit
جوهر:
brew install lazygit
أحدث إصدار تم إنشاؤه من إصدارات جيثب. مقبض:
sudo port install lazygit
تتوفر حزم Void Linux في مستودع التوزيعة
إنهم يتابعون أحدث الإصدارات
sudo xbps-install -S lazygit
يمكنك تثبيت lazygit
باستخدام سكوب. إنه موجود في دلو extras
:
# Add the extras bucket
scoop bucket add extras
# Install lazygit
scoop install lazygit
تتوفر حزم Arch Linux عبر pacman وAUR (مستودع مستخدم Arch).
هناك نوعان من الحزم. الإصدار المستقر الذي تم إنشاؤه بأحدث إصدار وإصدار git الذي تم إنشاؤه من أحدث التزام.
sudo pacman -S lazygit
يمكن العثور على تعليمات حول كيفية تثبيت محتوى AUR هنا: https://wiki.archlinux.org/index.php/Arch_User_Repository
تتوفر حزم Fedora/RHEL وCentOS Stream عبر Copr (Cool Other Package Repo).
sudo dnf copr enable atim/lazygit -y
sudo dnf install lazygit
sudo eopkg install lazygit
LAZYGIT_VERSION= $( curl -s " https://api.github.com/repos/jesseduffield/lazygit/releases/latest " | grep -Po ' "tag_name": "vK[^"]* ' )
curl -Lo lazygit.tar.gz " https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_ ${LAZYGIT_VERSION} _Linux_x86_64.tar.gz "
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
التحقق من التثبيت الصحيح لـ Lazygit:
lazygit --version
يحتوي Funtoo Linux على حزمة Lazygit تم إنشاؤها تلقائيًا في مجموعة أدوات التطوير:
sudo emerge dev-vcs/lazygit
Lazygit ليس (حتى الآن) موجودًا في منفذ Gentoo الرئيسي، ومع ذلك يتوفر إصدار إلكتروني في تراكب GURU
يمكنك إما إضافة التراكب إلى نظامك وتثبيت Lazygit كالمعتاد:
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge dev-vcs/lazygit
حزمة Lazygit مدمجة حاليًا في devel:languages:go/lazygit.
لتثبيت Lazygit على تشغيل openSUSE Tumbleweed:
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
لتثبيت Lazygit على openSUSE Leap run:
source /etc/os-release
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/ $VERSION_ID /devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
يتم تعبئة Lazygit في NixOs مع nix وتوزيعه عبر nixpkgs. يمكنك تجربة Lazygit دون تثبيته باستخدام:
nix-shell -p lazygit
# or with flakes enabled
nix run nixpkgs#lazygit
أو يمكنك إضافة Lazygit إلى ملف التكوين الخاص بك في قسم Environment.systemPackages. يمكن العثور على مزيد من التفاصيل عبر صفحة بحث NixOs.
يمكن تثبيت Lazygit في بيئة Flox على النحو التالي.
flox install lazygit
يمكن العثور على مزيد من التفاصيل حول Flox على موقعه على الانترنت.
pkg install lazygit
apt install lazygit
الإصدارات التي تم إصدارها متاحة لمنصات مختلفة، راجع https://anaconda.org/conda-forge/lazygit
conda install -c conda-forge lazygit
go install github.com/jesseduffield/lazygit@latest
يرجى ملاحظة: إذا تلقيت خطأً يدعي أنه لا يمكن العثور على Lazygit أو لم يتم تعريفه، فقد تحتاج إلى إضافة ~/go/bin
إلى $PATH (MacOS/Linux)، أو %HOME%gobin
(Windows) . لا ينبغي الخلط بينه وبين C:Gobin
(وهو ثنائيات Go الخاصة، وليس تطبيقات مثل Lazygit).
يمكنك تثبيت lazygit
باستخدام Chocolatey:
choco install lazygit
يمكنك تثبيت lazygit
باستخدام الأمر winget
في Windows Terminal باستخدام الأمر التالي:
winget install - e -- id = JesseDuffield.lazygit
ستحتاج إلى تثبيت Go
git clone https://github.com/jesseduffield/lazygit.git
cd lazygit
go install
يمكنك أيضًا استخدام go run main.go
للتجميع والتشغيل دفعة واحدة (يقصد التورية بالتأكيد)
اتصل lazygit
في المحطة الطرفية الخاصة بك داخل مستودع git.
$ lazygit
إذا أردت، يمكنك أيضًا إضافة اسم مستعار لهذا باستخدام echo "alias lg='lazygit'" >> ~/.zshrc
(أو أي ملف rc تستخدمه).
يمكنك التحقق من قائمة روابط المفاتيح هنا.
إذا قمت بتغيير عمليات إعادة الشراء في Lazygit وأردت أن يقوم Shell الخاص بك بتغيير الدليل إلى هذا الريبو عند الخروج من Lazygit، أضف هذا إلى ~/.zshrc
(أو ملف rc آخر):
lg()
{
export LAZYGIT_NEW_DIR_FILE=~/.lazygit/newdir
lazygit "$@"
if [ -f $LAZYGIT_NEW_DIR_FILE ]; then
cd "$(cat $LAZYGIT_NEW_DIR_FILE)"
rm -f $LAZYGIT_NEW_DIR_FILE > /dev/null
fi
}
ثم source ~/.zshrc
ومن الآن فصاعدًا، عند الاتصال lg
والخروج، ستقوم بتبديل الأدلة إلى كل ما كنت فيه داخل Lazygit. لتجاوز هذا السلوك، يمكنك الخروج باستخدام shift+Q
بدلاً من q
فقط.
انظر المستندات
تحقق من مستندات التكوين.
انظر المستندات
إذا كان Lazygit يفتقد إحدى الميزات، فهناك فرصة جيدة أن تتمكن من تنفيذها بنفسك باستخدام أمر مخصص!
انظر المستندات
يدعم Lazygit Gitflow إذا قمت بتثبيته. لفهم كيفية عمل نموذج Gitflow، راجع المنشور الأصلي لـ Vincent Driessen الذي يشرحه. لعرض خيارات Gitflow من داخل Lazygit، اضغط على i
من داخل عرض الفروع.
نحن نحب مدخلاتك! يرجى مراجعة دليل المساهمة. لمناقشة المساهمين حول الأشياء التي لم تتم مناقشتها بشكل أفضل هنا في الريبو، انضم إلى قناة الفتنة
شاهد هذا الفيديو الذي يوضح كيفية إنشاء ميزة صغيرة في Lazygit إذا كنت تريد فكرة عن مكان البدء.
قم بتشغيل lazygit --debug
في علامة تبويب طرفية واحدة و lazygit --logs
في علامة تبويب أخرى لعرض البرنامج ومخرجات السجل الخاصة به جنبًا إلى جنب
إذا كنت ترغب في دعم تطوير Lazygit، فكر في رعايتي (يطابق github جميع التبرعات بالدولار مقابل الدولار لمدة 12 شهرًا)
إذا كنت تريد أن ترى ما أقوم به (جيسي) فيما يتعلق بالتطور، تابعني على تويتر أو قم بمراجعة مدونتي
إذا وجدت أن Lazygit لا يلبي متطلباتك تمامًا، فقد تكون هذه المتطلبات مناسبة بشكل أفضل: