বিবাদগুলির সাথে গিট মার্জ কীভাবে পূর্বাবস্থাপন করবেন


785

আমি শাখা আছি mybranch1mybranch2থেকে কাঁটাচামচ করা হয় mybranch1এবং পরিবর্তনগুলি তৈরি করা হয়েছিল mybranch2

তারপরে, চালু করার সময় mybranch1, আমি git merge --no-commit mybranch2 এটি করেছি এটি মার্জ করার সময় সংঘাত ছিল shows

এখন আমি সবকিছু ( mergeকমান্ড) বাতিল করতে চাই যাতে mybranch1এটি আগের মতো ফিরে আসে। আমি কীভাবে এই বিষয়ে যেতে পারি তা আমার কোনও ধারণা নেই।


উত্তর:


1355

সর্বশেষ গিট:

git merge --abort

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

সংস্করণ 1.7.4 এর আগে:

git reset --merge

এটি পুরানো বাক্য গঠন তবে উপরের মত একই কাজ করে।

সংস্করণ 1.6.2 এর আগে:

git reset --hard

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


1
গিটের পুরানো সংস্করণগুলির জন্য এটি ব্যবহারের উপায়
আনশুল

7
কখনও কখনও আপনার git reset --mergeএমনকি আরও সাম্প্রতিক সংস্করণগুলিতে ব্যবহার করা প্রয়োজন । আমার git merge --abortত্রুটি হয়েছে (কোনও পরিবর্তন হয়নি) যেখানে git reset --mergeগিট ২.২.১ এ সাফল্য পেয়েছে (এবং সঠিক জিনিসটি করে)।
থিওডোর মুরডক

আমি আমার স্ট্যাশ পপিং থেকে স্বয়ংক্রিয় দ্বন্দ্ব যখন আমার git merge --abortঅনুসরণ করা git reset --mergeআবশ্যক।
শেফ ফেরাউন

1
সাধারণত git merge --abortআমার জন্য কাজ করে, তবে আমি নিজেকে এমন পরিস্থিতিতে পেয়েছি যেখানে আমি একটি বিচ্ছিন্ন হেড অবস্থায় পরীক্ষা করে দেখি এবং আমার একটি ফাইলের "উভয় সংশোধিত" অবস্থা ছিল। আমি সমস্ত কিছু ফেলে দিতে এবং আবার একটি শাখায় ফিরে যেতে চেয়েছিলাম git reset --hard, git merge --abortআমাকে বলেছিল যে গর্ভপাতের কোনও মার্জ নেই, (MERGE_HEAD নিখোঁজ)।
ইয়ানো

কখনও কখনও git merge --abortআপনাকে আপনার পূর্ববর্তী অবস্থা ফিরিয়ে আনতে সক্ষম হয় না এবং সেই ক্ষেত্রে "পুরানো বাক্য গঠন" git reset --hardকৌশলটি করে।
কেভিন স্টুয়ার্ট

130

প্রকৃতপক্ষে, এটি লক্ষ্য git merge --abortকরার মতো git reset --mergeযে MERGE_HEADএটি উপস্থিত রয়েছে কেবলমাত্র তার সমতুল্য । এটি মার্জ কমান্ডের জন্য গিট সহায়তাতে পড়তে পারেন।

git merge --abort # is equivalent to git reset --merge when MERGE_HEAD is present.

ব্যর্থ মার্জ হওয়ার পরে, যখন সেখানে নেই MERGE_HEAD, ব্যর্থ মার্জটি পূর্বাবস্থায় ফেলা যায় git reset --mergeতবে প্রয়োজনীয়ভাবে তা করা যায় না git merge --abort, তাই তারা একই জিনিসটির জন্য কেবল পুরানো এবং নতুন বাক্য গঠন নয়

ব্যক্তিগতভাবে আমি git reset --mergeদৈনন্দিন কাজে আরও অনেক দরকারী বলে মনে করি ।


2
ধন্যবাদ, এই তথ্যটি খুব সহায়ক ছিল। আমার একটি সংযুক্তি ছিল যা git stash applyএকটি ভুল শাখায় শুরু হয়েছিল , এবং কৌতুক করার সময় git merge --abortকিছুই (না MERGE_HEAD) করল না git reset --merge
জিওমাস্টার

4
আমি প্রায় 10 জন লোককে git merge --abortনতুন কমান্ডের কথা git reset --mergeবলেছি এবং আমি @ জিওমাস্টার হিসাবে একই ইস্যুতে দৌড়েছি এটি অত্যন্ত সহায়ক ধন্যবাদ!
টম


5

কমান্ডের মাধ্যমে প্রথমে একত্রীকরণ পূর্বাবস্থায় ফিরিয়ে আনতে দুটি জিনিস আপনি করতে পারেন

git merge --abort

অথবা

আপনি আদেশ দ্বারা সাময়িকভাবে আপনার পূর্বের প্রতিশ্রুতিবদ্ধ স্থিতিতে যেতে পারেন

git checkout 0d1d7fc32 

0

Sourcetree

যদি আপনি নিজের মার্জটি প্রতিশ্রুতিবদ্ধ না হন তবে কেবলমাত্র অন্য একটি শাখায় ডাবল ক্লিক করুন (= চেকআউট) এবং যখন সোর্সট্রি আপনাকে সমস্ত পরিবর্তন বাতিল করার বিষয়ে জিজ্ঞাসা করবেন তখন সম্মত হন

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