سؤال

لدي مستودع عام في Github.com مع 2 فروع: master و test.

قمت بإنشاء دليل جديد محليا وفعلت:

[ ] git clone git@github.com:{username}/{projectname}.git

ثم قمت بإنشاء فرع جديد يدعى my_test مع

[ ] git branch my_test

وتحول إليها.

[ ] git checkout my_test

ثم دمجها من بلدي test فرع مستودع علني مع

[ ] git merge origin/test

وقد أدى إلى الأمام بسرعة.

لقد اتخذت بعض التغييرات وارتكبتها. ثم حاولت دفع المحلية my_test فرع للجمهور test فرع في جيثب مع

[ ] git push git@github.com:{username}/{projectname}.git test 

لكنني حصلت على هذا الخطأ:

error: src refspec test does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git

ما الخطأ الذي افعله ؟

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

المحلول

ربما حاول:

git push git@github.com:{username}/{projectname}.git HEAD:test

تنسيق المعلمة الأخيرة في سطر الأوامر هذا هو recspec. وهو مصدر مصدر يليه القولون ثم المرجع الوجهة. يمكنك أيضا استخدام اسم الفرع المحلي الخاص بك (my_test) بدلا من الرأس لتكون متأكدا من أنك تدفع الفرع الصحيح.

الوثائق ل git push لديه المزيد من التفاصيل على هذه المعلمة.

نصائح أخرى

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

git push origin my_test:test

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

git push origin test

يأتي هذا الخطأ أيضا إذا حاولت الدفع إلى مستودع جديد دون ارتكاب أي شيء أولا. يحاول:

git add -A
git commit -am 'Initial commit'

ثم حاول دفعك مرة أخرى.

أعتقد هنا ستحتاج إلى إعداد تتبع فرعي. الرجاء إدخال ما يلي لتمكين التعقب

git branch --track my_test origin/my_test

لاختبار

git push -u origin my_test
git pull origin my_test

تحتاج إلى التأكد من أن مستودعك المحلي لديك نفس اسم المستودع عن بعد الذي تحاول دفعه.

أولا، تغيير مستودع باستخدام فرع GIT -M "اختبار" بحيث يكون "My_test" سيكون "اختبار". ثانيا، مجرد اختبار أداء بوابة

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