تدريب - تحميل مشروعك إلى GitHub

مكتمل

يمكنك استيراد المستودعات إلى GitHub باستخدام GitHub Importer أو سطر الأوامر أو أدوات الترحيل الخارجية.

حول GitHub Importer

إذا كان لديك التعليمات البرمجية المصدر في Subversion أو Mercurial أو Team Foundation Version Control (TFVC) أو مستودع Git آخر، يمكنك نقله إلى GitHub باستخدام GitHub Importer. GitHub Importer هي أداة تستورد مستودعات التعليمات البرمجية المصدر بسرعةٍ، بما في ذلك التثبيتات ومحفوظات المراجعة، إلى GitHub نيابةً عنك.

أثناء الاستيراد، اعتمادا على نظام التحكم في الإصدار الذي تستورد منه، يمكنك تنفيذ بعض المهام التالية. قم بالمصادقة مع المستودع البعيد، أو تحديث إسناد كاتب الالتزام، أو استيراد المستودعات ذات الملفات الكبيرة، أو إزالة الملفات الكبيرة إذا كنت لا تريد استخدام Git Large File Storage.

استيراد Action تخريب Mercurial TFVC Git
المصادقة مع مستودع بعيد X X X X
تحديث إسناد مؤلف التثبيت X X X
نقل الملفات الكبيرة إلى Git Large File Storage X X X
إزالة الملفات الكبيرة من مستودعك X X X

استيراد مستودع باستخدام GitHub Importer

إذا كان لديك مشروع مُستضاف على نظام تحكم آخر بالإصدار، يمكنك استيراده تلقائياً إلى GitHub باستخدام أداة GitHub Importer. GitHub Importer غير مناسب لجميع عمليات الاستيراد. على سبيل المثال، إذا كانت التعليمات البرمجية الموجودة لديك مستضافة على شبكة خاصة، فلن تتمكن أداتنا من الوصول إليها. في هذه الحالات، نوصي بالاستيراد باستخدام سطر الأوامر لمستودعات Git أو أداة ترحيل التعليمات البرمجية المصدر الخارجية للمشاريع المستوردة من أنظمة التحكم في الإصدار الأخرى.

إذا كنت ترغب في مطابقة التثبيتات في المستودع الخاص بك مع حسابات مستخدمي GitHub الخاصة بالمؤلفين أثناء الاستيراد. أولا، تأكد من أن كل مساهم في المستودع الخاص بك لديه حساب GitHub قبل بدء الاستيراد.

تخضع المستودعات والملفات الفردية لحدود الحجم. لمزيد من المعلومات، راجع حول الملفات الكبيرة على GitHub.

اتبع هذه الخطوات لاستيراد مستودع:

  1. في الزاوية العلوية اليسرى من أي صفحة، حدد +، ثم حدد استيراد المستودع.

    Screenshot of the import repository button.

  2. ضمن "عنوان URL المستنسخ لمستودعك القديم"، اكتب عنوان URL للمشروع الذي تريد استيراده.

    Screenshot of the old repository URL textbox.

  3. اختر حساب المستخدم خاصتك أو مؤسسة لامتلاك المستودع، ثم اكتب اسماً للمستودع على GitHub.

    Screenshot of the new import repository owner name.

  4. حدد ما إذا كان يجب أن يكون المستودع الجديد عاماً أو خاصاً. لمزيد من المعلومات، راجع تعيين رؤية المستودع.

    Screenshot of the new repository public or private options.

  5. راجع المعلومات التي أدخلتها، ثم حدد بدء الاستيراد.

    Screenshot of the begin import button for a new repository import.

  6. إذا كان مشروعك القديم محميا بكلمة مرور، فاكتب معلومات تسجيل الدخول لهذا المشروع، ثم حدد إرسال.

    Screenshot of the location to input your old repository credentials importer.

  7. إذا كانت هناك مشاريع متعددة مستضافة في عنوان URL المستنسخ لمشروعك القديم، فاختر المشروع الذي تريد استيراده، ثم حدد إرسال.

    Screenshot of a selection of projects found at the same URL. project importer.

  8. إذا كان مشروعك يحتوي على ملفات أكبر من 100 ميغابايت، فاختر ما إذا كنت تريد استيراد الملفات الكبيرة باستخدام Git Large File Storage، ثم حدد Continue.

    Screenshot of files suitable for Git LFS importer.

