! [প্রত্যাখ্যাত] মাস্টার -> মাস্টার (প্রথমে আনুন)


102

! [rejected] master -> master (fetch first)'গিটে " " কীভাবে সমাধান করবেন তা বোঝানোর জন্য কি কোনও ভাল উপায় আছে ?

আমি যখন এই কমান্ডটি ব্যবহার করি তখন $ git push origin masterএটি একটি ত্রুটি বার্তা প্রদর্শন করে।

! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:zapnaa/abcappp.git'

উত্তর:


133

উত্তরটি আছে, গিট আপনাকে প্রথমে আনতে বলছে।

সম্ভবত অন্য কেউ ইতিমধ্যে মাস্টারকে ঠেলে দিয়েছে এবং আপনার প্রতিশ্রুতি পিছনে রয়েছে। সুতরাং আপনাকে আনতে হবে, রূপান্তরটি মার্জ করতে হবে এবং তারপরে আপনি আবার চাপ দিতে সক্ষম হবেন।

যদি আপনি না করেন (বা আরও খারাপ, আপনি যদি --forceবিকল্পটি ব্যবহার করে জোর করে ) তবে আপনি প্রতিশ্রুতিবদ্ধ ইতিহাসটি বিশৃঙ্খলা করতে পারেন।

সম্পাদনা: আমি শেষ পয়েন্টটি সম্পর্কে আরও বিস্তারিতভাবে জানতে পারি, যেহেতু এখানে একজন লোক কেবল --forceবিকল্পটি ব্যবহার করার জন্য খুব খারাপ পরামর্শ দিয়েছে ।

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

টিএল; ডিআর

  1. আপনি যদি সমাধান করতে চান তবে প্রথমে আনুন (এবং তারপরে মার্জ করুন)।
  2. আপনি যদি হ্যাক করতে চান তবে --forceবিকল্পটি ব্যবহার করুন ।

যদিও আপনি প্রাক্তন জন্য জিজ্ঞাসা করেছেন। 1) সর্বদা যান, এমনকি যদি আপনি সর্বদা নিজের দ্বারা গিট ব্যবহার করবেন তবে এটি একটি ভাল অনুশীলন।


4
স্থানীয় ফাইলগুলিতে গুরুত্বপূর্ণ পরিবর্তনগুলি মুছতে পারবেন না?
লিওনার্দো কাস্ত্রো

4
এটা একটা আনতে পর পরিবর্তন করে না
dhein

@ আমি যেমন লিখেছি, আনতে হবে অবশ্যই একীভূত হওয়ার পরে - মূল কথাটি হ'ল আপনাকে স্থানীয় গাছকে দূরবর্তী গাছের সাথে "সারিবদ্ধ" করতে হবে (সুতরাং সংশ্লেষের সাথে) - তবে ধন্যবাদ, আমি এটি টিএলে লিখেছি; ডিআর খুব
linuxbandit

88

চেষ্টা করুন:

git fetch origin master
git merge origin master

এই কোডটি লেখার পরে আমি অন্য ত্রুটি পেয়েছি: (দ্রুত নয়)

আমি এই কোডটি লিখি:

git fetch origin master:tmp
git rebase tmp
git push origin HEAD:master
git branch -D tmp

এবং আমার সমস্যা সমাধান করেছেন


আমার জন্যও একই. এটি আমার সমস্যার সমাধান করেছে। সতর্কতা একটি দম্পতি আছে। আমি একটি উপ-সংগ্রহস্থল নিয়ে গণ্ডগোল পেয়েছি, তবে এটি দিয়ে সমাধান করেছি: স্ট্যাকওভারফ্লো
.

4
@ অরেলিও এ আপনার মার্জ কমান্ডটি ভুল, এটি হওয়া উচিত git merge master
মাইকে

আমাদের গিট শাখা -D টিএমপি ব্যবহারের দরকার কেন?
Милош Вељковић

27

আপনার ব্যবহার করা উচিত git pull, এর কমান্ডটি একটি git fetchএবং পরবর্তীটি করুন git merge

আপনি যদি কোনও git push origin master --forceআদেশ ব্যবহার করেন তবে ভবিষ্যতে আপনার সমস্যা হতে পারে।


4
আপনি কি প্রকল্পের একমাত্র ব্যক্তি এবং আপনি নিজের প্রথম ধাক্কা দেওয়ার চেষ্টা করে হতাশ হচ্ছেন তা কি সঠিক?
শে

