Javascript Disabled!

Please Enable Javascript if you disabled it, or use another browser we preferred Google Chrome.
Please Refresh Page After Enable

Powered By UnCopy Plugin.

حل شد: “خطا: نتوانست برخی از داورها را به ریموت فشار دهد”


در این مقاله نحوه حل آن را خواهیم دید "error: failed to push some refs to remote" اگر شما نیز این خطا را دریافت می کنید. دیشب وقتی می‌خواستم تغییرات شاخه انتشار خود را به ریموت مستر فشار دهم، متوجه شدم که با "error: failed to push some refs to remote". در حالی که من انتظار این خطا را نداشتم، اما این خطای بسیار رایجی است که ممکن است به دلایل کمی رخ دهد. بنابراین باید خطا را بررسی کنید و سپس سعی کنید آن را بر اساس آن برطرف کنید. در اینجا شایع ترین دلیل این خطا را که حتی خود من با آن مواجه شده ام و نحوه حل آن را در مراحل بسیار ساده برای شما توضیح می دهم.

حل کرد: "خطا: در فشار دادن برخی از مراجع به ریموت ناموفق بود"

حل شد: “خطا: نتوانست برخی از داورها را به ریموت فشار دهد”

همچنین بخوانید: چگونه می توان شاخه ویژگی Bitbucket خود را ایجاد کرد و روی آن کار کرد

برای اینکه اطلاعاتی در مورد شعب محلی خود به شما بدهم، در حال حاضر دو شعبه دارم – develop و release-2.0.1 همانطور که در زیر می بینید. پس از اضافه کردن تمام تغییرات به من release-2.0.1 شاخه، من سعی می کنم آن را به کنترل از راه دور فشار دهم master.

[email protected]:~$ git branch
  develop 
* release-2.0.1

از release-2.0.1 شعبه، سعی کردم تغییرات را با استفاده از git push -u origin master دستور سپس ناگهان متوجه شدم که با خطای زیر شکست می خورد.

[email protected]:~$ git push -u origin master
error: src refspec master does not match any
error: failed to push some refs to 'https://app.cyberithub.com/bitbucket/scm/application/example-app.git'

در حالی که خطای بالا ممکن است به هر دلیلی رخ دهد، اما برای من این اتفاق افتاد زیرا من تغییرات را به شاخه اصلی از یک شاخه منبع که هیچ ارجاعی به استاد راه دور نداشت فشار می دادم. بنابراین برای رفع خطای بالا، ابتدا مجبور شدم با استفاده از شاخه اصلی محلی جدید ایجاد کرده و به آن سوئیچ کنم git checkout -b master دستور مطابق شکل زیر

[email protected]:~$ git checkout -b master
Switched to a new branch 'master'

شعبه فعلی را با استفاده از دستور git branch مطابق شکل زیر تأیید کنید.

[email protected]:~$ git branch
  develop
  release-2.0.1
* master

سپس مجبور شدم با استفاده از شاخه اصلی از راه دور تغییراتی را بررسی کنم git pull origin master دستور مطابق شکل زیر

[email protected]:~$ git pull origin master
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

git config pull.rebase false # merge (the default strategy)
git config pull.rebase true # rebase
git config pull.ff only # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.

From https://app.cyberithub.com/bitbucket/scm/application/example-app.git
* branch          master     -> FETCH_HEAD
Already up to date!
Merge made by the 'recursive' strategy.

هنگامی که شعبه با ریموت مستر همگام شد، همه فایل‌ها را از خودم بیرون کشیدم release-2.0.1 با استفاده از شاخه git pull origin release-2.0.1 دستور مطابق شکل زیر

[email protected]:~$ git pull origin release-2.0.1
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

git config pull.rebase false # merge (the default strategy)
git config pull.rebase true # rebase
git config pull.ff only # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.

From https://app.cyberithub.com/bitbucket/scm/application/example-app.git
* branch           release-2.0.1 -> FETCH_HEAD
Merge made by the 'recursive' strategy.
 config/test.yaml                     | 2 +-
 config/hello.yaml                    | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

پس از ادغام همه تغییرات در محلی master، دوباره سعی کردم با استفاده از این تغییرات به شاخه اصلی از راه دور فشار دهم git push -u origin master دستور مطابق شکل زیر

[email protected]:~$ git push -u origin master
Enumerating objects: 16, done.
Counting objects: 100% (16/16), done.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (2/2), 565 bytes | 565.00 KiB/s, done.
Total 2 (delta 1), reused 0(delta 0), pack-reused 0
remote: Checking connectivity: 2, done.
remote:
remote: Create pull request for master:
remote:   https://app.cyberithub.com/bitbucket/scm/projects/EXAMPLE/repos/example-app/pull-requests?create&sourceBranch=refs/heads/master
remote: 
To https://app.cyberithub.com/bitbucket/scm/application/example-app.git
   768ca03..9acb8ca  master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

همانطور که از خروجی بالا می بینید، این بار git push به استاد راه دور با موفقیت کار کرد. بنابراین من اینگونه خطای خود را حل کردم. اما ممکن است همان راه حل برای شما کار نکند. ممکن است شانسی وجود داشته باشد که هنوز در حال گرفتن آن هستید "error: failed to push some refs to remote" به دلایل دیگری مانند اینکه ممکن است commit اولیه را در داخل مخزن انجام نداده باشید و بدون آن در حال تلاش برای اعمال تغییرات هستید. در این صورت نیز همان خطا را دریافت خواهید کرد.

بنابراین برای رفع این نوع خطا، ابتدا باید commit اولیه را در مخزن محلی خود انجام دهید و سپس تغییرات را با استفاده از git push -u origin master دستور مطابق شکل زیر بیشتر بررسی کنید git push فرمان

touch somefile
git add somefile
git commit -m "Initial Commit"
git push -u origin master

امیدواریم راه حل فوق برای حل مشکل شما کافی باشد "error: failed to push some refs to remote" هم. لطفا نظرات خود را در مورد کادر نظر به من اطلاع دهید.

به این مطلب امتیاز دهید

جهت ارسال نظر اینجا کلیک کنید.