GIT PULL يقول محدثًا ولكن PUT GIT يرفض غير سريع للأمام

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

  •  29-09-2019
  •  | 
  •  

سؤال

لقد سحبت للتو فرعًا جديدًا ، وقمت ببعض التغييرات المحلية ، والالتزام وحاولت الدفع. أعطيت هذا الخطأ: ! [rejected] groups -> groups (non-fast forward)لذلك حاولت أن أسحب ولكن قيل Already up-to-date.

إليك ما أحصل عليه ثم دفع.

~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
 ! [rejected]        groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'

هل يمكن لأي شخص أن يشرح كيف يمكن أن يحدث هذا وكيف يمكنني إصلاحه؟

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

المحلول

عندما قمت بسحب الفرع ، هل استخدمت خيار "-track" (من أجل إبقائك الفرع المحلي لتتبع الفرع البعيد). إذا لم تفعل ذلك ، فيمكن أن يفسر أن الأمر "دمج" لا يعمل.

يمكنك القيام بالاندماج يدويًا:

git fetch
git merge origin/groups

لمقارنة إعادة التجهيزات المحلية والبعيدة ، أقترح عليك هذا الأمر (أضفه في الاسم المستعار ، إنه مفيد):

git log --graph --oneline --all --decorate

ستقوم بطباعة شجرة تاريخ المشروع ، وتظهر ملصقات الفرع. لذلك سترى أين يتباعد فرعك وفرع الأصل.

ملاحظة: إذا كنت ترغب في الحفاظ على تاريخ خطي ، بدلاً من "دمج" ، يمكنك القيام بـ "Rebase" لفرعك المحلي على جهاز التحكم عن بُعد قبل الدفع:

git rebase origin/groups
git push origin groups

نصائح أخرى

جئت إلى هنا مع مشكلة مختلفة.

تم إعداد git الخاص بي لدفع جميع الفروع. كنت في فرع فو ، لكنه كان يحاول أيضًا دفع ماستر ، وهو ما لم يكن محدثًا. كانت الحيلة تلاحظ أنها كانت تحاول دفع الماجستير:

To git@git.machine:repo
 ! [rejected]        master -> master (non-fast-forward)

أضفت ما يلي إلى .gitConfig لدفع الفرع الحالي بشكل افتراضي:

[push]
    default = current

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

لم يكن لدى فرعتي المحلية الفرع البعيد لسحب التغييرات من تكوينها بشكل صحيح [GIT سحب]. كان هذا واضحًا من O/P من git remote show origin. لذلك ، كان علي استخدام git pull origin <branch_name> بدلاً من git pull لسحب التغييرات.

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