عند استيراد المستودع بالكامل، تتلقى رسالة بريد إلكتروني.

تحديث إسناد مؤلف التثبيت باستخدام GitHub Importer

أثناء الاستيراد، يمكنك مطابقة التثبيتات في المستودع الخاص بك مع حساب GitHub لمؤلف التثبيت. يبحث GitHub Importer عن مستخدمي GitHub الذين تتطابق عناوين بريدهم الإلكتروني مع مؤلفي التثبيتات في المستودع الذي تستورده. يمكنك بعد ذلك توصيل تثبيت بمؤلفه باستخدام عنوان بريده الإلكتروني أو اسم مستخدم GitHub الخاص بالمؤلف.

تحديث مؤلف التثبيت

اتبع هذه الخطوات لتحديث مؤلف التثبيت:

  1. بعد استيراد المستودع، في صفحة حالة الاستيراد، حدد مطابقة الكتاب.

    Screenshot of the match authors button.

  2. بجوار الكاتب الذي تريد تحديث معلوماته، حدد الاتصال.

    Screenshot of the connect commit author process.

  3. اكتب عنوان البريد الإلكتروني أو اسم مستخدم GitHub للمؤلف، ثم اضغط على مفتاح الإدخال Enter.

إسناد التثبيتات إلى مستخدم GitHub بعنوان بريد إلكتروني عام

إذا كان لدى كاتب التثبيت في المستودع المستورد حساب GitHub مقترن بعنوان البريد الإلكتروني الذي استخدمه لتأليف التثبيتات، ولم يعين عنوان بريده الإلكتروني للتثبيت كعنوان خاص. بعد ذلك، يطابق GitHub Importer عنوان البريد الإلكتروني المرتبط بالالتزام بعنوان البريد الإلكتروني العام المرتبط بحساب GitHub الخاص به، ويسمي الالتزام بحساب GitHub الخاص به.

إسناد التثبيتات إلى مستخدم GitHub بعنوان بريد إلكتروني عام

إذا لم يقم كاتب التثبيت في المستودع المستورد بتعيين عنوان بريد إلكتروني عام على ملف تعريف GitHub الخاص به، أو تعيين عنوان بريده الإلكتروني الخاص بالتثبيت. بعد ذلك، قد لا يتمكن مستورد GitHub من مطابقة عنوان البريد الإلكتروني المقترن بالتثبيت مع حساب GitHub الخاص به.

يمكن لمؤلف التثبيت حل هذه المشكلة عن طريق تعيين عنوان بريده الإلكتروني كعنوان خاص. ثم تنسب عمليات التثبيت الخاصة بهم إلى <username>@users.noreply.github.com، وتقترن عمليات التثبيت المستوردة بحساب GitHub الخاص بهم.

إسناد التثبيتات باستخدام عنوان بريد إلكتروني

إذا لم يكن عنوان البريد الإلكتروني للمؤلف مقترنا بحساب GitHub الخاص به، فيمكنه إضافة العنوان إلى حسابه بعد الاستيراد، وسيتم إسناد التثبيتات بشكل صحيح.

إذا لم يكن لدى الكاتب حساب GitHub، فإن GitHub Importer سمات التثبيتات الخاصة بهم إلى عنوان البريد الإلكتروني المقترن بالتثبيتات.

استيراد مستودع GitHub باستخدام سطر الأوامر