20

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

git init
git add README.md
git add .
git commit -m "first commit"
git remote add origin https://github.com/userName/repoName.git
git push --force origin master

আমার জন্য কাজ করে, আমি আবার নতুন প্রকল্প শুরু করেছি (একই রেপো) এবং আমি এটি প্রতিস্থাপন করতে চাই।
ucotta

18

এই গিট কমান্ড চেষ্টা করুন

git push origin master --force

বা শক্তি সংক্ষিপ্ত -f

git push origin master -f


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

10

ত্রুটি বার্তায় যেমনটি বলা হয়েছে আপনাকে "প্রথমে আনতে হবে"। এটি আমার পক্ষে কাজ করেছে। কমান্ডটি ব্যবহার করুন:

  1. git fetch origin master

তারপরে মার্জ করার জন্য এই পদক্ষেপগুলি অনুসরণ করুন:

  1. git pull origin master
  2. git add .
  3. git commit -m 'your commit message'
  4. git push origin master


3

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন: --মারির পতাকাটি ব্যবহার করে প্রথমে আপনার রেপোর একটি নতুন কপি ক্লোন করুন:

$ git clone --mirror git://example.com/some-big-repo.git

তারপরে কোডগুলি অনুসরণ করুন:

কমান্ড লাইনটি ব্যবহার করে গিটহাবে একটি বিদ্যমান প্রকল্প যুক্ত করা হচ্ছে

এমনকি যদি এটি কাজ না করে তবে আপনি কেবল কোড করতে পারেন:

$ git push origin master --force 

বা

$ git push origin master -f

3

আমারও একই সমস্যা হওয়ায় নীচে দেওয়া পদক্ষেপগুলি অনুসরণ করুন:

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

(স্থানীয় শাখা সহজেই দূরবর্তী শাখার সাথে মিশে যেতে পারে কিনা তা দেখতে)

$ git push -u origin master 

(এখন স্থানীয় গিট সংগ্রহস্থলের পুরো সামগ্রীটি আপনার অনলাইন ভান্ডারটিতে চাপুন)


2

সম্ভবত যে অন্য কেউ (যেমন আপনার সহকর্মী) origin/masterআপনার স্থানীয় masterশাখায় নেই সেই বিষয়ে কমান্ড করেছেন এবং আপনি আপনার স্থানীয় শাখা থেকে সার্ভারে কিছু কমিট চাপার চেষ্টা করছেন। 99% ক্ষেত্রে, ধরে নিই যে আপনি তাদের কাজটি মুছতে চান না origin, আপনার কাছে দুটি বিকল্প রয়েছে:

2) তাদের পরিবর্তনগুলি আপনার স্থানীয় শাখায় মার্জ করুন এবং তারপরে মার্জ করা ফলাফলটি ধাক্কা দিন। git checkout master git pull # resolve conflicts here git push

(দ্রষ্টব্য যে এই ক্ষেত্রে git pullমূলত কেবল একটি git fetchএবং একটি git merge))

1) আপনার স্থানীয় শাখাটি রিবেস করুন, যাতে দেখে মনে হচ্ছে আপনার সহকর্মী প্রথমে তাদের কমিট করেছে এবং তারপরে আপনি আপনার প্রতিশ্রুতিবদ্ধ করেছেন। এটি প্রতিশ্রুতিবদ্ধ ইতিহাসকে সুন্দর এবং রৈখিক রাখে - এবং "মার্জ কমিট" এড়ায়। তবে, আপনার সহকর্মীর পরিবর্তনের সাথে যদি আপনার দ্বন্দ্ব থাকে তবে আপনাকে আপনার প্রতিশ্রুতি (কেবল একবার নয় বরং একবারে) এর জন্য এই দ্বন্দ্বগুলি সমাধান করতে হতে পারে সবচেয়ে খারাপ ক্ষেত্রে। মূলত এটি অন্য সবার জন্য সুন্দর তবে আপনার জন্য আরও প্রচেষ্টা। git pull --rebase # resolve conflicts here git push

(নোট যে git pull --rebaseমূলত একটি git fetchএবং একটি git rebase origin/master।)



1

আপনার ত্রুটিটি মার্জ শাখার কারণে হতে পারে।
কেবল এটি অনুসরণ করুন:

পদক্ষেপ 1: git pull origin master(যদি আপনি কোনও বার্তা পান তবে তা এড়িয়ে যান)
পদক্ষেপ 2: git add .
পদক্ষেপ 3: git commit -m 'your commit message'
পদক্ষেপ 4:git push origin master


1

প্রথমে আপনার ব্যবহার করা উচিত git pull, তারপরে একটি কমান্ড করুন git fetchএবং পরের বার গিটটি একত্রিত করুন।

আপনি যদি কোনও git push origin master --forceআদেশ ব্যবহার করেন তবে ভবিষ্যতে আপনার সমস্যা হতে পারে।


1

আমি এই জাতীয় একটি নতুন শাখা পরীক্ষা করে এটি কাটিয়ে উঠলাম:

# git checkout -b newbranch <SHA of master>

# git branch
* newbranch
  master

# git push -u <repo_url_alias> newbranch

আপনার ২ টি শাখা রয়েছে: মাস্টার এবং নিউ ব্রাঞ্চ, আপনি পরে মার্জ করার জন্য পরিচালনা করতে পারেন।


0

আপনাকে কেবল আপনার প্রত্যন্ত নামের সাথে আপনার শাখার নাম উল্লেখ করতে হবে।

git fetch origin
git merge origin/master

0

আমার ক্ষেত্রে এটি হওয়ার কারণটি ছিল গিটহাব রেপ লিঙ্কটি তৈরি করার সময়, আমি এটিকে README ফাইল দিয়ে আরম্ভ করেছি

গিট রিমোট তৈরি করার সময় এটিকে README ফাইল দিয়ে আরম্ভ করবেন না অন্যথায় এটি ভুল দেখাবে

এটি করবেন না এবং এটি অবশ্যই কার্যকরভাবে কাজ করবে যদি আপনি মাস্টার ব্রাঞ্চে চাপ দেওয়ার পরে চান তবে এটি পুনরায় পড়া ফাইলের সাথে আরম্ভ করুন


0

এটি আমার পক্ষে কাজ করেছে, যেহেতু অন্য কোনও সমাধান আমার পক্ষে কাজ করে নি। কখনও শক্তিশালী নয়!

https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a- विसरा-conflict- using-the-command-line

সবে গিট বাশের মধ্য দিয়ে যেতে হয়েছিল

cd REPOSITORY-NAME
git add .
git commit -m "Resolved merge conflict by incorporating both suggestions."

তারপরে আমার সেন্টিমিডিতে ফিরে এসে আমি পারলাম: git push heroku masterযা আমার ক্ষেত্রে সমস্যা ছিল।



0

এখানে চিত্র বর্ণনা লিখুন

! [প্রত্যাখ্যাত] মাস্টার -> মাস্টার (প্রথমে আনুন) ত্রুটি: কিছু রেফকে 'git@github.com:' এ ধাক্কা দিতে ব্যর্থ হয়েছে

এখানে চিত্র বর্ণনা লিখুন

--For কমান্ড ব্যবহার করে সমস্যাটি সফলভাবে সমাধান করা হয়েছে । সুতরাং, আপনাকে অবশ্যই গিট পুশ অরিজিন মাস্টার - ফোর্স ব্যবহার করতে হবে





-1

এর সাধারণ এই আদেশটি ব্যবহার করুন:

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

এবং এটি আপনার কাজ শেষ করবে


-1

সমস্যা সমাধান

আমার সমস্যা ছিল

! [rejected]        master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/repo_name/repo-hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g.hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

আমারও একই সমস্যা ছিল। সমস্যাটি হ'ল আপনার commitsঅন্যান্য সংগ্রহস্থলগুলিতে সাফল্য ছিল না pushedতাই আপনাকে নিম্নলিখিত কমান্ডগুলি চালনার প্রয়োজন:

  1. git fetch origin master

    আউটপুট: From https://github.com/username/repo-name * branch master -> FETCH_HEAD

  2. git merge origin master

    আউটপুট: Merge made by the 'recursive' strategy. repo-name/ReadMe.md | 1 - 1 file changed, 1 deletion(-)

  3. git push

    আউটপুট: Enumerating objects: 8, done. Counting objects: 100% (8/8), done. Delta compression using up to 8 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 1.00 KiB | 1.00 MiB/s, done. Total 6 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 1 local object. To https://github.com/user_name/repo-name.git 0852d5vf..70v56d9 master -> master

তোমাকে অনেক ধন্যবাদ

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