গিট রিবেস-এ সম্পর্কযুক্ত ইতিহাসকে একীভূত করতে অস্বীকার করছে


2139

git rebase origin/developmentনিম্নলিখিত ত্রুটি বার্তার সময় গিট থেকে দেখানো হয়েছে:

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

আমার গিট সংস্করণটি 2.9.0। এটি আগের সংস্করণে সূক্ষ্ম কাজ করত।

কীভাবে আমি এই রিবেসটিকে নতুন রিলিজের সাথে প্রবর্তন করা বাধ্যতামূলক পতাকা দিয়ে সম্পর্কহীন ইতিহাসের অনুমতি দিয়ে চলতে পারি?


12
@ শিষ্য সর্বসম্মত সম্মানের সাথে সর্বাধিক ভোটিত উত্তর এই প্রশ্নটি প্রত্যক্ষ পদ্ধতিতে সমাধান করে না। প্রশ্নটি git-rebaseপরিস্থিতি জিজ্ঞাসা করে যখন উত্তরটি একটি পতাকা দেয়git-merge
শুভম চৌধুরী চৌধুরী

13
@ আসিফমোহমাদ এটি কোনও গ্রহণযোগ্য উত্তরের জন্য নয়। ভোটের মাধ্যমে ডিফল্ট বাছাই করার কারণে লোকেরা স্বয়ংক্রিয়ভাবে সর্বাধিক ভোটের সাথে উত্তরটি খুঁজে পাবে ।
গ্লোরফাইন্ডেল

2
অন্য কেউও যদি একই ভুল করে থাকে তবে দুর্ঘটনাক্রমে git pull [repo URL]পরিবর্তিতভাবে ব্যবহার করার পরে আমি এই ত্রুটিটি পেয়েছিgit clone [repo URL]
23


35
এখানে একটি জগাখিচুড়ি তৈরি হয়েছে যে শিরোনামটি নির্দিষ্ট করে না যে এটি কোনও পুনর্বাসনের প্রসঙ্গে রয়েছে, তাই আপনার প্রশ্নটি গুগলারের মধ্যে আঁকা যাঁরা বিভিন্ন প্রসঙ্গে এই ত্রুটিটি পেয়েছেন এবং এমন একটি উত্তর উপস্থাপন করছেন যা আসলে না আপনি জিজ্ঞাসা প্রশ্ন প্রয়োগ করুন। এটি এখনই সহজে পরিষ্কার করা যায় না, সুতরাং অন্তর্নিহিত প্রশ্নোত্তর জুটি সাইটে থাকবে এবং গুগল অনুসন্ধান ফলাফলগুলিতে চিরতরে থাকবে। গল্পের নৈতিক প্রশ্নটিই শিরোনামের বিষয়!
মার্ক এ Amery

উত্তর:


2610

ডিফল্ট আচরণটি গিট ২.৯-এর পরে পরিবর্তিত হয়েছে:

"গিট মার্জ" দুটি শাখাকে ডিফল্টরূপে কোন সাধারণ ভিত্তি নেই, যা একটি বিদ্যমান প্রকল্পের একেবারে নতুন ইতিহাস তৈরি করেছিল এবং তারপরে একটি অসম্পর্কিত রক্ষণাবেক্ষণকারী দ্বারা টানা হয়, যা অপ্রয়োজনীয় সমান্তরাল ইতিহাসকে বিদ্যমান প্রকল্পের সাথে একীভূত করার অনুমতি দেয় । কমান্ডটি ডিফল্টরূপে এটিটিকে অনুমতি না দেওয়ার জন্য শিখানো হয়েছে , একটি পালানোর হ্যাচ --allow-unrelated-historiesবিকল্পটি একটি বিরল ইভেন্টে ব্যবহার করা যেতে পারে যা দুটি প্রকল্পের ইতিহাসকে স্বাধীনভাবে তাদের জীবন শুরু করেছিল s

আরও তথ্যের জন্য গিট রিলিজের পরিবর্তন দেখুন ।

আপনি --allow-unrelated-historiesসংহতটি ঘটতে বাধ্য করার জন্য ব্যবহার করতে পারেন ।


18
মার্জ পরিবর্তনটি জানুন তবে এই বিকল্পটি রিবেসের সাথে কাজ করবে না
শুভম চৌধুরী চৌধুরী

