الأصل البعيد موجود بالفعل على "Git Push" إلى مستودع جديد

StackOverflow https://stackoverflow.com/questions/1221840

سؤال

لدي مشروعي على جيثب في مكان ما ، git@github.com:myname/oldrep.git.

الآن أريد دفع جميع التعليمات البرمجية إلى مستودع جديد في مكان آخر ، git@github.com:newname/newrep.git.

لقد استخدمت الأمر:

GIT REMOTE أضف Origin git@github.com: myName/oldrep.git

لكني أتلقى هذا:

قاتلة: الأصل البعيد موجود بالفعل.

هل كانت مفيدة؟

المحلول

أنت تحصل على هذا الخطأ لأن "الأصل" غير متوفر. "Origin" هي اتفاقية ليست جزءًا من الأمر. "Origin" هو الاسم المحلي للمستودع البعيد.

على سبيل المثال ، يمكنك أيضًا الكتابة:

git remote add myorigin git@github.com:myname/oldrep.git  
git remote add testtest git@github.com:myname/oldrep.git

انظر الدليل:

http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

لإزالة مستودع عن بُعد الذي تدخله:

git remote rm origin

مرة أخرى "Origin" هو اسم المستودع البعيد إذا كنت تريد إزالة جهاز التحكم عن بُعد "Upstream":

git remote rm upstream

نصائح أخرى

يبدو أن الحلول السابقة تتجاهل الأصل ، وهي تقترح فقط استخدام اسم آخر. عندما تريد فقط الاستخدام git push origin, ، تابع القراءة.

تظهر المشكلة بسبب اتباع ترتيب خاطئ لتكوين GIT. ربما تكون قد أضفت بالفعل "أصل git" إلى تكوين .git الخاص بك.

يمكنك تغيير الأصل البعيد في تكوين GIT الخاص بك مع السطر التالي:

git remote set-url origin git@github.com:username/projectname.git

يحدد هذا الأمر عنوان URL جديدًا لمستودع GIT الذي تريد الضغط عليه. المهم هو ملء خاصتك اسم االمستخدم و اسم المشروع

إذا قمت بتسمية الاسم المحلي عن طريق الخطأ باسم "الأصل" ، فيمكنك إزالته بما يلي:

git remote rm origin

method1->

منذ الأصل موجود بالفعل إزالته.

git remote rm origin
git remote add origin https://github.com/USERNAME/REPOSITORY.git

method2->

يمكن للمرء أيضًا تغيير عنوان URL للمستودع البعيد الحالي بواسطة -> git set -url

إذا كنت تقوم بالتحديث لاستخدام HTTPS

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

إذا كنت تقوم بالتحديث لاستخدام SSH

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

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

الطريقة 3->

استخدم أمر إعادة تسمية GIT عن بُعد لإعادة تسمية جهاز تحكم عن بعد الحالي. الاسم البعيد الحالي ، على سبيل المثال ، الأصل.

git remote rename origin startpoint
# Change remote name from 'origin' to 'startpoint'

للتحقق من اسم جهاز التحكم عن بُعد الجديد->

git remote -v

إذا كان جديدًا على GIT ، جرب هذا البرنامج التعليمي->

جرب GIT البرنامج التعليمي

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

في ال ~/.gitconfig تحتاج إلى وضع شيء ما مثل ما يلي:

[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

في ال oldrep/.git/config ملف (في ملف التكوين الخاص بمستودعك):

[remote "github"]
        url = git@github.com:myname/oldrep.git
        push  = +refs/heads/*:refs/heads/*
        push  = +refs/tags/*:refs/tags/*

إذا كان هناك قسم عن بُعد في ملف تكوين المستودع الخاص بك ، ويتطابق عنوان URL ، فأنت بحاجة فقط لإضافة تكوين الدفع. إذا كنت تستخدم عنوان URL العام لجلبه ، فيمكنك وضع عنوان URL للدفع كـ "pushurl" (تحذير: يتطلب هذا الإصدار GIT الذي تم إصداره للتو 1.6.4).

ليس عليك إزالة جهاز التحكم عن بُعد "أصل" الخاص بك ، فقط استخدم اسمًا آخر غير "Origin" لإضافة عن بُعد ، على سبيل المثال

GIT ADD REMOTE ADD جيثب git@github.com: myname/oldrep.git

حصلت على نفس المشكلة ، وإليك كيف أصلحتها بعد إجراء بعض الأبحاث:

  1. تحميل github لنظام التشغيل Windows أو استخدم شيئًا مشابهًا ، والذي يتضمن قذيفة
  2. افتح ال Git Shell من قائمة المهام. هذا سوف يفتح قذيفة السلطة بما في ذلك أوامر GIT.
  3. في القشرة ، قم بالتبديل إلى مستودعك القديم ، على سبيل المثال cd C:\path\to\old\repository
  4. عرض حالة المستودع القديم

  5. قم الآن بإزالة المستودع البعيد من المستودع المحلي باستخدام

    git remote rm origin
    
  6. تحقق مرة أخرى مع الخطوة 4. يجب أن تظهر origin فقط ، بدلا من الجلب ومسار الدفع.

  7. الآن بعد فصل المستودع البعيد القديم الخاص بك ، يمكنك إضافة المستودع البعيد الجديد. استخدم ما يلي للاتصال بمستودعك الجديد.

ملاحظة: في حال كنت تستخدم Bitbucket ، ستنشئ مشروعًا على Bitbucket أولاً. بعد الإنشاء ، ستعرض Bitbucket جميع أوامر GIT المطلوبة لدفع المستودع الخاص بك إلى جهاز التحكم عن بُعد ، والذي يشبه مقتطف الكود التالي. ومع ذلك ، هذا يعمل لمستودعات أخرى ، أيضا.

cd /path/to/my/repo # If haven't done yet
git remote add mynewrepo https://user@bitbucket.org/team-or-user-name/myproject.git
git push -u mynewrepo master # To push changes for the first time

هذا هو.

git remote rm origin
git remote add origin git@github.com:username/myapp.git

واجهت نفس المشكلة عندما قمت بإعداد استخدامها لأول مرة Bitbucket.

كانت مشكلتي أنني بحاجة إلى تغيير كلمة الأصل لشيء محدد ذاتيًا. لقد استخدمت اسم التطبيق. لذا:

git remote add AppName https://someone@bitbucket.org/somewhere/something.git

يجب عليك تغيير اسم المستودع البعيد إلى شيء آخر.

git remote add origin git@github.com:myname/oldrep.git

إلى

git remote add neworigin git@github.com:myname/oldrep.git

وأعتقد أن هذا يجب أن تعمل.

نعم ، هذه مخصصة للمستودعات init وإضافة جهاز تحكم عن بعد جديد. فقط مع تغيير الاسم.

يمكنك أيضًا تغيير اسم المستودع الذي ترغب في الضغط عليه في ملف repohome/.git/config

(حيث يكون repohome هو الطريق إلى استنساخك المحلي للمستودع).

  1. git remote rm origin

  2. git remote -vلن يعرض أي اسم مستودع

  3. git remote add origin git@github.com:username/myapp.git

  4. git push origin masterستبدأ العملية وإنشاء الفرع الجديد. يمكنك رؤية عملك يتم دفعه إلى جيثب.

يمكن أن يحدث هذا أيضًا عندما تنسى التزامًا أولاً.

افتح إلى Android Studio> vcs> git> تحذف جميع العناوين التي ستظهر في هذا القسم. سوف تحل المشكلة.

صورة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top