গিট ত্রুটি: রিমোটে কিছু রেফ চাপতে ব্যর্থ


450

কোনও কারণে, আমি এখন ধাক্কা দিতে পারি না, যেখানে আমি গতকাল এটি করতে পেরেছিলাম। হতে পারে আমি কনফিগার বা অন্য কিছু নিয়ে গণ্ডগোল করেছি।

এটিই ঘটে:

আমি যখন গিট পুশ অরিজিন মাস্টার ব্যবহার করি

gitbashscr

আমার ওয়ার্কিং ডিরেক্টরি এবং দূরবর্তী সংগ্রহস্থলগুলি দেখতে কেমন:

এই ডিরেক্টরিগুলির সাথে উইন্ডোজ ফাইল ফোল্ডারের স্ক্রিনশট: .git, CSS, js।  এবং এই ফাইলগুলি: index.php, readme, setu.php।  একটি তীর সহ "স্থানীয়" শব্দটি সিএসএস-ফোল্ডারে নির্দেশ করে।  নীচে, "গিথুব" শিরোনাম সহ স্ক্রিনশট এবং একটি সিএসএস-ফোল্ডার এবং সূচি.পিএফপি-ফাইল


7
দেখে মনে হচ্ছে আপনার স্থানীয় রেপো গিট রেপোর সাথে সুসংগত নয়। আপনি কি গিট টান করার চেষ্টা করেছেন?
আর

1
হ্যাঁ, তবে গিট টানার পরে নীচের সিনট্যাক্সটি সম্পর্কে আমার কোনও ধারণা নেই এটি গিট টান << রেট> <ফ্রেঞ্চ> বলে, আপনি কি আমাকে গিট টানার উদাহরণ বাক্য দেখতে পারেন?
লিপজি

1
- এই একই প্রশ্ন চেক করেন stackoverflow.com/questions/18588974/...
R11G

3
@ আর 11 জি আপনাকে ধন্যবাদ স্যার! এই লিঙ্কে আমাকে সাহায্য stackoverflow.com/a/18589043/3626672
leipzy

2
আমি একটি নতুন রেপোতে ত্রুটি পেয়েছি। এই সাহায্য সহায়তা দিয়েছে, stackoverflow.com/a/6518774/2067690
HumanInDisguise

উত্তর:


619

আপনি স্থানীয়ভাবে কাজ করার সময় যদি গিটহাব রেপোতে নতুন কমিটগুলি এতে চাপ দেওয়া দেখে থাকে তবে আমি এটি ব্যবহার করার পরামর্শ দেব:

git pull --rebase
git push

সম্পূর্ণ বাক্য গঠনটি হ'ল:

git pull --rebase origin master
git push origin master

(একবার) করার পরে গিট 2.6+ (সেপ্টেম্বর 2015) সহ

git config --global pull.rebase true
git config --global rebase.autoStash true

একটি সরল git pullযথেষ্ট হবে।
(দ্রষ্টব্য: গিট 2.27 কিউ 22020 এর সাথে একটি পুনরায় merge.autostashছাড়াই আপনার নিয়মিত টানার জন্য উপলব্ধ)

এই ভাবে, আপনি (রিপ্লে হবে --rebaseসদ্য আপডেট উপরে অংশ) আপনার স্থানীয় করে origin/master(অথবা origin/yourBranch: git pull origin yourBranch)।

মধ্যে আরো একটি সম্পূর্ণ উদাহরণ দেখুন রি-বেসের ফলে সঙ্গে অধ্যায় 6 টানুন এর গীত পকেট বুক

আমি একটি সুপারিশ করবে:

# add and commit first
git push -u origin master

এটি আপনার স্থানীয় মাস্টার শাখা এবং এর প্রবাহ শাখার মধ্যে একটি ট্র্যাকিং সম্পর্ক স্থাপন করবে।
এর পরে, সেই শাখার জন্য ভবিষ্যতের যে কোনও ধাক্কা একটি সাধারণ দিয়ে করা যেতে পারে:

git push

" কেন আমাকে স্পষ্টভাবে একটি নতুন শাখা চাপতে হবে? " দেখুন।


যেহেতু ওপি ইতিমধ্যে রিসেট করুন এবং পুনরায় করতে পারা তার কমিট উপরে origin/master:

git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin master

দরকার নেই pull --rebase