3
কোনও বিকল্প আছে যা --allow-unrelated-historiesস্থায়ীভাবে চালু হবে ?
jmarceli

4
@ jmarceli "যেহেতু এই জাতীয়" দুটি প্রকল্প একত্রীকরণ "একটি বিরল ঘটনা, তাই এই জাতীয় সংযোজনকে সর্বদা অনুমতি দেওয়ার জন্য একটি কনফিগারেশন বিকল্প যুক্ত করা হয় না।" তাই না
blue112

2
আমি এইভাবে একটি ভিন্ন রেপুর জন্য একটি শাখা মার্জ করার চেষ্টা করেছি কিন্তু এটি আমার বর্তমান শাখায় একটি নতুন অঙ্গীকার তৈরি করেছে এবং অন্যান্য রেপো থেকে ইতিহাস রাখেনি। তারপরে আমি অন্য রেপো থেকে একটি স্থানীয় শাখা পরীক্ষা করেছিলাম এবং কেবল তখনই এটি মার্জ হয়ে যায় এবং হঠাৎ একটি সাধারণ মার্জ কমিট উপস্থিত হয়। রহস্যময়।
মিগল

13
দুর্দান্ত, git pullপাশাপাশি কাজ করে । এটি ছিল "বিরল ইভেন্ট যা দুটি প্রকল্পের ইতিহাসকে একত্রে মিশিয়ে দেয় যা স্বাধীনভাবে তাদের জীবন শুরু করেছিল"। git --work-tree="." pull --allow-unrelated-histories
পেট্রু জাহারিয়া

1184

আমার ক্ষেত্রে, ত্রুটিটি কেবলমাত্র fatal: refusing to merge unrelated historiesপ্রতিটি চেষ্টাতেই ছিল , বিশেষত গিট সংগ্রহস্থল দূরবর্তীভাবে যুক্ত করার পরে প্রথম টানার অনুরোধ।

ব্যবহার --allow-unrelated-historiesপতাকা এই ভাবে খিঁচ অনুরোধ সঙ্গে কাজ:

git pull origin branchname --allow-unrelated-histories

231
আমি সর্বদা এই ত্রুটিটি দেখতে পাই যদি আমি কোনও README.md সহ একটি নতুন গিথুব সংগ্রহশালা তৈরি করি, তবে প্রথমবারে স্থানীয় সংগ্রহস্থলে টানুন। খুব বিরক্তিকর.
তিয়েন দো

29
নতুন রেপোর জন্য, প্রথম টানে, এটি দিয়ে শুরু করা সাধারণত ভাল git clone
ছাতা

3
@ পারদীপজাইন দয়া করে এই github.com/git/git/blob/master/Docamentation/RelNotes/…
আদি

2
এটি আমাকে কয়েক ঘন্টা ধরে থামিয়ে দিয়েছিল, আমি বুঝতে পারার আগেই যদি এটি ডিফল্ট ফাইলগুলির জন্য ঘটে থাকে তবে এই জাতীয় সংশ্লেষের জন্য একটি সুস্পষ্ট রেজোলিউশন থাকতে হবে - আমি আনন্দিত যে আমিই একা নই যে কমপক্ষে এই সমস্যাটি ঘটেছে!
জিববোজ

3
আমার ক্ষেত্রে এটি ঘটেছিল কারণ আমি গিথুবে লাইসেন্স ফাইল যুক্ত করেছি। উপরে উল্লিখিত কমান্ডটি (এবং নীচে, তারা একই) কাজ করেছে।
uudaddy 16'19


264

আমি প্রথম স্থানীয় সংগ্রহস্থল স্থাপন করার সময় আমি এই ত্রুটিটি পেয়েছি। তারপরে আমি গিটহাবে গিয়ে একটি নতুন সংগ্রহশালা তৈরি করেছি। তখন আমি দৌড়ে গেলাম

git remote add origin <repository url>

আমি যখন চাপ বা টানতে চেষ্টা করলাম তখন fatal: unrelated_historiesপ্রতিবার একই ত্রুটি পেয়েছি ।

এখানে আমি এটি স্থির করেছি:

git pull origin master --allow-unrelated-histories
git merge origin origin/master
... add and commit here...
git push origin master

