গিট: আপডেটগুলি প্রত্যাখ্যান করা হয়েছিল কারণ রিমোটে এমন কাজ রয়েছে যা আপনার স্থানীয়ভাবে নেই


113

আমি বিটবকেটে গিট ব্যবহার করে কয়েকজন বিকাশকারীকে নিয়ে একটি টিমে কাজ করছি। আমরা সকলেই একটি devশাখায় কাজ করছি , masterমুক্তি না পাওয়া পর্যন্ত চাপ দিচ্ছি না ।

বিকাশকারীদের মধ্যে একটি ভুল কোড প্রতিশ্রুতিবদ্ধ যা দুর্ঘটনাক্রমে আমার নিজেরটিকে ওভাররোট করে দেয় এবং এখন আমি সঠিক কোডটি রেপোতে ফিরে যেতে চেষ্টা করছি। আমি এখন কয়েক দিন ধরে এই ত্রুটিটি পড়ছি, আমি আর রেপোতে চাপ দিতে পারছি না কারণ আমি নিম্নলিখিত ত্রুটিটি পাচ্ছি:

 ! [rejected]        master -> dev (fetch first)
error: failed to push some refs to 'https://myusername@bitbucket.org/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

আমি নির্দেশাবলী অনুসরণ করি এবং pullতবে আমি একীভূত দ্বন্দ্ব গ্রহণ করি। মার্জ সংঘাতের জন্য একটি বার্তা প্রবেশের পরে, আমার স্থানীয় কোডটি এখন অন্য কোডটি ভুল কোড যা দুর্ঘটনার দ্বারা আপলোড করা হয়েছিল (এর কাছ থেকে প্রত্যাশিত pull)। তাই আমি প্রত্যাবর্তনের আগে আমি যে অনুলিপিটি অনুলিপি করেছিলাম তার সাথে ভুল কোডটি প্রতিস্থাপন করেছি এবং যখন আমি আবার ধাক্কার চেষ্টা করি তখন আমি একই ত্রুটি পাই।

এটি সত্যিই হতাশাব্যঞ্জক, আমি সত্যিই আমার দলকে সাহায্য করতে এবং অবদান রাখতে চাই, তবে আমি এই ত্রুটির কারণে পারছি না। কেউ কীভাবে এই সমস্যাটি সমাধান করবেন জানেন? আমি কোন সাহায্যের খুব প্রশংসা করব

এটি করার জন্য আমি যে আদেশগুলি চালিত করি সেগুলি হ'ল, যদি এটি কাউকে সহায়তা করে:

git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev

আমি ভাবতাম যে আমি যদি এই আদেশটি পালন করে থাকি তবে আমি মার্জ সংঘাতগুলি গ্রহণ করব না। আমার ধারণা আমি ভুল ছিলাম। আবার ধন্যবাদ

আপডেট করুন: আমি যোগ করা উচিত যে আমি Google এবং Stackoverflow উপর কয়েক ঘন্টার জন্য তাকিয়ে আছে, আর অনুসৃত বিভিন্ন নির্দেশাবলী, কিন্তু আমি এখনও পারব না pushকরার devশাখা।

উত্তর:


42

git pull <remote> master:devremote/masterশাখাটি আনবে এবং এটিকে আপনার local/devশাখায় একীভূত করবে ।

git pull <remote> devremote/devশাখাটি আনবে এবং এটিকে আপনার বর্তমান শাখায় একীভূত করবে।

আমি মনে করি আপনি বলেছিলেন যে বিরোধী কমিট চলছে remote/dev , তাই সম্ভবত সেই শাখাটি সম্ভবত আপনি আনতে এবং একীভূত করতে চেয়েছিলেন।

সেক্ষেত্রে আপনি আসলে আপনার স্থানীয় শাখায় দ্বন্দ্বটি মার্জ করছেন না, যা অদ্ভুত রকমের যেহেতু আপনি বলেছিলেন যে আপনি নিজের কাজের অনুলিপিতে ভুল কোডটি দেখেছেন। আপনি যা যা চলছে তা যাচাই করতে চাইতে পারেন remote/master


1
বাহ ... আমি তা কখনই জানতাম না। তবে এটি এখন অনেক অর্থবোধ করে। মাস্টার শাখাটিও ভুল ছিল, সুতরাং আপনার উত্তরটি আমার পুরো প্রশ্নটি সাফ করে। আমি এখনও গিটে কিছুটা নতুন আমাকে এই দুজনের মধ্যে পার্থক্য জানানোর জন্য অনেক ধন্যবাদ!
ডেলোস

6
আমার জন্য সেরা বিকল্প ছিল git pull --rebase
derekmx271

152

টার্মিনালে এই কমান্ডটি ব্যবহার করুন

গিট ধাক্কা - উত্স মাস্টার


49
ফোর্স পুশ (-f) পতাকা ব্যবহার করা অত্যন্ত বিপজ্জনক এবং এটি কখনই আপনার নিয়মিত কাজের প্রবাহের অংশ হওয়া উচিত নয়
স্পাইডেরি