إذا لم يكن GitHub Importer مناسبا لأغراضك، مثل إذا كانت التعليمات البرمجية الموجودة لديك مستضافة على شبكة خاصة، فإننا نوصي بالاستيراد باستخدام سطر الأوامر.

قبل البدء، تأكد من أنك تعرف:

  • اسم مستخدم GitHub الخاص بك
  • عنوان URL المُستنسخ للمستودع الخارجي، مثل https://external-host.com/user/repo.git أو git://external-host.com/user/repo.git (ربما مع user@ أمام external-host.com اسم المجال)

لأغراض العرض التوضيحي، نستخدم:

  • حساب خارجي يسمى ext-user
  • مضيف Git خارجي يُسمى https://external-host.com
  • حساب مستخدم شخصي GitHub يُسمى ghuser
  • مستودع على GitHub.com يُسمى repo.git

اتبع هذه الخطوات لاستيراد المستودع الخارجي:

  1. بادر بإنشاء مستودع على GitHub. يمكنك استيراد مستودع Git الخارجي الخاص بك إلى هذا المستودع الجديد.

  2. في سطر الأوامر، بادر بإجراء نسخة "خالية" من المستودع باستخدام عنوان URL للنسخة الخارجية. ينشئ هذا الأمر نسخة كاملة من البيانات، ولكن دون دليل عمل لتحرير الملفات، ويضمن تصديرا نظيفا وحديثا لجميع البيانات القديمة.

    $ git clone --bare https://external-host.com/ext-user/repo.git
    #Makes a bare clone of the external repository in a local directory 
    
  3. ادفع المستودع المُستنسخ محلياً إلى GitHub باستخدام خيار "mirror"، والذي يضمن نسخ جميع المراجع، مثل الفروع والعلامات، إلى المستودع المستورد.

    $ cd repo.git
    $ git push --mirror https://github.com/ghuser/repo.git
    #Pushes the mirror to the new repository on GitHub.com 
    
  4. إزالة المستودع المحلي المؤقت.

    $ cd ..
    $ rm -rf repo.git 
    

إضافة التعليمات البرمجية المُستضافة محلياً إلى GitHub

إذا كان لديك تعليمات برمجية أو مستودعات مصدر موجودة مخزنة محليا على الكمبيوتر أو الشبكة الخاصة، يمكنك إضافتها إلى GitHub عن طريق كتابة الأوامر في محطة طرفية. إما بكتابة أوامر Git مباشرة، أو باستخدام GitHub CLI.

GitHub CLI هو أداة مصدر مفتوح لاستخدام GitHub من سطر أوامر حاسوبك. يمكن لـ GitHub CLI تبسيط عملية إضافة مشروع موجود إلى GitHub باستخدام سطر الأوامر. لمعرفة المزيد حول GitHub CLI، راجع حول GitHub CLI.

إضافة مستودع محلي إلى GitHub باستخدام GitHub CLI

اتبع هذه الخطوات لإضافة مستودع محلي باستخدام GitHub CLI:

  1. من سطر الأوامر، انتقل داخل الدليل الجذر لمشروعك.

  2. بادر بتهيئة الدليل المحلي كمستودع Git.

    git init -b main
    
  3. إعداد جميع الملفات وتثبيتها في مشروعك.

    git add . && git commit -m "initial commit"
    
  4. لإنشاء مستودع لمشروعك على GitHub، استخدم gh repo create subcommand. عند المطالبة، حدد Push an existing local repository to GitHub وأدخل الاسم المطلوب لمستودعك. إذا كنت تريد أن ينتمي مشروعك إلى مؤسسة بدلاً من حساب المستخدم خاصتك، فحدد اسم المؤسسة واسم المشروع باستخدام organization-name/project-name.

  5. اتبع المطالبات التفاعلية. لإضافة جهاز التحكم عن بعد ودفع المستودع، تأكد من نعم عند مطالبتك بإضافة جهاز التحكم عن بعد ودفع التثبيتات إلى الفرع الحالي.

  6. بدلاً من ذلك، لتخطي جميع المطالبات، بادر بتوفير المسار إلى المستودع بالعلامة --source وتمرير علامة رؤية (--public أو --private أو --internal). على سبيل المثال، gh repo create --source=. --public حدد جهاز تحكم عن بُعد باستخدام العلامة --remote. لدفع تثبيتاتك، مرر العلامة --push. لمزيد من المعلومات حول الوسيطات المحتملة، راجع دليل GitHub CLI.

