اختلافات

عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.

docs:git_tutorial [2009/11/12 07:59]
djilani تدقيق لغوي
docs:git_tutorial [2009/12/24 00:32] (حالي)
alsadi
سطر 8: سطر 8:
كما أنه يوفر طرق سهلة لعمل فروع branches وإصدارات موسومة tags والأهم من ذلك هو تسهيل **الدمج** بين الفروع. كما أنه يوفر طرق سهلة لعمل فروع branches وإصدارات موسومة tags والأهم من ذلك هو تسهيل **الدمج** بين الفروع.
-من أهم ما يميز git عن نظم مثل CVS هو أنه نظام موزَّع غير مركزي.+من أهم ما يميز git عن نظم مثل CVS هو أنه نظام موزَّع غير مركزي.
من عيوب git أنه ملتصق جدا بفلسفة نظام يونكس أو لينكس في جميع نواحيه. يوجد نسخة لنظام ويندوز اسمها msysgit وهناك طريقة لربطها مع PuTTY (من أجل بروتوكول SSH). لا أعلم إن كانت تنفيذاته على [[http://repo.or.cz/w/egit.git|جافا]] أو [[http://www.eqqon.com/index.php/GitSharp|.net]] عملية أم لا. من عيوب git أنه ملتصق جدا بفلسفة نظام يونكس أو لينكس في جميع نواحيه. يوجد نسخة لنظام ويندوز اسمها msysgit وهناك طريقة لربطها مع PuTTY (من أجل بروتوكول SSH). لا أعلم إن كانت تنفيذاته على [[http://repo.or.cz/w/egit.git|جافا]] أو [[http://www.eqqon.com/index.php/GitSharp|.net]] عملية أم لا.
-[[http://www.infoq.com/articles/dvcs-guide|مقارنة بين نظم إدارة المصدر الموزّعة]]+  * [[http://www.infoq.com/articles/dvcs-guide|مقارنة بين نظم إدارة المصدر الموزّعة]] 
 +  * [[http://whygitisbetterthanx.com/|لماذا git أفضل من كذا]]
===== إنشاء مشروع git محلي ===== ===== إنشاء مشروع git محلي =====
سطر 66: سطر 67:
  USER@HOST:PATH/REPO.git/   USER@HOST:PATH/REPO.git/
-وفي جميع البروتوكولات يمكن إهمال رقم المنفذ PORT وتركه للقيمة الافتراضية.+وفي جميع البروتوكولات يمكن إهمال رقم المنفذ PORT وتركه للقيمة التلقائية.
===== الأوامر الأساسية ===== ===== الأوامر الأساسية =====
سطر 134: سطر 135:
git push git push
</code> </code>
 +
 +===== أوامر شائعة =====
 +لعرض الفرق قبل حفظه اكتب git diff دون أي معاملات حيث ستعرض الفرق بين الحالية والنسخة المحفوظة.
 +
 +<code bash>
 +git diff | less
 +</code>
 +
 +إن كنت قمت بتعديلات ولم تحفظها في git وكنت تريد الرجوع عنها إلى آخر نسخة محفوظة افعل الخيار الثاني (بعد git add) الذي يخبرك عنه git status وهو طبعا
 +<code bash>
 +git checkout -- FILE1 FILE2
 +</code>
 +حيث FILE1 FILE2 هي أسماء الملفات
 +
 +إن لم تكن ترغب في تحديد أسماء الملفات وكل ما تريده هو استعادة آخر نسخة محفوظة اكتب
 +
 +<code bash>
 +git reset --hard
 +</code>
 +
===== كتيبات git ===== ===== كتيبات git =====
سطر 157: سطر 178:
  git log --color --stat --summary   git log --color --stat --summary
-نلاحظ أن كل عملية حفظ تأخذ معرف طويل مكون من عدد كبير من المنازل الست عشرية لعرض الفرق (على شكر رقعة) بين أي ثنتين منهما اكتب \\ +نلاحظ أن كل عملية حفظ تأخذ معرف طويل مكون من عدد كبير من المنازل الست عشرية لعرض الفرق (على شكر رقعة) اكتب git show ثم المعرف 
 + 
 +  git show b978e8b77b1b57e0ad2d4832a3afbe2943f6b82f  
 + 
 +ويمكنك تحديد المعرف بطرق أسهل من المعرف الطويل كأن تأخذ أي جزء فريد من أول المعرف انظر  
 +git help rev-parse 
 + 
 +كما يمكن المقارنة بين أي نسختين وذلك بأن تكتب \\
''git diff //COMMIT1// //COMMIT2//'' ''git diff //COMMIT1// //COMMIT2//''
\\ مع تعويض معرفات الحفظ. ويمكنك تلوين المخرجات هكذا \\ مع تعويض معرفات الحفظ. ويمكنك تلوين المخرجات هكذا
-  git diff --color b978e8b77b1b57e0ad2d4832a3afbe2943f6b82f 5a58546f8c0a2b06e5881382faadce0c3deeea69+  git diff --color b978e8 5a5854
-ويمكنك تحديد المعرف بطرق أسهل من المعرف الطويل انظر  +وهناك أكثر طريقة لعرض السجل أجملها وأكثرها اختصارا 
-git help rev-parse+ 
 +  git log --abbrev-commit --pretty=oneline 
 + 
 +والتي تطبع معرف مختصر وسطر وحيد من عنوان التعديل. 
 + 
 +يمكنك تخصيص طريقة عرض السجل لتوليد changelog مثلا عبر الأمر التالي الذي يطبع تاريخ التعديل وعنوانه (أول سطر من الرسالة) 
 + 
 +  git log --pretty=format:'%ai      %s' 
 + 
 +يمكن مثلا إضافة اسم صاحب التعديل عبر %an لقائمة كاملة بتلك الخيارات انظر كتيب git-whatchanged
===== بين المحلي والبعيد ===== ===== بين المحلي والبعيد =====
docs/git_tutorial.1258005590.txt.gz · آخر تعديل: 2009/11/12 07:59 بواسطة djilani
Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0

جميع حقوق النشر والتوزيع ممنوحة ضمن شروط رخصة وقف العامة.