5
আমি এই উত্তরে কিছু সতর্কতা অনুপস্থিত থাকায় অবহেলিত।
মেলিবিয়াস

2
ওহ! এটি স্টোরকে পুনরায় লেখতে বাধ্য করে।
আজরাসা

3
গিথুব নিয়ে আমারও একই ত্রুটি ছিল এবং আমি এই আদেশটি দিয়ে এটি সংশোধন করেছিলাম, @ থিয়েস্টকোস্টওয়েস্ট কেন আপনি এটিকে বিপজ্জনক বলছেন? আপনার কারণ কী "
সাইমন

3
@ সিমন এটি বিপজ্জনক কারণ এটি দূরবর্তী অঞ্চলে থাকা কাজটিকে উপেক্ষা করে এবং এটি আপনার পরিবর্তনগুলিকে রেপোতে চাপিয়ে দেয়। সুতরাং আপনি যদি নিজের দলের কাজকে গোলমাল করতে না চান তবে চাপ দিন না।
গস্টেন

42

এটা যখন আমরা দূরবর্তী সংগ্রহস্থল থেকে ধাক্কা চেষ্টা করছেন কিন্তু যা টানা হয় নি এখনো, বলে দিন রিমোটের একটি নতুন ফাইল তৈরি করেছে Readme। ত্রুটি হিসাবে যে ক্ষেত্রে

গিট আপডেটটি প্রত্যাখ্যান করে

যেহেতু আমরা আমাদের স্থানীয় পরিবেশে আপডেটেড রিমোট গ্রহণ করি নি। সুতরাং রিমোট থেকে প্রথমে টানুন

git pull

এটি আপনার স্থানীয় সংগ্রহস্থল আপডেট করবে এবং একটি নতুন Readmeফাইল যুক্ত করবে। তারপরে রিমোটে আপডেট হওয়া পরিবর্তনগুলি পুশ করুন

git push origin master

আমি git pull origin developআমার স্থানীয় বিকাশ শাখায় git pullকাজ করছিলাম, তবে এখন এটি করা আমার পক্ষে ঠিক কাজ করে কেন, আমি জানি না।
অ্যালেক্স

কারণ ডিফল্টরূপে যদি আপনার স্থানীয় শাখা দূরবর্তী শাখা ও synched হয় আপনি যে শাখা আপনি শুধু একটি শাখা নির্দিষ্ট করতে হবে না চেক আউট হয় git pullযথেষ্ট
হিমাংশু

11

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

সুতরাং রিমোট থেকে একটি টান তৈরি করুন

git pull origin master

তারপরে সেই রিমোটে পরিবর্তনগুলি চাপুন

git push origin master


7

আমি এটি স্থির করে দিয়েছি, আমি কী করেছি তা নিশ্চিত নয়। আমি চেষ্টা করে কেবল ধাক্কা দিয়ে টানতে চেষ্টা করেছি:

git pull <remote> dev পরিবর্তে git pull <remote> master:dev

আশা করি কারও যদি একই সমস্যা হয় তবে এটি তাদের সহায়তা করবে।


6

আপনার ইনপুট করতে হবে:

$ git pull
$ git fetch 
$ git merge

আপনি যদি একটি ব্যবহার করেন তবে আপনার git push origin master --forceএকটি বড় সমস্যা হবে।


5
আপনি ব্যবহার করতে কেন প্রয়োজন git fetchএবং git mergeআবার ম্যানুয়ালি চলমান পরে git pullযা তাদের রয়েছে ?
মেলিবিয়াস

6

আপনি এটি চেষ্টা করতে পারেন: git pull origin master --rebase


2
হাই এডুয়ার্ডো! এটি আমার পক্ষে কাজ করেছে। তবে আপনি এটি ব্যাখ্যা করতে পারেন কেন এটি কাজ করে? এই আদেশটি ঠিক কী করে?
অক্ষয় নাটারাজন

4

আসলে গিথুব আমরা যা ভাবি তার থেকে অনেক সহজ এবং পুরোপুরি এটি ঘটে যখনই আমরা আমাদের গিট রিপোজিটরিতে স্পষ্টভাবে কিছু ফাইল sertedোকানোর পরেও চাপ দেওয়ার চেষ্টা করি যাতে সমস্যাটি সমাধান করার জন্য কেবল চেষ্টা করুন ..

: গিট টান

এবং তারপর..

: গিট ধাক্কা

দ্রষ্টব্য: যদি আপনি দুর্ঘটনাক্রমে আপনার ভান্ডারটি টানার পরে ভিএম সম্পাদকের সাথে আটকে থাকেন তবে ভিম সম্পাদককে ঘনিষ্ঠ হয়ে ভাববেন না এবং চাপ দেওয়ার চেষ্টা করবেন :)


4

আমি নীচের পদক্ষেপগুলি করেছি। অবশেষে এটি ভাল কাজ করছে।

ধাপ

1) গিট ইনিশ

2) গিট স্ট্যাটাস (স্থিতি পরীক্ষার জন্য)

