كيف يمكنني سحب مستودع كمبيوتر آخر في جيت؟

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

  •  29-09-2019
  •  | 
  •  

سؤال

على سبيل المثال ، قمت باستنساخ مستودع الأصل على جهاز كمبيوتر. بعد ذلك ، أمضي قدمًا وأجري بعض التغييرات وألتزم بالمستودع المحلي للكمبيوتر A. كيف يمكنني الآن سحب هذه التغييرات إلى الكمبيوتر B؟ يتم توصيل كل من الكمبيوتر A و B بشبكة.

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

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

المحلول

إذا كان الجهاز الذي تريد سحبه يمكن الوصول إليه عبر ssh, ، يمكنك إضافة المستودع عليه كجهاز تحكم عن بعد عبر SSH ، ثم اسحب منه كما لو كنت عن بعد:

$ git remote add repo_b username@host:path/to/repository.git
$ git pull repo_b master

(يمكنك تخطي خطوة إضافة جهاز تحكم عن بعد وتحديد عنوان URL الكامل في git pull أمر بدلاً من الاسم البعيد ، ولكن إذا كنت ستسحب من المستودع بشكل منتظم ، فإن إضافته كجهاز تحكم عن بعد سيوفر لك الكثير من الكتابة.)

نصائح أخرى

القي نظرة على git pull --help

هذا من شأنه أن يعطي شيئًا مثل git pull /my/other/repository

يمكنك إعداد خادم فعلي مع Git Daemon. خلاف ذلك ، يمكنك استخدام حزمة git, ، الذي يحدد التمثيل الداخلي لـ GIT في ملف يمكن تفكيكه git pull في الطرف الآخر.

على سبيل المثال من مستندات GIT ، تجميع كل شيء:

git bundle create file.bundle master

ثم ، على الطرف الآخر ، يمكنك أن تفعل شيئًا مثل:

git pull file.bundle HEAD

إذا كنت تستطيع الاتصال بالكمبيوتر B بواسطة SSH ، يمكنك استخدام:

git clone user@host:/path/to/repo

سيمكّن التتبع عن بُعد من خلال اتصال SSH هذا ، ويسمح لك باستخدام GIT سحب/دفع.

لقد عملت بالنسبة لي لمستودع محلي مع كمبيوتر آخر:

git remote add origin_username username@10.0.0.2:/home/username/dev/project/main/.git/

git pull origin_username master

أو

git pull origin_username some_branch

لقد توصلت إلى

git clone /path/to/local/repository

بعد فوات الأوان ، ولكن على كل ما يستحق وتوسيع إجابة أنطوان بيليس ، يمكنك أيضًا سحب مضيف SSH الذي يحتوي على نفس الريبو مع اثنين من الالتزامات الأخرى ، دون إضافة أ التحكم عن بعد إلى التكوين الخاص بك:

git pull user@host:/path/to/repo  # while in the local repo folder

فقط لكي تكون واضحًا - أحد الاستخدامات المحتملة لذلك هو عندما يكون لديك مضيفان (A و B) الذي استنساخ نفس الريبو من a التحكم عن بعد, ، وقد ارتكبت بعض التغييرات على المضيف A ولا ترغب في دفعها إلى التحكم عن بعد أو التحكم عن بعد.

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