سؤال
أنا معتاد على السحب من مستودع git لشخص ما. اليوم نقل مستودعه إلى عنوان آخر. أتساءل عما إذا كان هناك طريقة ما بالنسبة لي للانسحاب من العنوان الجديد والحصول على معلومات حول التغييرات التي أجراها فيما يتعلق بالوقت الأخير قبل انتقاله؟
ما فعلته هو "Git Clone Newaddress" تحت مستودع مستودع تم سحبه من محاضره القديم. الإخراج يشبه:
حصلت على xxx
المشي xxx
حصلت على xxx
حصلت على xxx
المشي xxx
الحصول على قائمة بديلة لـ Newaddress
الحصول على قائمة حزم لنيوددرس
الحصول على فهرس للحزمة xxx
الحصول على حزمة xxx
الذي يحتوي على xxx
حصلت على xxx
حصلت على xxx
المشي xxx
...
ثم "سحب git" وحصلت على الرسالة التالية التي لا أفهمها:
لقد طلبت مني أن أسحب دون إخباري بالفرع الذي تريد دمجه ، و "branch.master.merge" في ملف التكوين الخاص بك لا يخبرني أيضًا. يرجى تسمية الفرع الذي تريد دمجه على سطر الأوامر ومحاولة مرة أخرى (على سبيل المثال "Git Pull"). انظر Git-Pull (1) للحصول على تفاصيل حول REFSPEC.
إذا كنت تندمج في كثير من الأحيان مع نفس الفرع ، فقد ترغب في تكوين المتغيرات التالية في ملف التكوين الخاص بك:
branch.master.remote = <nickname> branch.master.merge = <remote-ref> remote.<nickname>.url = <url> remote.<nickname>.fetch = <refspec>
انظر Git-Config (1) للحصول على التفاصيل.
ما الذي يمكنني فعله الآن لأكون قادرًا على الحصول على معلومات حول التغييرات التي أجراها فيما يتعلق بالوقت الأخير قبل انتقاله؟
شكرا مع تحياتي!
المحلول
إذا فهمت سؤالك بشكل صحيح ، فإن ما تبحث عنه هو استبدال أصلك الحالي عن بُعد بأسلوب جديد. لا أعرف ما إذا كان يمكنك استبداله من سطر الأوامر ، ولكن يمكنك تغييره في .git/config
(هذا في دليل المشروع الخاص بك)
قديم
[remote "origin"]
url = git+ssh://original_repository.com/my_project.git
...
الجديد
[remote "origin"]
url = git+ssh://new_repository.com/my_project.git
...
ال git+ssh
قد يكون الجزء مثل git@
(هذا ما سيكون عليه إذا كنت تستخدم GitHub) ، أو أنا متأكد من مجموعة متنوعة من الأشياء الأخرى. قد يساعد هذا في توضيح بعض الأشياء التي تركتها أو لم أشرحها جيدًا بما فيه الكفاية: تغيير أصلك.
أتمنى أن نكون قد ساعدنا في الاجابة على سؤالك. هتافات.
نصائح أخرى
قم بتشغيل هذا في مستودع GIT المستنسخ:
git config branch.master.remote origin
لرعاية "أنت طلبت مني أن أسحب دون إخباري" ... رسالة.
ثم ، إذا كنت تعرف أين تم نقل الريبو عن بُعد ، فيمكنك القيام به في ريبو محلي جديد مستنسخ أ git diff
منذ ذلك التاريخ.
$ git diff "@{yesterday}"
$ git whatchanged --since="2 weeks ago"
ملاحظة: القادم GIT1.6.5 يذكر
تنسيق تاريخ الإنسان القابل للكتابة إلى خيارات مختلفة ، على سبيل المثال "
--since=yesterday
", "master@{2000.09.17}
"، يتم تعليمها لاستنتاج بعض المدخلات المحذوفة بشكل صحيح.
انظر أيضا السؤال جدا "كيف تحصل على git دائما السحب من فرع معين؟"