إضافة مستودع محلي إلى GitHub باستخدام Git

اتبع هذه الخطوات لإضافة مستودع محلي باستخدام Git:

  1. إنشاء مستودع جديد على GitHub.com. لتجنب الأخطاء، لا تقم بتهيئة المستودع الجديد باستخدام README أو الترخيص أو gitignore files. يمكنك إضافة هذه الملفات بعد دفع مشروعك إلى GitHub.

    Screenshot of new repository creation.

  2. افتح Git Bash.

  3. غيَّر الدليل المشغَّل الحالي إلى مشروعك المحلي.

  4. بادر بتهيئة الدليل المحلي كمستودع Git.

    $ git init -b main
    
  5. أضِف الملفات في مستودعك المحلي الجديد. يقوم هذا الأمر أيضا بإعدادها للتثبيت الأول.

    $ git add .
    # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.
    
  6. تثبيت الملفات المرحلية في المستودع المحلي.

    $ git commit -m "First commit"
    # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.
    
  7. في الجزء العلوي من المستودع الخاص بك في صفحة الإعداد السريع ل GitHub.com، حدد الزر Copy لنسخ عنوان URL للمستودع البعيد.

    screenshot copy remote repository url quick setup

  8. في موجه الأوامر، أضف عنوان URL للمستودع البعيد. يتم دفع المستودع المحلي إلى هذا الموقع.

    $ git remote add origin <REMOTE_URL> 
    # Sets the new remote
    $ git remote -v
    # Verifies the new remote URL
    
  9. ادفع التغييرات في مستودعك المحلي إلى GitHub.com.

    $ git push origin main
    # Pushes the changes in your local repository up to the remote repository you specified as the origin
    

أدوات ترحيل التعليمات البرمجية المصدر

يمكنك استخدام أدوات خارجية لنقل مشاريعك إلى GitHub. نوصي باستخدام GitHub Importer لاستيراد المشاريع من Subversion أو Mercurial أو Team Foundation Version Control (TFVC) أو مستودع Git آخر. يمكنك أيضاً استخدام هذه الأدوات الخارجية لتحويل مشروعك إلى Git.

الاستيراد من Subversion

في بيئة Subversion النموذجية، يتم تخزين مشاريع متعددة في مستودع جذر واحد. في GitHub، يتم تعيين كل مشروع من هذه المشاريع عادة إلى مستودع Git منفصل لحساب مستخدم أو مؤسسة. نقترح استيراد كل جزء من مستودع Subversion خاصتك إلى مستودع GitHub منفصل إذا:

  • يحتاج المتعاونون إلى سحب هذا الجزء من المشروع أو الالتزام به بصفةٍ منفصلةٍ عن الأجزاء الأخرى
  • تريد أن يكون لأجزاء مختلفة أذونات وصول خاصة بها

نوصي بهذه الأدوات لتحويل مستودعات Subversion إلى Git:

الاستيراد من Mercurial

نوصي بـ hg-fast-export لتحويل مستودعات Mercurial إلى Git.

الاستيراد من TFVC

نوصي بـ git-tfs لنقل التغييرات بين TFVC وGit.

لمزيد من المعلومات حول الانتقال من TFVC (نظام تحكم مركزي في الإصدار) إلى Git، راجع الترحيل إلى Git من التحكم المركزي في الإصدار.