দ্রষ্টব্য: git reset --mixed origin/masterএছাড়াও লিখিত হতে পারে git reset origin/master, যেহেতু --mixedবিকল্পটি ব্যবহার করার সময় ডিফল্ট git reset


আপনার প্রস্তাবিত গিট পুল --rebase চালানো কি ঠিক হবে ...? coz আমি ইতিমধ্যে> গিট রিসেট - মিশ্রিত উত্স / মাস্টার> গিট অ্যাড করেছি। > Git -m কমিট> Git ধাক্কা উৎপত্তি মাস্টার এখানে প্রস্তাব "এই জন্য একটি নতুন কমিট কি আমি মূলত একটি amendmend হতে পরিকল্পিত" stackoverflow.com/questions/18588974/... BTW আপনার উত্তর দেখায় সহায়ক স্যার
leipzy

3
আমার জন্য, আমার কেবল "গিট কমিট" চালানো দরকার। :(
টাইলার

ধন্যবাদ, গিট এলএফএসের সাথে একটি নির্বোধ সমস্যা সমাধান করেছেন, ফলস্বরূপ হাহা হিসাবে এখন থেকে কমান্ড লাইনটি ব্যবহার করার জন্য আমি নিজেকে আত্মসমর্পণ করেছি।
টাইলার সি

2
সত্যিই সুপার .. নীচের কমান্ডগুলি আমার জন্য কাজ করেছে ... গিট রিসেট - মিক্সড উত্স / মাস্টার গিট অ্যাড। গিট কমিট-এম "গিট পুশ অরিজিনাল মাস্টার মূলত যা সংশোধন করার পরিকল্পনা নিয়েছিলাম তার জন্য এটি একটি নতুন প্রতিশ্রুতি" আপনাকে ধন্যবাদ ভিওসি
হরি নারায়ণন

1
ধন্যবাদ এটি কাজ করে! আমি এই সমাধানের জন্য কয়েক ঘন্টা খুঁজছিলাম!
রিডিয়ন শেহেপা

96

কেউ কি চেষ্টা করেছে:

git push -f origin master

যে সমস্যার সমাধান করা উচিত।

সম্পাদনা: নীচে @ মেহেদীর মন্তব্যের ভিত্তিতে আমার সম্পর্কে কিছু স্পষ্ট করা দরকার —force pushing। উপরের গিট কমান্ডটি কেবল প্রথম কমিটের জন্য নিরাপদে কাজ করে। যদি ইতিমধ্যে কমিটস থাকে, পূর্বে অনুরোধগুলি বা শাখাগুলি টানুন, এটি সবগুলি পুনরায় সেট করে এবং এটি শূন্য থেকে সেট করে। যদি তা হয় তবে আরও ভাল সমাধানের জন্য দয়া করে @ ভনসির বিস্তারিত উত্তরটি দেখুন।


25
কাজ করে তবে খারাপ, আপনি কী করছেন তা না জানলে দয়া করে এটি ব্যবহার করবেন না। (আপনি যদি এসও-তে সন্ধান করছেন তবে আপনি কী করছেন তা সম্ভবত আপনি জানেন না)
মেহেদি

3
আপনি যদি চেষ্টা করতে যাচ্ছেন -f/ --forceএর --force-with-leaseপরিবর্তে এটি ব্যবহার করা সবসময়ই নিরাপদ , যা ধাক্কা দিয়ে ক্লাবড্রাব হয়ে যাওয়া প্রবাহিত পরিবর্তনগুলি যদি ঘটে তবে তা বাতিল হয়ে যায়। --force-with-leaseপ্রচুর প্রতিদিনের রিবিসিং পরিস্থিতিতে --forceপ্রয়োজন তবে এটি কখনই প্রয়োজন হয় না।
জোশুয়া গোল্ডবার্গ

63

যদি আপনি স্রেফ git initআপনার ফাইলগুলি git add .বা অনুরূপ কিছু ব্যবহার করে এবং আপনার দূরবর্তী শাখা যুক্ত করে থাকেন তবে এটি হতে পারে যে আপনি git commit -m 'commit message'স্থানীয়ভাবে রিমোটটিতে চাপ দেওয়ার জন্য কোনও প্রতিশ্রুতিবদ্ধ করেন নি ... আমার এই ত্রুটিটি ছিল এবং এটি আমার ছিল সমস্যা.


1
শুধু এই মধ্যে দৌড়ে। কমিট কমান্ড গিট অ্যাড চলাকালীন কাজ করে নি। ভাল কল. ধন্যবাদ
ইগ্রিগ্রিট জাগ্রিত

1
ধন্যবাদ মানুষ! এটাই. আমি ভেবেছিলাম আমি আমার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ। এখন গিট পুশ-ই উত্সের মাস্টার ভাল কাজ করে।
tleo

36

আমারও একই সমস্যা ছিল আমি এই সমস্যাটি পাচ্ছিলাম কারণ আমি প্রাথমিক প্রতিশ্রুতি না দিয়ে কোনও প্রতিশ্রুতিবদ্ধ হয়নি এবং এখনও আমি চাপ দেওয়ার চেষ্টা করছিলাম।

একবার আমি git commit -m "your msg"এবং তারপর সবকিছু ঠিকঠাক কাজ।


8
এটি খুব একটা বোঝায় না। স্থানীয় প্রশ্নটি স্থানীয় গিটের পিছনে থাকার বিষয়ে । কোনওভাবেই "পিছনে থাকা" আমার স্থানীয় প্রতিশ্রুতিবদ্ধতার সমাধান করা যায় না!
ঘোস্টগেট

ওহ আমিও প্রতিশ্রুতি দিতে ভুলে গেছি: পি
শামস নাহিদ

এটিও সম্ভব এটি আপনাকে খালি প্রতিশ্রুতি দিয়ে চাপ দেওয়ার অনুমতি দেয় না
এমবিয়

3
আমার এই সমস্যাটি ছিল এবং আমি প্রতিশ্রুতি দিতে ভুলে গেছি। ত্রুটির বার্তাটি আরও পরিষ্কার হওয়া উচিত
ইভান টপিć

1
এটি আমার জন্য প্রযোজ্য যেহেতু আমি সেই সঠিক ত্রুটি বার্তা পাচ্ছিলাম এবং এই সমাধানটি আমার সমস্যার সমাধান করেছে।
দিয়েগো ফোর্টস

19

আপনার শাখার নাম পরিবর্তন করুন এবং তারপরে চাপ দিন, যেমন:

git branch -m new-name
git push -u new-name

এটি আমার পক্ষে কাজ করেছে।


1
এটি কাজ করেছে, তবে দয়া করে ব্যাখ্যা করুন কেন আমাদের এটি করা উচিত
কানলুকাস

বাহ, এটি আসলে কাজ করেছে, তবে কেন? আমি আমার স্থানীয় শাখা নামে একটি হাইফেন ছিল: my-branch_wont_push। একবার আমি এর নাম পরিবর্তন করেছিলাম my_branch_wont_push, তারপরে git push -u origin my_branch_wont_pushআমার পক্ষে কাজ করে।
সিডিবেল

13

আমি গিথুব সাহায্যে এই সমস্যার সমাধান খুঁজে পাই।

আপনি এটি থেকে দেখতে পাচ্ছেন: দ্রুত-অগ্রবর্তী ত্রুটিগুলির সাথে ডিল করা

এটা বলে:

আপনি স্থানীয়ভাবে যে পরিবর্তনগুলি করেছেন সেগুলি দিয়ে দূরবর্তী শাখায় করা পরিবর্তনগুলি আনয়ন এবং মার্জ করে আপনি এটি ঠিক করতে পারেন:

$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin branch
# Merges updates made online with your local work

অথবা, উভয় কমান্ড একবারে সম্পাদন করতে আপনি কেবল গিট টান ব্যবহার করতে পারেন:

$ git pull origin branch
# Grabs online updates and merges them with your local work

1
যখনই জিনিস প্রত্যাশা অনুযায়ী কাজ করছে এটি এটাই স্বাভাবিক প্রক্রিয়া। যখন গিট মনে করে যে এটি ইতিমধ্যে আপ ডুবাইড রয়েছে যখন রূবইন্ডকফির জিজ্ঞাসা করেছিল তেমন কিছুতেই সহায়তা করে না।
টিম

10
  1. git init

  2. git remote add origin https://gitlab.com/crew-chief-systems/bot

  3. git remote -v (বর্তমান সংগ্রহস্থল পরীক্ষা করার জন্য)

  4. git add -A(সমস্ত ফাইল যুক্ত করুন)

  5. git commit -m 'Added my project'

  6. git pull --rebase origin master

  7. git push origin master


কোডটি ধাক্কা দেওয়ার আগে আপনার সংগ্রহশালা থেকে টানতে হবে
জেমস শিভা

আপনি কেবল গিট টান --rebase মূল মাস্টার
জেমস শিভা

6

আমি একই সমস্যার মুখোমুখি হয়েছি, নীচের পদক্ষেপগুলি দিয়ে ঠিক করেছি।

  1. git init
  2. git add .
  3. git commit -m 'Add your commit message'
  4. git remote add origin https://User_name@bitbucket.org/User_name/sample.git

    (উপরে url https: //User_name@bitbucket.org/User_name/sample.git আপনার বিট বালতি প্রকল্প url বোঝায়)

  5. git push -u origin master

ইঙ্গিত

আপনার গিট হাব অ্যাকাউন্টটি স্থানীয় গিটের সাথে লিংক ব্যবহার করে তা পরীক্ষা করে দেখুন:

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

4

আপনি যদি জীবাণু ব্যবহার করে থাকেন তবে এটি প্রতিশ্রুতিতে অনুপযুক্ত পরিবর্তন-আইডির কারণে হতে পারে। চেঞ্জ-আইডি মোছার চেষ্টা করুন এবং দেখুন কী ঘটে।


4

গিথুব রেপোতে চাপ দেওয়ার আগে আপনার পরিবর্তনগুলি করতে ভুলবেন না। এটি আপনার সমস্যার সমাধান করতে পারে।


4

ধাক্কা দেওয়ার আগে প্রাথমিক পরিবর্তন না করাও সমস্যা তৈরি করে


3

ধাক্কা দেওয়ার আগে আপনাকে পরিবর্তনগুলি যুক্ত করতে বা প্রতিশ্রুতিবদ্ধ করতে হবে বা করতে হবে git push -f origin master


3
git push origin {your_local_branch}:{your_remote_branch}

যদি আপনার স্থানীয় শাখা এবং দূরবর্তী শাখা একই নামটি ভাগ করে নেয়, তবে আপনি কেবল নিজের স্থানীয় শাখার নাম বাদ দিতে পারেন git push {your_remote_branch}। অন্যথায় এটি এই ত্রুটি নিক্ষেপ করবে।


3

আমি নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করেছিলাম এবং এটি আমার পক্ষে কাজ করে।

 rm -rf .git
 git init
 git add .
 git commit -m"first message"
 git remote add origin "LINK"
 git push -u origin master

2

আপনার কাছে কোনও ফাইল না থাকলে এটি ঘটতে পারে। একটি পাঠ্য ফাইল তৈরি করার চেষ্টা করুন তারপরে নিম্নলিখিত কমান্ডগুলি অনুসরণ করুন

git add .
git commit -m "first commit"
git push --set-upstream origin master

2

আমার জন্য সমস্যা ছিল, আমি কমিট করার আগে ফাইলগুলি যুক্ত করিনি not

git add .

git commit -m "your msg"


2

সেরা ব্যবহার rm -rf .git/hooksএবং তারপরে গিট পুশ চেষ্টা করুন


আকর্ষণীয়, এটি আমাকে এমন একটি ক্ষেত্রে সহায়তা করেছিল, যেখানে স্পষ্টত কোনও উত্সের প্রতিশ্রুতি ছিল না (পুনর্বাসনের দরকার নেই)।
পেভিক

আপনি আপনার সমস্ত হুক কেন টস করবেন? প্রথমে একটা ব্যাকআপ তৈরি করতে পারে?
এমএসপ্রেজ

2

আমি গিটহাবে একটি খালি রেপো তৈরি করেছি এবং স্থানীয়ভাবে আমার কোড রয়েছে। আমি এখন নীচের ক্রমটি অনুসরণ করার সাথে সাথে একই সমস্যার মুখোমুখি হয়েছি,

git init
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git add .
git push -u origin master

সমস্যা ছিল: আমার কাছে থাকা ফাইলগুলি সংরক্ষণ করার আগে আমি প্রতিশ্রুতিবদ্ধ হওয়ার চেষ্টা করেছি।

সুতরাং আমরা ফাইলগুলি স্টেজ করতে এবং তারপরে কমিট প্রয়োজন।

এটি সঠিক ক্রম।

git init
git add .
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git push -u origin master

যেহেতু আমি প্রথমে ভুল ক্রমটি সম্পাদন করি, আমি কেবল নীচের আদেশগুলি সম্পাদন করি

git add .
git commit -m 'Initial Commit'
git push -u origin master

1

এটি প্রযোজ্য কিনা তা নিশ্চিত নয়, তবে আমার পক্ষে ঠিক ছিল git init পরে স্থানীয়ভাবে কিছু করা। তারপরে আমি --set-upstream ব্যবহার করে দূরবর্তী স্থানে চলে গেলাম ...


1

আমার জন্য সমাধান করা একটি নতুন শাখা তৈরি করা:

git checkout -b <nameOfNewBranch>

পূর্ববর্তী শাখাটি সম্পূর্ণরূপে নতুন শাখায় অন্তর্ভুক্ত থাকায় মার্জ হওয়ার দরকার ছিল না বলে প্রত্যাশিত।


1
আমার ঠিক এই সমস্যাটি ছিল, আমি বৈশিষ্ট্য 22 এ ছিল এবং করছিলাম git push origin feature22-fix, তবে feature22-fixস্থানীয় বা দূরবর্তী উভয়ই ছাড়েনি , তাই আমাকে প্রথমে স্থানীয়ভাবে শাখাটি চেক আউট করতে হবে, তারপরে চাপ দিন
হানি

1

আপনি যদি কোনও বিদ্যমান গিটহাব রিপোজিটরি দিয়ে ডিরেক্টরিটি সূচনা করার চেষ্টা করছেন, আপনার অবশ্যই পরিবর্তন করা হচ্ছে তা নিশ্চিত করা উচিত।

একটি ফাইল তৈরি করার চেষ্টা করুন:

touch initial
git add initial
git commit -m "initial commit"
git push -u origin master

এটি প্রাথমিক নামে একটি ফাইল রাখবে যা আপনি পরে মুছতে পারেন।

আশা করি এই উত্তরটি সাহায্য করবে! গুডলাক!



1

আমার ক্ষেত্রে, এটি আমার huskyপ্যাকেজ যা ধাক্কা দিতে অস্বীকার করে।

> husky - pre-push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to push some refs to 'https://username@bitbucket.org/username/my-api.git'

এটিকে জোর করে ধাক্কা দেওয়ার জন্য, কেবল চালান git push origin master --no-verify

আমি npm run prepushত্রুটিটি ডিবাগটি দেখতে দৌড়ে এসেছি এবং এর কারণ ছিল:

npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run  npm install  to fix them.
npm ERR!     Invalid: lock file's loopback-utils@0.8.3 does not satisfy loopback-utils@^0.9.0

দৌড়াতে npm installএবং এটি প্রতিশ্রুতিবদ্ধ, এবং সমস্যা স্থির করা হয়েছে।


1

এই গুলো করো

git rm --cached *
git add .
git commit -m"upload"
git push --set-upstream origin master

শুভ কোডিং!



0

ঠিক আছে যদি উপরের উত্তরগুলির কোনওটিই কাজ না করে এবং আপনি যদি ssh-addইদানীং কিছু নিয়ে গোলমাল করেন। চেষ্টা

ssh-add -D

0

সোর্সট্রি ব্যবহারকারীদের জন্য

প্রথমে প্রাথমিক প্রতিশ্রুতি দিন বা নিশ্চিত করুন যে আপনার কোনও আপত্তিহীন পরিবর্তন নেই, তারপরে সোর্সট্রি এর পাশে একটি "রিমোটস" রয়েছে, এটিতে ডান ক্লিক করুন এবং তারপরে 'পুশ টু আদি' ক্লিক করুন। এই নাও.


0

শাখার মতোই আমারও ট্যাগ ছিল এবং আমি শাখাটি দূরবর্তী স্থানে ঠেলে দেওয়ার চেষ্টা করেছি বলে আমার সাথে এটি ঘটে।


0

আমার ক্ষেত্রে সমস্যাটি ছিল (আশ্চর্যরূপে) মাস্টার নামে কোনও শাখা ছিল না। আমি গিথুব থেকে সংগ্রহস্থল নিয়েছি।


0

আমি বিদ্যমান টাইপো 'এম্বেফ' শাখাটি চাপ দিচ্ছিলাম যা আমার এখনও চেকআউট হয়নি, এবং এর পরিবর্তে, আমি 'খাম' নামে একটি শাখা চাপতে চাইছি। সুতরাং শাখাটি অবশ্যই অবশ্যই স্থানীয় ওয়ার্কিং কপিতে চেকআউট করতে হবে যাতে অবশ্যই চাপ দেওয়া যায় না, তাই এই ত্রুটিটি টাইপও না করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.