আমি মনে করি আমরা একই নৌকায় ছিলাম। কিছু যুক্ত করার জন্য: আমার সমস্যাটি হ'ল দূরবর্তী রেপোতে ইতিমধ্যে কিছু ছিল। সুতরাং আমার ফোল্ডারে এটি ফোল্ডারটি মুছে ফেলেছে .git, দৌড়েছে git initএবং একীভূত অংশ ব্যতীত আদিত্যা যা বলেছিল তা করেছিল।
কোডপ্লেব

1
কীভাবে ম্যাকের ইনসার্ট বাটন টিপবেন? আসলে, আমি প্রতিশ্রুতিবদ্ধ বার্তাটি টাইপ করতে হবে এবং কমান্ড লাইন থেকে একীভূত করতে হবে, তবে কমান্ড লাইন থেকে এটি কীভাবে করবেন তা আমি জানি না।
শাজিল আফজাল

এটি কি ভিম খুলবে? যদি এটি হয় তবে এটি কেবল শিফট +:
অদিত্যা ভাট

এমনকি আমি প্রথমে গিটহাব রেপো তৈরি করেছিলাম এবং রেপো যুক্ত করার সেই আদেশগুলি দিয়ে যাচ্ছিলাম।
মিঃ সুর্যয়া ঝা

1
এটি সত্যিই ভাল উত্তর। মুল বক্তব্যটি হ'ল আপনাকে জোর করে টানতে হবে তারপর স্থানীয় এবং দূরবর্তী রেপোগুলিকে একীভূত করতে হবে।
অ্যালানউক্স

151

এর জন্য, কমান্ডটি প্রবেশ করুন:

git pull origin branchname --allow-unrelated-histories

উদাহরণ স্বরূপ,

git pull origin master --allow-unrelated-histories

রেফারেন্স:

গিটহাব সম্পর্কিত নয় ইতিহাস সম্পর্কিত সমস্যা


প্রথমবারের জন্য ধন্যবাদ এটির কাজগুলি আমার জন্য টানুন "গিট টান
উত্সাহের

135
git pull origin <branch> --allow-unrelated-histories

আপনাকে একটি ভিম সম্পাদনা উইন্ডোতে পাঠানো হবে:

  • কমিট ম্যাসেজ sertোকান
  • তারপরে Esc("সন্নিবেশ" মোডে প্রস্থান করতে) টিপুন , তারপরে :(কোলন), তারপরে x(ছোট "এক্স") এবং অবশেষে Enterভিমের বাইরে যাওয়ার জন্য চাপুন
  • git push --set-upstream origin <branch>

5
Ctrl + X আপনাকে ভিম থেকে বের করবে না
রুবেন

তবে :x<Enter>হবে
webKnjaZ


47

চেষ্টা git pull --rebase development


এটি আমার সমস্যার সমাধান করেছে। সমস্যাটি এখানে কীভাবে শুরু হয়েছিল
হারলান নেলসন

1
এটি সম্ভবত হওয়া উচিত:git pull --rebase=preserve --allow-unrelated-histories development
রিকার্ডো মুরি

3
@ রিকার্ডোমুরি এই মাত্র চেষ্টা করার পরে আমি আর এটি করব না। আমার নতুন রেপোতে এতে কিছু নমুনা সূচনা ফাইল ছিল এবং আমার স্থানীয় রেপো কয়েক মাসের কমিট করে। এটি চালানো ( newOrigin branchপরিবর্তে development) আমার স্থানীয় শাখার শীর্ষে প্রাথমিক প্রতিশ্রুতি যুক্ত করেছে, কার্যকরভাবে এটি থেকে প্রায় সমস্ত কিছুই সরিয়ে ফেলে। আমি চেয়েছিলাম নতুন রিমোট থেকে প্রাথমিক প্রতিশ্রুতিটি নীচে থাকুক।
redOctober13

41

অ্যান্ড্রয়েড স্টুডিও এবং ইন্টেলিজিজের জন্য:

প্রথমত, কমিট সবকিছু এবং কোনো দ্বন্দ্ব সমাধান।

তারপরে IDE এর নীচে থেকে টার্মিনালটি খুলুন এবং প্রবেশ করুন:

git pull origin master --allow-unrelated-histories

এখন আপনি ধাক্কা দিতে পারেন।