3) গিট অ্যাড। (সমস্ত পরিবর্তন ফাইল (।) যুক্ত করুন)

4) গিট কমিট-মি "<pass your comment>"

5) গিট দূরবর্তী অ্যাড উত্স "<pass your project clone url>"

6) গিট টান - নিবন্ধ-সম্পর্কহীন-ইতিহাসের "<pass your project clone url>"মাস্টার

7) গিট ধাক্কা- "<pass your project clone url>"মাস্টার


2

আমার এই ত্রুটি ছিল এবং এটি কারণ এটি ছিল যে সার্ভারে একটি আপডেট ছিল তবে সোর্সট্রি কোনও আপডেট উপলব্ধ দেখাচ্ছে না (সম্ভবত এটি শেষবার চেক করার সময় আমি অফলাইনে ছিলাম)। সুতরাং আমি উত্স ট্রিতে একটি রিফ্রেশ করেছি এবং এখন এটি 1 আইটেমের পরিবর্তে 2 টি আইটেম দেখায়।

সুতরাং আপনি যদি এই ত্রুটিটি পান তবে রিফ্রেশ টিপুন বা টানুন এবং আবার চেষ্টা করুন sure


1

গিট টান --rebase উত্স মাস্টার

গিট পুশ আদি মাস্টার


গিট ধাক্কা - উত্স মাস্টার

সতর্কবাণী গিট পুশ-ফ উত্সের মাস্টার

  • বিদ্যমান সংগ্রহস্থলগুলিতে জোর করে চাপ দেয় এবং পূর্ববর্তী সংগ্রহগুলি মুছুন যাতে আপনার যদি আগের সংস্করণগুলির প্রয়োজন না হয় তবে এটি সহায়ক হতে পারে

1

আপনি যে কোডটি করছেন তার বিভিন্ন কাঠামোর কারণে এবং গিটহাবের উপস্থিত উপস্থিতির কারণে সম্ভবত ত্রুটিটি এসেছিল। আপনি উল্লেখ করতে পারেন: " সম্পর্কযুক্ত ইতিহাস একীভূত করতে অস্বীকৃতি " ত্রুটিটি কীভাবে মোকাবেলা করবেন :

$ git pull --allow-unrelated-histories
$ git push -f origin master

1

আমার জন্য সর্বোত্তম বিকল্প এবং এটি কার্যকর এবং সহজ

git pull --rebase

তারপর

git push

ভাগ্য সুপ্রসন্ন হোক


1

এইভাবে আমি এই সমস্যাটি সমাধান করেছি:

  1. git pull origin master
  2. git push origin master

আপনার দূরবর্তী শাখাটি আপডেট না করা হলে এটি সাধারণত ঘটে। এবং এর পরে যদি আপনি "দয়া করে একটি প্রতিশ্রুতি বার্তা প্রবেশ করুন" এর মতো ত্রুটি পান তবে এটি দেখুন (আমার জন্য জিয়াওহু ওয়াং উত্তরটি কাজ করেছে :))


0

আমার প্রথমে একটি এসএসডিটি ভিএস প্রকল্প ছিল। প্রকল্পটি গিথুবের কাছে যেমন ছিল তেমন আমি ধাক্কা দিতে চেয়েছিলাম। আমি চেয়েছিলাম যে পুশটি মাস্টার শাখা শুরু করে আমার রেপোর প্রাথমিক সংস্করণ হতে পারে। ডোনালের গিট পুশ-ফ উত্সের মাস্টার সম্পর্কে পরামর্শটি সম্পাদন করার সহজতম উপায় (এটি আমি দেখেছি)। যেহেতু আমাকে পুনরায় লেখার বিষয়ে চিন্তা করতে হবে না, তাই এটি বোধগম্য মনে হয়েছিল।


0

আমারও একই সমস্যা ছিল। এটি ঘটেছিল যে আমি তৈরি করেছি file সংগ্রহস্থলটিতে ফাইলটি প্রথমে টান না দিয়ে পড়ুন।

আপনি মুছে ফেলতে চাইতে পারেন ফাইলটি পড়ুন বা চাপ দেওয়ার আগে এটিকে টানুন।


আমি নিশ্চিত নই যে 5 বছরের পুরানো প্রশ্নের উত্তরটি কোনও অতিরিক্ত মান সরবরাহ করে, এবং এটি ওপি-র নির্দিষ্ট সমস্যার সমাধান দেয় না। : যেহেতু আপনি একটি নতুন অবদানকারী হন, দয়া করে কীভাবে উত্তর প্রশ্ন একটি গাইড কটাক্ষপাত করা stackoverflow.com/help/how-to-answer
সটিরিস Koukios-Panopoulos

0

তুমি ব্যবহার করতে পার

git pull --rebase <your_reponame> <your_branch>

এটি আপনার স্থানীয় রেপোতে নিবন্ধিত না হওয়াতে কিছু পরিবর্তন আনতে সহায়তা করবে। বিশেষতREADME.md

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