38

এই সতর্কতার সাথে রিমোট রিপোজিটরিটি সম্ভাব্যভাবে পর্যালোচনা করা হবে

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

git push origin master --force

1
কিন্তু স্থানীয় এবং দূরবর্তী ফাইলগুলির সাথে আসলে কী ঘটে?
প্রথমেশ মোরে

আমি জানি এবং অভিজ্ঞ হিসাবে, স্থানীয় ফাইল অক্ষত। আপনি একটি নির্দিষ্ট ফোল্ডারে যে রিমোট ফাইলগুলি যুক্ত করতে চান তা যুক্ত হয়ে যায়।
অনিকেত পাতিল


এই কমান্ডটি মাস্টার ব্রাঞ্চে সমস্ত ফাইলকে ওভাররাইড করে এমন একটি দাবি অস্বীকার করুন । আমার জন্য ভাল কাজ করেছে। ধন্যবাদ।
ফ্ল্যাভিও

1
এটি কাজ করে তবে বরং কঠোর, - নিবন্ধ-অরেলাদ-ইতিহাস আরও সুনির্দিষ্ট এবং উপযুক্ত
বিডুলাক

32

যেহেতু অন্যান্য সমস্ত উত্তর প্রকৃতপক্ষে প্রশ্নের উত্তর দিচ্ছে না, তাই এখানে সম্পর্কিত একটি প্রশ্নের উত্তর দ্বারা অনুপ্রাণিত একটি সমাধান এখানে দেওয়া হয়েছে ।

সুতরাং আপনি আপনার ত্রুটিটি পেয়েছেন git rebase:

$ git rebase origin/development
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

এই ত্রুটিটি রিবেসটি আসলে বাতিল করে না, তবে আপনি এখন এর মাঝে রয়েছেন:

$ git status
interactive rebase in progress; onto 4321beefdead
Last command done (1 command done):
   pick 1234deadbeef1234deadbeef test merge commit

সুতরাং আপনি এখন হাত দিয়ে মার্জ করতে পারেন। মূল মার্জ কমিটের পিতামাতার প্রতিশ্রুতিগুলি সন্ধান করুন:

$ git log -1 1234deadbeef1234deadbeef
commit 1234deadbeef1234deadbeef
Merge: 111111111 222222222
Author: Hans Dampf
Date:   Wed Jun 6 18:04:35 2018 +0200

    test merge commit

দুটি একত্রীকরণ পিতামাতার মধ্যে কোনটি বর্তমান কারও মধ্যে একীভূত হয়েছিল (সম্ভবত দ্বিতীয়টি, এর সাথে যাচাই করুন git log 222222222) এবং তারপরে মূল মার্জ কমিটের প্রতিশ্রুতি বার্তাটি অনুলিপি করে হাতে মার্জ করুন:

$ git merge --allow-unrelated 222222222 --no-commit
Automatic merge went well; stopped before committing as requested
$ git commit -C 1234deadbeef1234deadbeef
[detached HEAD 909af09ec] test merge commit
 Date: Wed Jun 6 18:04:35 2018 +0200
$ git rebase --continue
Successfully rebased and updated refs/heads/test-branch.

28

আমারও একই সমস্যা ছিল। সমস্যাটি হ'ল রিমোটের প্রতিরোধকারী কিছু ছিল।

আমি প্রথমে একটি স্থানীয় সংগ্রহশালা তৈরি করেছি। আমি আমার স্থানীয় এবং প্রতিশ্রুতিবদ্ধ একটি LICENSEএবং README.mdফাইল যোগ ।

তারপরে আমি একটি রিমোট রিপোজিটরি চাইছিলাম তাই আমি গিটহাবে একটি তৈরি করেছি। এখানে আমি "একটি README দিয়ে এই সংগ্রহস্থলটি আরম্ভ করুন" চেক করার ভুল করেছি , যা দূরবর্তী অঞ্চলেও README.md তৈরি করেছে।

তাই এখন যখন আমি দৌড়েছি

git push --set-upstream origin master

আমি পেয়েছি:

error: failed to push some refs to 'https://github.com/lokeshub/myTODs.git'
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.

এখন এই কাটিয়ে উঠতে আমি করেছি

git pull origin master

যার ফলে নীচের ত্রুটি হয়েছে:

From https://github.com/lokeshub/myTODs
branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories**

আমি চেষ্টা করেছিলাম:

git pull origin master --allow-unrelated-histories

ফলাফল:

From https://github.com/lokeshub/myTODs
 * branch            master     -> FETCH_HEAD
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed;
fix conflicts and then commit the result.

সমাধান:

আমি রিমোট রিপোজিটরিটি সরিয়ে একটি নতুন তৈরি করেছি (আমি মনে করি কেবল ফাইল অপসারণ READMEকাজ করতে পারে) এবং তার পরে নীচে কাজ করেছে:

git remote rm origin
git remote add origin https://github.com/lokeshub/myTODOs.git
git push --set-upstream origin master

25
একটি নতুন সংগ্রহশালা তৈরি করা কোনও সমাধান নয়
জ্যাচ


git push --force ... এই বিশেষ ক্ষেত্রে প্রথম পদক্ষেপের সঠিক সমাধান হতে পারে
কনস্টান্টিন পেলেপেলিন

2
এটি কোনও সমাধান নয়। আপনি যদি শিক্ষানবিশ হন, তবে আপনি এটি করতে পারেন তবে আপনি যদি কিছু বাস্তব প্রকল্প নিয়ে কাজ করছেন তবে আপনার সঠিক উপায়টি মোকাবেলা করা উচিত।
প্রথমেশ মোড়

27

এটি সাধারণত ঘটে যখন আপনি প্রথমবারের দূরবর্তী সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ। যেহেতু ত্রুটি পরিষ্কারভাবে "সম্পর্কিত সম্পর্কহীন ইতিহাসগুলিকে একীভূত করতে অস্বীকার করে" বলেছে, আমাদের - নিবন্ধ-সম্পর্কিত-ইতিহাস সম্পর্কিত পতাকা ব্যবহার করা দরকার।

git pull origin master  --allow-unrelated-histories

এখন কিছু সংঘাত হবে যা আমাদের ম্যানুয়ালি সমাধান করতে হবে। এর পরে কেবল কোডটি কমিট করুন এবং এটি টিপুন।


প্রশ্নে উল্লিখিত হিসাবে, আমি গিট-রিবেস করার চেষ্টা করছি এবং গিট-টান নয়, গিট-রিবেসে --allow-unrelated-historiesপতাকা নেই।
শুভম চৌধুরী চৌধুরী

23

যখন এটি ঘটতে পারে তখন দুটি সম্ভাবনা -

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

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

সমাধান

গিট পুলের উত্স মাস্টার - নিবন্ধ-সম্পর্কহীন-ইতিহাস

রেফ - https://www.educative.io/edpresso/the-fatal-refusing-to- विसর- unrelated-histories-git- error


12

আমি এটির সাথেও লড়াই করেছি, তবে আমি একটি কাজের সন্ধান করতে সক্ষম হয়েছি।

আপনি উপরের ত্রুটিটি চালানোর সময়, কেবল একীভূত প্রতিশ্রুতি চেরি-বাছাই করুন এবং তারপরে রিবেসটি চালিয়ে যান:

git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue

3
প্লেন ইংলিশে দয়া করে?
এজেন্ট জেব্রা

@ অ্যাজেন্টজেব্রা জটিল বিমানের যে কোনও ডিস্কের জন্য অবিচ্ছিন্ন বন্ধ পথ অবিচ্ছেদ্য 0
অ্যাডডেম

12

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

git pull origin branchname --allow-unrelated-histories

** শাখার নামটি আমার ক্ষেত্রে মাস্টার।

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

কোন্দল মিটে গেলে একীভূত হয়ে যায়!

এখন আপনি নিরাপদে ধাক্কা দিতে পারেন।


আমি Resolve Conflictএএস- এ বোতামটি অনুসন্ধান করছি । কখনও কখনও ডান-নীচের পপআপ / ব্যালন অদৃশ্য হয়ে যায় এবং আমি কিছুই করতে অক্ষম। ধন্যবাদ @oiyio
মোচাদ্দি


6

একটি করার সময় git pull, আমি এই বার্তাটি fatal: refusing to merge unrelated histories একটি রেপো মডিউলের জন্য পেয়েছি যেখানে আমি স্থানীয় কপিটি কিছু সময়ের জন্য আপডেট করি নি।

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

git reset --hard origin/master

এটি আমার ক্ষেত্রে এটি স্থির করেছে।


12
সতর্কতা: এটি আমার সমস্ত ফাইল মুছে ফেলে। আপনি কী করছেন তা যদি না জানেন তবে সাবধান!
সালভি পাসকুয়াল

2
এটি সমস্ত মুলতুবি পরিবর্তন মুছে ফেলবে!
অরেস্টিস পি।

1

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

সুতরাং, আমার স্বাভাবিক পুনর্বাসনের ওয়ার্কফ্লোটি নিম্নলিখিতগুলির মতো দেখায় (তবে দয়া করে মনে রাখবেন যে শাখাগুলিতে আপনার রিবেস ব্যবহার করা উচিত নয়, যা আপনি একমাত্র কমিটি নন such এই জাতীয় শাখাগুলির জন্য কেবল প্রযোজ্য হলে সংশ্লেষ এবং বিরোধগুলি সমাধান করুন):

  1. আপনার পরিষ্কার পরিচ্ছন্ন গাছ রয়েছে তা নিশ্চিত করুন (কোনও পরিবর্তন নেই)
  2. আপনি যে শাখায় পুনঃব্যবস্থা করতে চান তাতে চেকআউট করুন (উদাহরণস্বরূপ, এটি বলে নেওয়া যাক master; এক-লাইন কমান্ড হিসাবে):git checkout master && git pull origin master && git checkout development
  3. আসল রিবেসটি করুন: git rebase master
  4. যদি এটি হয়ে যায় এবং সবকিছু প্রত্যাশা অনুযায়ী কাজ করে তবে এটিকে আপনার রিমোটে চাপ দিন। এটি করার জন্য, আপনাকে এটিকে জোর করতে হবে, কারণ রিমোট হোস্টের ইতিমধ্যে অন্য ক্রমে ইতিহাস রয়েছে, রিমোটটি কোনও চাপ দেওয়ার মতো উত্তর দেবে না। সুতরাং, আমাদের বলতে হবে "ইতিহাসের আমার স্থানীয় সংস্করণটি সঠিক, ইতিহাসের স্থানীয় সংস্করণ ব্যবহার করে remote দূরবর্তী শাখার সমস্ত কিছুই" ওভাররাইট করে:git push -f origin development

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

আমরা বৈশিষ্ট্য শাখা কৌশল ব্যবহার। এর মধ্যে, আমি অন্যান্য বিকাশকারীদের কাছ থেকে "আপডেটগুলি" পেতে মাস্টার শাখায় এর মধ্যে ঘটে যাওয়ার জন্য সাধারণত রিবেস ব্যবহার করি। এটি করার ফলে এটি কমিটগুলির আকার হ্রাস করে যা একটি অনুরোধে দৃশ্যমান। অতএব, কোড পর্যালোচনাকারীর পক্ষে এই বৈশিষ্ট্য শাখায় আমার পরিবর্তনগুলি দেখার পক্ষে এটি সহজ করে তোলে।


এই ক্ষেত্রে, আমি আসলে রিবেসটি চালিয়ে যেতে চেয়েছিলাম এবং উত্তরটি এর সমাধান করে না। আমি রিবাইসের ঝুঁকিগুলি জানি এবং কখন আমার গিট-রিবেস ব্যবহার করা উচিত নয়। এটি গিট ওয়ার্কফ্লো সম্পর্কিত একটি সাধারণ (মতামতযুক্ত) নির্দেশিকা এবং সরাসরি প্রশ্নের উত্তর দেয় না। বছরের পর বছর ধরে রিবেস ব্যবহার করার ক্ষেত্রে, এই বিশেষ ত্রুটিটি গিটারের v2.9.0 এ যুক্ত করা হয়েছিল এবং এই রিলিজের আগে প্রবাহটি সূক্ষ্মভাবে কাজ করতে ব্যবহৃত হত। তুমি এখানে কি এই উত্তরটি পোস্ট করেছি ইতিমধ্যে মতো পুরোনো প্রশ্ন উত্তর stackoverflow.com/a/11566503/2670370 এবং git-scm.com/book/en/v2/Git-Branching-Rebasing
Shubham চৌধুরীর

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