একটি গিট মার্জ পূর্বাবস্থায়িত করুন যা এখনও ধাক্কা দেওয়া হয়নি


3937

আমার মাস্টার ব্রাঞ্চের মধ্যে, আমি git merge some-other-branchস্থানীয়ভাবে করেছি, তবে কখনও পরিবর্তনগুলি উত্সের মাস্টারে ঠেকিয়েছি না। আমার একত্রীকরণের অর্থ ছিল না, তাই আমি এটিকে পূর্বাবস্থায় ফেরাতে চাই। git statusআমার একীভূত হওয়ার পরে যখন আমি এই বার্তাটি পেয়ে যাচ্ছিলাম:

# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.

আমি যে কয়েকটি নির্দেশ পেয়েছি তার উপর ভিত্তি করে আমি দৌড়ানোর চেষ্টা করেছি

git revert HEAD -m 1

তবে এখন আমি এই বার্তাটি পেয়ে যাচ্ছি git status:

# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.

আমি চাই না যে আমার শাখাটি কোনও সংখ্যক কমিটের দ্বারা এগিয়ে থাকবে। আমি কীভাবে ফিরে যেতে পারি?


3
আপনার যদি ইতিহাস সংরক্ষণের দরকার হয়, অন্য কথায় এটির পরিবর্তন আছে যে কেউ কখনও আপনার কাছ থেকে এনেছে বা আপনি এটিকে কোথাও ঠেলে দিয়েছেন ইউরি উশাকভের উত্তরটি নীচে নীচে ব্যবহার করুন!
সেদ্রিক

6
দয়া করে বর্তমান বিজয়ী উত্তরটি নির্বাচন করুন, এটি অনিরাপদ (যতগুলি দেখানো হয়েছে) তবুও ভোট সংগ্রহ করছে। আমার কাছে "এমবিও" -র দেখতে সেরা দেখাচ্ছে, যদিও এর চেয়ে কম পয়েন্ট রয়েছে।
ইনজার



3
এটি সরাসরি
গিথুব

উত্তর:


4450

সঙ্গে git reflogচেক যা কমিট এক পূর্বে একত্রীকরণ আছে ( git reflogচেয়ে ভাল বিকল্প হতে হবে git log)। তারপরে আপনি এটি ব্যবহার করে এটি পুনরায় সেট করতে পারেন:

git reset --hard commit_sha

আরও একটি উপায় আছে:

git reset --hard HEAD~1

এটি আপনাকে 1 টি প্রতিশ্রুতি ফিরে পাবে।

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


যেমন @ ওয়েলমন্ট নীচে তার উত্তরে প্রস্তাবিত হয়েছে, সরাসরি এই ক্ষেত্রে ব্যবহার করে:

git reset --hard ORIG_HEAD

এটির ফলে আপনার পরিবর্তনগুলি সংরক্ষণ করা উচিত better ORIG_HEADমার্জ হওয়ার আগে সরাসরি কোন প্রতিশ্রুতিতে নির্দেশ করবে, সুতরাং আপনাকে নিজে এটি অনুসন্ধান করতে হবে না।


আরও একটি টিপ হ'ল --mergeপরিবর্তে সুইচটি ব্যবহার করা --hardকারণ এটি অকারণে ফাইলগুলি রিসেট করে না:

git reset --merge ORIG_HEAD

--একত্রিত করা

সূচকটি পুনরায় সেট করে এবং কার্যনির্বাহী গাছের ফাইলগুলি <কমিট> এবং হেডের মধ্যে পৃথক করে আপডেট করে তবে সূচক এবং কার্যনির্বাহী গাছের মধ্যে পৃথক করে রাখে (যার মধ্যে এমন পরিবর্তন রয়েছে যা যোগ করা হয়নি)।


129
আমি মনে করি না এটি (সর্বদা?) কাজ করবে - "এক পূর্বে একীকরণ" হ'ল সাম্প্রতিক প্রতিশ্রুতি যা অন্য শাখা থেকে সংযুক্ত করা হয়েছিল - এটি বর্তমান শাখায় সবচেয়ে সাম্প্রতিক প্রতিশ্রুতি হবে না । রাইট? (এটি সম্ভবত git logডিফল্টরূপে কী দেখানোর জন্য চয়ন করা যায় তার ফলাফল হতে পারেgit loggit reflog
জন বাচির

6
আমি মনে করি এটি স্কোয়াশ মার্জ করে কিনা তা নির্ভর করে।
মার্সিন গিল

29
@ জনবাচির ঠিক আছে ইন git logআউটপুট, দুই পিতা বা মাতা করে তাকান করতে চান। একটি হ'ল আপনার শাখায় সর্বশেষ প্রতিশ্রুতি, আপনার শাখায় সংযুক্ত হওয়া সর্বশেষ প্রতিশ্রুতি। আপনি git reset --hardযে শাখায় সংযুক্ত হয়ে গেছেন তা আপনি পিতামাতার প্রতিশ্রুতিবদ্ধ হতে চান ।
জাস্টিন 20

7
@ জোহানবাচির: যতক্ষণ না "সংযুক্তি" সত্যিই দ্রুত অগ্রসর হয় না, ততক্ষণে এটি নতুন প্রতিশ্রুতিতে আসে যা লগের শীর্ষে থাকে এবং এই প্রতিশ্রুতিটির দু'জন পিতা বা মাতা থাকে (আপনি যদি অক্টোপাস করেন তবে 2 জনের বেশি একত্রিত করা). আপনি যদি এই একত্রীকরণের প্রতিশ্রুতিটি সরিয়ে থাকেন, তবে মার্জ থেকে আসা সমস্ত পুরানো কমিটগুলিও অদৃশ্য হয়ে যাবে। সুরক্ষিত থাকতে, যদিও, রিসেট গিট পরে আপনাকে জানায় যে নতুন মাথাটি কোথায়: "হেড এখন 88a04de <কমিট বার্তা>" এ রয়েছে। আমি যেখানে থাকব আশা করি সেখানেই শেষ হয়ে গেলাম তা নিশ্চিত করতে আমি সর্বদা এটি দেখি। আমার প্রকল্প জিনিসগুলি স্মরণীয় রাখার জন্য একটি স্ট্যান্ডার্ড শাখা নামকরণ প্রকল্প ব্যবহার করে।
মার্ক ই। হাজেস

44
আমি যেটি দরকারী মনে করেছি তা হ'ল "গিট রিফ্লগ" এবং সর্বশেষ প্রতিশ্রুতিটি সন্ধান করা যা আমি মাস্টার করেছিলাম। তারপরেgit reset --hard <commit_sha>
ম্যাক্স উইলিয়ামস

1453

ধরে নেওয়া আপনার স্থানীয় মাস্টার উত্স / মাস্টারের চেয়ে আগে নয়, আপনার করা উচিত

git reset --hard origin/master

তারপরে আপনার স্থানীয় masterশাখার মতো দেখতে হবে origin/master


71
@ কার্টার এটি আসলে সেরা উত্তর নয়। কিছু কমিট দ্বারা মার্জ হওয়ার ঠিক আগে স্থানীয় / মাস্টার আপনার স্থানীয় মাস্টারের চেয়ে এগিয়ে থাকতে পারে, সেক্ষেত্রে এটি পছন্দসই ফলাফল নাও দিতে পারে
ধ্রুব সাগর

15
@ ধ্রুভা-সাগর হ্যাঁ, তবে যতক্ষণ না গিট আপনাকে পিছনে বলে এবং আপনি আনেন না, আপনার ভাল হওয়া উচিত।
কেলভিন

3
ধন্যবাদ! এটি সঠিক যদি (এবং কেবলমাত্র) আপনার কাছে দূরবর্তী সংগ্রহস্থল থাকে।
tomc

2
না এটি এই প্রশ্নের উপযুক্ত নয়, "অনুমান" ধারাটি দেখুন cla এমবিওর জবাব আসলে এই কেসটি জুড়ে থাকে এবং যেখানে মার্জ একমাত্র স্থানীয় প্রতিশ্রুতি নয়।
ইনজার ইন

2
আবারও, সম্ভবত এই সতর্কতার জবাবটি নিজেই চলে যাওয়া উচিত: সর্বদা গিট ইতিহাসের পুনর্লিখন এড়ানো
ক্রেগক্স

1174

দেখুন গীত বইয়ে Chapter 4 এবং লিনাস টোরভাল্ডস দ্বারা আসল পোস্ট

ইতিমধ্যে ধাক্কা দেওয়া একটি মার্জ পূর্বাবস্থায়িত করতে :

git revert -m 1 commit_hash

লিনাস যেমন বলেছিলেন, আপনি আবার শাখাটি প্রতিশ্রুতিবদ্ধ থাকলে পুনঃস্থাপনের বিষয়টি নিশ্চিত করুন।


10
@ পারফেকশনিস্ট সম্মত হয়েছেন: দয়া করে চান যে এই উত্তরটি অন্য প্রশ্নের উত্তর স্থানান্তর করার একটি উপায় ছিল
মিকর্মক্নিল

প্রত্যাবর্তন সম্পর্কে আরও তথ্যের জন্য: লিঙ্ক
Assaqqaf

1
এই রিভার্টটি কাজ করেছে বলে আত্মবিশ্বাসী হওয়ার জন্য, আপনি গিট ডিফ হ্যাশ 1 হ্যাশ 2 করতে পারবেন যেখানে হ্যাশ 1 প্রতিশ্রুতিবদ্ধ প্রত্যাবর্তন, এবং হ্যাশ 2 হল সেই পুরানো প্রতিশ্রুতি যার দিকে আপনি ফিরে যাওয়ার চেষ্টা করেছিলেন were কোনও আউটপুট == সাফল্য নেই! সর্বাধিক সাম্প্রতিক সংযোজন ফিরিয়ে এবং পিছনের দিকে কাজ করে আমি একাধিক বার এটি করে একাধিক প্রতিশ্রুতি ফিরিয়ে আনতে সক্ষম হয়েছি। গিট ডিফ আমাকে দেখিয়েছিল যে আমি যে রাজ্যে চাইছিলাম সেখানেই শেষ হয়েছি।
রবার্ট সিন্টন

6
লক্ষ্য করুন যে এটি আসলে মূল পোস্টারের প্রশ্নের সমাধান করে নাইতিমধ্যে ব্যবহৃত মূল পোস্টার git revert -m 1 <commit>। সমস্যাটি হ'ল এটি করা দুর্ঘটনাক্রমে সংযুক্তিটি মুছে ফেলবে না যা তিনি করেছিলেন (এবং এখনও ধাক্কা দেয়নি)। হার্ড পোস্টের সাথে জড়িত অন্য উত্তরগুলি মূল পোস্টারের সমস্যার জন্য আরও ভাল।

এটি সরাসরি
গিথুব

986

আশ্চর্যজনক যে সহজ কমান্ডটি অনুপস্থিত ছিল। বেশিরভাগ উত্তরগুলি কাজ করে, তবে আপনি যে মার্জটি করেছিলেন তা পূর্বাবস্থায় ফেরাতে এটি সহজ এবং নিরাপদ উপায় :

git reset --merge ORIG_HEAD

রেফ সংশ্লেষের ORIG_HEADআগে থেকেই মূল প্রতিশ্রুতিতে নির্দেশ করবে।

( --mergeমার্জটির সাথে বিকল্পটির কোনও git reset --hard ORIG_HEADযোগসূত্র নেই just এটি ঠিক এর মতো তবে নিরাপদ যেহেতু এটি অনির্দিষ্ট পরিবর্তনগুলিকে স্পর্শ করে না))


17
আপনি যদি থেকে আপনার কার্যক্ষেত্র গাছটি নির্বিঘ্ন করেন তবে git reset --merge ORIG_HEADসেই পরিবর্তনগুলি সংরক্ষণ করে।
11:59

1
এটিই একমাত্র সঠিক উত্তর (আমি বলছি না এটি সেরা উত্তর - পার্থক্যটি নোট করুন)। ধরা যাক, মাস্টার হিসাবে, আমি টি 1, টি 3 এবং টি 5 এ 3 টি কমিট করেছি। ধরা যাক, শাখা 1 এ, আমি টি 2, টি 4 এবং টি 6 এ তিনটি মন্তব্য করেছি (ধরে নিন টি 1, টি 2, টি 3, টি 4, টি 5 এবং টি 6 কালানুক্রমিক ক্রমে রয়েছে)। অনুরূপ যে কোনও কমান্ড git reset --hard HEAD~5কেবলমাত্র হেডকে পুনরায় সেট করবে (মাস্টার এবং শাখা 1 উভয়ই কমিট সরিয়ে ফেলতে পারে)। শুধুমাত্র --mergeঅপশনটি অপসারণ করে merge
মনু মঞ্জুনাথ

@ মনু --mergeবিকল্পটি আসলে মার্জটি সরিয়ে দেয় না, আপনি এটি ব্যবহার করতে পারেন --hardএটিও ভাল কাজ করবে। এটি ORIG_HEAD রেফারেন্সটি এখানেই ক্লু, আপনি যেখানে দাঁড়িয়ে আছেন সেখানে মার্জ করার আগে এটি সেট করা আছে। :)
ওদিনহো - ভেলমন্ট

আপনি কী বোঝাতে চেয়েছেন তা বোঝানোর জন্য @ "আপনি যদি নিজের কাজের গাছটি তখন থেকেই নির্বিঘ্ন করেন তবে গিট রিসেট - নিমজ্জন করুন ORIG_HEAD এই পরিবর্তনগুলি সংরক্ষণ করে।" আপনার অর্থ কি মার্জ হওয়ার পরে ফাইলগুলি পরিবর্তন করা হয়েছিল? যাইহোক আমি সংশ্লেষটি করেছি এবং তারপরে কিছু বিবাদ সমাধানের চেষ্টা করেছি। তবে আমি মার্জটি পুনরায় সেট করতে চেয়েছিলাম এবং এই উত্তরের নির্দেশ অনুসারে করেছি। সবকিছু ঠিকঠাক ছিল এবং এটি মার্জ হওয়ার পরে আমার পরিবর্তনগুলি সংরক্ষণ করে নি। আমার স্থানীয় রেপো আমি মার্জ করার আগে ঠিক একই অবস্থানে is
সামিতা চথুরঙ্গ

git reset --hard ORIG_HEADকমান্ড আমার জন্য পুরোপুরি কাজ - এটা সত্য যে আমি সংগ্রহস্থলের অন্য কোন পরিবর্তন পরে স্থানীয় করেননি সহযোগিতা করা হয়ে থাকতে পারে git mergeআমি পূর্বাবস্থা করার চেষ্টা ছিল। কমান্ডটি সহজেই একত্রীকরণের আগে এটি কেমন ছিল তা পুনরায় সংগ্রহস্থলের অবস্থা পুনরায় সেট করে। দুর্দান্ত টিপ জন্য ধন্যবাদ!
নীলবাইনারি

391

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

git merge --abort

থেকে man git merge:

[এটি] শুধুমাত্র মার্জ হওয়ার পরে চালানো যেতে পারে সংঘাতের ফলে। git merge --abortমার্জ প্রক্রিয়া বাতিল এবং প্রাক - মার্জ রাষ্ট্র পুনর্গঠন করার চেষ্টা করবে।


8
তাঁর একীভূত প্রতিশ্রুতিবদ্ধ কিন্তু ধাক্কা দেওয়া হয়নি (শিরোনাম দেখুন), তিনি ইতিমধ্যে একীভূত হয়ে গেছেন, আপনার কমান্ড কেবল তখনই কাজ করবে যখন সে এখনও
একীকরণের

135

আপনার পূর্ববর্তী প্রতিশ্রুতিতে পুনরায় সেট করা উচিত। এই কাজ করা উচিত:

git reset --hard HEAD^

বা এমনকি HEAD^^যে প্রত্যাবর্তন প্রতিশ্রুতি ফিরে। আপনি কত পদক্ষেপ নিতে হবে তা নিশ্চিত না হলে আপনি সর্বদা একটি সম্পূর্ণ এসএইএ রেফারেন্স দিতে পারেন।

যদি আপনার সমস্যা হয় এবং আপনার মাস্টার শাখায় কোনও স্থানীয় পরিবর্তন না হয় তবে আপনি এতে পুনরায় সেট করতে পারেন origin/master


5
সেরা উত্তর আইএমএইচও, ওপির নিজস্ব একটি অন্তর্ভুক্ত করেছে (প্রত্যাবর্তনের জন্য কেবল 1 টি পদক্ষেপ ধরেছিল যা Q এ ক্ষেত্রে মনে হয়েছে) পাশাপাশি র্যান্ডমগুই 3 এর শর্টকাট একটি (যা যখন "আপনার মাস্টার শাখায় কোনও স্থানীয় পরিবর্তন হয়নি ")
ইনার্জার

4
আপনি মন্তব্যকারী, @ ইঙ্গার এবং @ কনস্টান্টিন, কেন? আমার উত্তর তৈরি হওয়ার পরে আপনি এখানে এসেছিলেন এবং এটি আরও সঠিক। কেবলমাত্র এক ধাপ উপরে যাওয়ার পক্ষে প্রায়শই ভুল হয় এবং আপনাকে আসলে কতটা যেতে হবে তা আপনাকে গণনা করতে হবে। গিট ইতিমধ্যে ORIG_HEADআপনার জন্য সেট করে , কেন এটি ব্যবহার করবেন না?
ওডিনহো - ভেলমন্ট

এটি স্থানীয় পরিবর্তনগুলিও পুনরায় সেট করবে? #আপডেট করুন.
CoDe

এটি আমার পক্ষে নিখুঁতভাবে কাজ করেছে, এর মতো মাথা পুনরায় সেট করা এখানে অর্ধেক উত্তরগুলির চেয়ে অনেক বেশি অর্থবোধ করে।
বর্দা এলেন্ত্রিরি

শিরোনামের সমান কম আগে শ্রুতিবদ্ধ? এবং two দুটি কমিট আগে হয়? অনুমান করা এই দ্রুত ফরোয়ার্ড মার্জগুলির সাথে কাজ করবে না?
মার্কাস লিওন

87

ইদানীং, আমি এটির সাহায্যে ব্যবহার করছি git reflog। এটি কেবলমাত্র তখনই কাজ করে যদি মার্জ জাস্টটি ঘটে থাকে এবং এটি আপনার মেশিনে ছিল।

git reflog এর মতো কিছু ফিরে আসতে পারে:

fbb0c0f HEAD@{0}: commit (merge): Merge branch 'master' into my-branch
43b6032 HEAD@{1}: checkout: moving from master to my-branch
e3753a7 HEAD@{2}: rebase finished: returning to refs/heads/master
e3753a7 HEAD@{3}: pull --rebase: checkout e3753a71d92b032034dcb299d2df2edc09b5830e
b41ea52 HEAD@{4}: reset: moving to HEAD^
8400a0f HEAD@{5}: rebase: aborting

প্রথম লাইনটি ইঙ্গিত করে যে মার্জ হয়েছে। ২ য় লাইনটি আমার একত্রিত হওয়ার আগের সময়। আমি কেবল git reset --hard 43b6032এই শাখাকে একীভূত করার আগে থেকেই ট্র্যাক করতে বাধ্য করেছিলাম এবং চালিয়ে যেতে পারি।


দুর্দান্ত উত্তর, আপনাকে ধন্যবাদ! মার্জটিকে পূর্বাবস্থায় ফেরানো দরকার তবে অন্যান্য উত্তরগুলি reflogএসএইচএ পেতে এবং এটি কার্যকর করার জন্য ব্যবহার করে এটি আরও গণ্ডগোল করে git reset
লঙ্ক্যমার্ট

51

আধুনিক গিটের সাহায্যে আপনি:

git merge --abort

পুরানো বাক্য গঠন:

git reset --merge

পুরানো স্কুল:

git reset --hard

তবে প্রকৃতপক্ষে, এটি লক্ষ্য 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দৈনন্দিন কাজগুলিতে অনেক বেশি শক্তিশালী এবং দরকারী মনে করি, তাই আমি সর্বদা এটি ব্যবহার করি।


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

এই উত্তরটি ওপি-র পরিস্থিতির উপর দৃষ্টি নিবদ্ধ করে না এবং গুরুত্বপূর্ণ প্রসঙ্গটি ছেড়ে দেয়।
বেন হুইলার

37

ঠিক আছে, এখানকার অন্যান্য লোকেরা আমাকে যে উত্তর দিয়েছে তা নিকটে ছিল, কিন্তু এটি কার্যকর হয়নি। আমি যা করেছি তা এখানে।

এটা করছি...

git reset --hard HEAD^
git status

... আমাকে নিম্নলিখিত স্থিতি দিয়েছিল।

# On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 3 different commit(s) each, respectively.

আমাকে তখন একই git resetকমান্ডটি আরও বেশ কয়েকবার টাইপ করতে হয়েছিল । যতবার আমি এটি করেছি, বার্তাটি একের পর এক পরিবর্তিত হয়েছে আপনি নীচের দেখতে পাচ্ছেন।

> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 2 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch is behind 'origin/master' by 3 commits, and can be fast-forwarded.

এই মুহুর্তে, আমি স্থিতি বার্তার পরিবর্তন দেখতে পেয়েছি, তাই আমি একটি করার চেষ্টা করেছি git pullএবং এটি মনে হচ্ছে কাজ করবে:

> git pull
Updating 2df6af4..12bbd2f
Fast forward
 app/views/truncated |    9 ++++++---
 app/views/truncated |   13 +++++++++++++
 app/views/truncated |    2 +-
 3 files changed, 20 insertions(+), 4 deletions(-)
> git status
# On branch master

এত দীর্ঘ গল্প সংক্ষিপ্ত, আমার আদেশগুলি এটিতে নেমে এসেছে:

git reset --hard HEAD^
git reset --hard HEAD^
git reset --hard HEAD^
git reset --hard HEAD^
git pull

19
অথবা আপনি ব্যবহার করতে পারেHEAD^^^^
হ্যাসেন

17
এমনকি এমনকি রিসেট origin/master;)
হেসেন

23

আপনি git reflogআগের চেকআউটটি খুঁজে পেতে ব্যবহার করতে পারেন। কখনও কখনও এটি একটি ভাল রাষ্ট্র আপনি ফিরে যেতে চান।

concretely,

$ git reflog
$ git reset --hard HEAD@{0}

1
ধন্যবাদ! আপনি আমার কাজের অর্ধ দিন বাঁচিয়েছেন। তবে আমি কোনও কমান্ড দিয়ে রেফ্লোগ মোড থেকে বের হতে পারিনি।
কাতারজেনা

1
@ কাটারজেনা রিফ্লগ থেকে বেরিয়ে আসার জন্য "কিউ" কী ব্যবহার করুন
আমজেদ বৈগ

21

আপনি যদি মার্জ করার মাঝামাঝি হন তবে আপনি সর্বদা এটি বাতিল করতে পারেন git merge --abort


2
ধন্যবাদ ভাই এবং আমি সেই ভয়ঙ্কর জিনিসগুলি সঠিক উত্তরটি করতে চলেছিলাম। ভাগ্যবান আমি স্ক্রোল ডাউন। আমি কেবল মার্জ হেড মুছতে চাই
নিউউ

15

আমি এই সমস্যাটি একটি একক কমান্ড দিয়ে সমাধান করতে সক্ষম হয়েছি যাতে প্রতিশ্রুতি আইডি সন্ধান করা জড়িত না।

git reset --hard remotes/origin/HEAD

গৃহীত উত্তরটি আমার পক্ষে কার্যকর হয়নি তবে এই আদেশটি আমার সন্ধানের ফলাফলগুলি অর্জন করেছে।


একদম ঠিক! এটি শাখার প্রধানকে আপনার পরিবর্তনগুলি পুনরায় সেট করে! একের পর এক করছেন না
কার্লোস জিনাতো

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

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

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

14

আপনি যদি এখনও এটি প্রতিশ্রুতি না করেন তবে আপনি কেবল এটি ব্যবহার করতে পারেন

$ git checkout -f

এটি মার্জটিকে পূর্বাবস্থায় ফিরিয়ে আনবে (এবং আপনি যা কিছু করেছিলেন)।


এটি চেষ্টা করেছিলেন এবং এটির ফলে আমার স্থানীয় শাখা এগিয়ে রয়েছে এমন কমিটের সংখ্যা বাড়িয়েছে।
বার্কলে

14

এই প্রশ্নের উত্তরেও মিলের উত্সটিতে ফিরে যেতে চাইছেন (অর্থাত্ উত্সের আগে কোনও প্রতিশ্রুতি নেই)। আরও গবেষণা করে দেখা গেল resetঠিক এর জন্য একটি আদেশ রয়েছে:

git reset --hard @{u}

নোট: @{u}জন্য সাধারণভাবে সংক্ষেপে হয় origin/master। (এবং অবশ্যই এটির জন্য আপনার সেই দূরবর্তী সংগ্রহস্থলটি দরকার))


14

আপনাকে অবশ্যই আপনার হেড পরিবর্তন করতে হবে, অবশ্যই আপনার নয় বরং গিট হেড ....

সুতরাং উত্তর দেওয়ার আগে আসুন কিছু ব্যাকগ্রাউন্ড যুক্ত করুন, এটি কী তা ব্যাখ্যা করে HEAD

First of all what is HEAD?

HEADকেবলমাত্র বর্তমান শাখায় বর্তমান প্রতিশ্রুতি (সর্বশেষ) এর একটি উল্লেখ। যে কোনও সময়
কেবলমাত্র একা HEADথাকতে পারে । (ব্যতীতgit worktree )

এর সামগ্রীটি HEADভিতরে সঞ্চিত .git/HEADরয়েছে এবং এতে বর্তমান প্রতিশ্রুতিতে 40 বাইট এসএইএ -1 রয়েছে।


detached HEAD

অর্থ যে - আপনি সর্বশেষ কমিট উপর না হন, তাহলে HEADতার নামে একটি পূর্বে নির্দেশ করা হয় ইতিহাসে কমিট detached HEAD

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

কমান্ড লাইনে এটি দেখতে শাখা -1 এর পরিবর্তে SHA-1 দেখতে পাবেন যেহেতু HEADবর্তমান শাখার অগ্রভাগের দিকে ইশারা করছে না

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

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

বিচ্ছিন্ন হেড থেকে কীভাবে পুনরুদ্ধার করবেন সে সম্পর্কে কয়েকটি বিকল্প:


git checkout

git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back

এটি পছন্দসই প্রতিশ্রুতি নির্দেশ করে নতুন শাখাটি চেকআউট করবে।
এই আদেশটি প্রদত্ত প্রতিশ্রুতিতে চেকআউট করবে।
এই মুহুর্তে, আপনি একটি শাখা তৈরি করতে পারেন এবং এই বিন্দু থেকে কাজ শুরু করতে পারেন।

# Checkout a given commit. 
# Doing so will result in a `detached HEAD` which mean that the `HEAD`
# is not pointing to the latest so you will need to checkout branch
# in order to be able to update the code.
git checkout <commit-id>

# create a new branch forked to the given commit
git checkout -b <branch name>

git reflog

আপনি সর্বদা reflogপাশাপাশি ব্যবহার করতে পারেন ।
git reflogআপডেট হওয়া যে কোনও পরিবর্তন প্রদর্শন করবে HEADএবং কাঙ্ক্ষিত রিফ্লগ এন্ট্রি চেক HEADকরা এই প্রতিশ্রুতিতে ফিরে আসবে।

যতবারই হেডের সংশোধন করা হয় সেখানে একটি নতুন প্রবেশ থাকবে reflog

git reflog
git checkout HEAD@{...}

এটি আপনাকে আপনার কাঙ্ক্ষিত প্রতিশ্রুতিতে ফিরিয়ে আনবে

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


git reset --hard <commit_id>

আপনার হেডকে পছন্দসই প্রতিশ্রুতিতে "সরান"।

# This will destroy any local modifications.
# Don't do it if you have uncommitted work you want to keep.
git reset --hard 0d1d7fc32

# Alternatively, if there's work to keep:
git stash
git reset --hard 0d1d7fc32
git stash pop
# This saves the modifications, then reapplies that patch after resetting.
# You could get merge conflicts if you've modified things which were
# changed since the commit you reset to.
  • দ্রষ্টব্য: ( গিট ২.7 থেকে )
    আপনি এটিও ব্যবহার করতে পারেন git rebase --no-autostash

git revert <sha-1>

প্রদত্ত প্রতিশ্রুতি বা প্রতিশ্রুতি ব্যাপ্তি "পূর্বাবস্থায় ফিরিয়ে দিন"।
রিসেট কমান্ড প্রদত্ত প্রতিশ্রুতিতে যে কোনও পরিবর্তন "পূর্বাবস্থায়" ফেলবে।
পূর্বাবস্থার প্যাচ নিয়ে একটি নতুন প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতিবদ্ধ হবে যখন মূল প্রতিশ্রুতি ইতিহাসেও থাকবে।

# add new commit with the undo of the original one.
# the <sha-1> can be any commit(s) or commit range
git revert <sha-1>

এই স্কিমাটি বোঝায় যে কোন আদেশটি কী করে।
আপনি দেখতে পারেন সেখানে reset && checkoutপরিবর্তন HEAD

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


এটি ধন 🐱‍👤🐱‍👤🐱‍👤
সিং

12

সবচেয়ে সহজ উত্তরটি ওডিনহো প্রদত্ত - ভেলমন্ট

প্রথমে কর git reset --merge ORIG_HEAD

পরিবর্তনগুলি ধাক্কা দেওয়ার পরে যারা পুনরায় সেট করতে চান তাদের জন্য এটি করুন (কারণ কোনও গিট রিসেট মার্জ প্রশ্নগুলির জন্য এটি প্রথম পোস্ট)

git push origin HEAD --force

এটি এমনভাবে পুনরায় সেট করবে যাতে আপনি টানার পরে আর মার্জ হওয়া পরিবর্তনগুলি আর পাবেন না।


10

দেখার জন্য কেবলমাত্র একটি অতিরিক্ত বিকল্পের জন্য, আমি বেশিরভাগ এখানে বর্ণিত ব্রাঞ্চিং মডেলটি অনুসরণ করেছি: http://nvie.com/posts/a-successful-git-branching-model/ এবং এর সাথে মিশে গেছে--no-ff (না দ্রুত এগিয়ে) সাধারণত।

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

সুতরাং সম্পূর্ণ প্রতিশ্রুতি ফিরিয়ে আনার জন্য আমার কেবল একটি দরকার ছিল git reset --hard HEAD^এবং এটি পুরো সংশ্লেষটিকে উল্টে দিয়েছে। যেহেতু মার্জগুলি দ্রুত অগ্রসর হয়নি, মার্জটি একটি ব্লক ছিল এবং এক ধাপ পিছনে "শাখাটি মার্জ করা হয়নি"।


10

আপনি মার্জটি ফিরিয়ে দিতে বা নির্দিষ্ট প্রতিশ্রুতি দ্বারা পুনঃসূচনা করতে মাত্র দুটি কমান্ড ব্যবহার করতে পারেন:

  1. git reset --hard commitHash (আপনি পুনরায় আরম্ভ করতে চান এমন প্রতিশ্রুতিটি ব্যবহার করা উচিত, যেমন, 44a587491e32eafa1638aca7738)
  2. git push origin HEAD --force (নতুন স্থানীয় মাস্টার শাখা উত্স / মাস্টারে প্রেরণ)

শুভকামনা এবং এগিয়ে যান!


10

এটি একাধিক উপায়ে করা যেতে পারে।

1) মার্জ বাতিল করুন

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

git merge --abort

2) দূরবর্তী শাখায় হেড পুনরায় সেট করুন

আপনি যদি রিমোট বিকাশকারী শাখা থেকে কাজ করছেন, আপনি নীচের মতো দূরবর্তী শাখায় শেষ প্রতিশ্রুতিতে হেডকে পুনরায় সেট করতে পারেন:

git reset --hard origin/develop

3) বর্তমান শাখা মুছুন, এবং দূরবর্তী সংগ্রহস্থল থেকে আবার চেকআউট করুন

বিবেচনা করে, আপনি স্থানীয় রেপোতে শাখা বিকাশে কাজ করছেন যা দূরবর্তী / বিকাশকারী শাখার সাথে সিঙ্ক করে, আপনি নীচের মত কাজ করতে পারেন:

git checkout master 
##to delete one branch, you need to be on another branch, otherwise you will fall with the branch :) 

git branch -D develop
git checkout -b develop origin/develop

যে "1) অ্যাওর্ট মার্জ" যথেষ্ট ছিল। Upvoting।
কোডটোলাইফ

1
সাবধান হও! Git একত্রীকরণ --abort "শুধুমাত্র মার্জ করার পরে চালানো যায় দ্বন্দ্ব ফলাফল রূপে এসেছে Git একত্রীকরণ --abort একত্রীকরণ প্রক্রিয়া বাতিল ও প্রাক-একত্রীকরণ রাষ্ট্র পুনর্গঠন করতে চেষ্টা করবে।"
পেড্রো গার্সিয়া মদিনা

8

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

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

git checkout develop
git branch -D master
git branch -t master origin/master

ভাল খবর! মাস্টার উত্সের মতো একই পর্যায়ে রয়েছে এবং আপনার ভুল মিশ্রিত অবস্থা মোছা হয়েছে।


1
দ্রষ্টব্য: এটি কেবল মার্জটিকেই পূর্বাবস্থায় ফেলেছে তা নয়, তবে সর্বশেষ উত্সের দিকে ধাক্কা দেওয়ার পরেও করা স্থানীয় স্থানীয় কমিটগুলিও তা প্রত্যাখ্যান করে।
মার্টিজন হিমেলস

4

আপনি যদি একটি কমান্ড-লাইন সমাধান চান তবে আমি কেবল এমবিওর উত্তর দিয়ে যাওয়ার পরামর্শ দিই।

আপনি যদি নবাগত হন তবে আপনার গ্রাফিকাল পদ্ধতির পছন্দ হতে পারে:

  1. লাথি মারা gitk (কমান্ড লাইন থেকে, বা যদি আপনার কাছে থাকে তবে ফাইল ব্রাউজারে ডান ক্লিক করুন)
  2. আপনি সেখানে সহজেই মার্জ কমিটটি স্পট করতে পারেন - দুই পিতা-মাতার সাথে শীর্ষ থেকে প্রথম নোড
  3. প্রথম / বাম পিতামাতার লিঙ্কটি অনুসরণ করুন (মার্জ হওয়ার আগে আপনার বর্তমান শাখায় একটি, সাধারণত আমার জন্য লাল)
  4. নির্বাচিত প্রতিশ্রুতিতে, "এখানে শাখাটি পুনরায় সেট করুন" এ ডান ক্লিক করুন, সেখানে হার্ড পুনরায় সেট করুন

4

কৌশল: একটি নতুন শাখা তৈরি করুন যেখানে থেকে সবকিছু ভাল ছিল।

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

সমাধান:

আসুন আপনি একত্রীকরণ করতে চান বলে devমধ্যে feature-1

  1. আপনি সংশোধন করতে চান এমন সংশোধনটি সন্ধান করুন:

    git log --oneline feature-1
    a1b2c3d4 Merge branch 'dev' into 'feature-1' <-- the merge you want to undo
    e5f6g7h8 Fix NPE in the Zero Point Module <-- the one before the merge, you probably want this one
    
  2. এটি পরীক্ষা করে দেখুন (সময়মতো ফিরে যান):

    git checkout e5f6g7h8
    
  3. সেখান থেকে একটি নতুন শাখা তৈরি করুন এবং এটি পরীক্ষা করে দেখুন:

    git checkout -b feature-1
    

এখন আপনি আপনার মার্জ পুনরায় চালু করতে পারেন:

  1. একত্রিত করা: git merge dev

  2. আপনার মার্জ বিরোধগুলি ঠিক করুন Fix

  3. সমর্পণ git commit

  4. আপনি ফলাফলের সাথে সন্তুষ্ট হলে, পুরানো শাখাটি মুছুন: git branch --delete feature-1


2

কেবল নতুন শাখা তৈরি করুন, তারপরে চেরি-পিক পছন্দসই এটির প্রতিশ্রুতি দেয়।

এর সেভার এবং সরলটি উপরের অনেক উত্তরে বর্ণিত পুনরায় সেট করে


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

1

আমি মনে করি আপনি শনাক্তকরণের হ্যাশটি git rebase -i [hash] [branch_name] যেখানে করতে পারেন ঠিক [hash]তেমন পিছনে আপনি রিয়েলাইন্ড করতে চান প্লাস ওয়ান (বা তবে অনেকগুলি আপনি ফিরে যেতে চান) এবং তারপরে সম্পাদকের কমিটগুলির জন্য লাইনগুলি মুছুন যে আপনি আর চান না । ফাইলটি সংরক্ষণ করুন। থেকে প্রস্থান করুন। প্রার্থনা। এবং এটি পুনরুদ্ধার করা উচিত। আপনার একটি করতে হতে পারে git reset --hardতবে এটি এই মুহুর্তে ভাল হওয়া উচিত। আপনি যদি এগুলি আপনার ইতিহাসে রাখতে না চান তবে নির্দিষ্ট কমান্ডগুলি স্ট্যাকের বাইরে টানতেও আপনি এটি ব্যবহার করতে পারেন, তবে এটি আপনার সংগ্রহস্থলটিকে এমন অবস্থায় ফেলে দিতে পারে যা আপনি সম্ভবত চান না।


1

যদি আপনি মার্জটি প্রতিশ্রুতিবদ্ধ হন:

git reset HEAD~1
# Make sure what you are reverting is in fact the merge files
git add .
git reset --hard

1
  1. প্রথমে নিশ্চিত হয়ে নিন যে আপনি সমস্ত কিছু প্রতিশ্রুতিবদ্ধ করেছেন।

  2. তারপরে আপনার সংগ্রহস্থলটিকে পূর্ববর্তী কার্যক্ষম স্থানে পুনরায় সেট করুন:

    $ git reset f836e4c1fa51524658b9f026eb5efa24afaf3a36
    

    বা ব্যবহার করে --hard( এটি সমস্ত স্থানীয় সরিয়ে দেবে, প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি নয়! ):

    $ git reset f836e4c1fa51524658b9f026eb5efa24afaf3a36 --hard
    

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

  3. পূর্ববর্তী সঠিক সংস্করণের শীর্ষে আপনি কোনটি প্রতিশ্রুতিবদ্ধ হতে চান তা পরীক্ষা করুন:

    $ git log 4c3e23f529b581c3cbe95350e84e66e3cb05704f
    
    commit 4c3e23f529b581c3cbe95350e84e66e3cb05704f
    
    ...
    
    commit 16b373a96b0a353f7454b141f7aa6f548c979d0a
    
    ...
    
  4. আপনার সংগ্রহস্থলের ডান সংস্করণের শীর্ষে আপনার ডান কমিটগুলি প্রয়োগ করুন:

    • চেরি-পিক ব্যবহার করে (কিছু বিদ্যমান কমিটি দ্বারা প্রবর্তিত পরিবর্তনগুলি)

          git cherry-pick ec59ab844cf504e462f011c8cc7e5667ebb2e9c7
      
    • বা চেরি-বাছাইয়ের মাধ্যমে কমিটের সীমাবদ্ধতা দ্বারা:

      • মার্জ করার আগে প্রথমে সঠিক পরিবর্তনগুলি পরীক্ষা করে দেখুন:

        git diff 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f
        
      • মার্জ করার আগে প্রথমে সঠিক পরিবর্তনগুলি পরীক্ষা করে দেখুন:

        git cherry-pick 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f
        

        যেখানে এটি আপনার প্রতিশ্রুতিবদ্ধ সঠিক কমিটের পরিসীমা (ভুল প্রতিশ্রুতিবদ্ধ সংযোজন বাদ দিয়ে)।



0

আপনি যদি লক্ষ্য করেন যে মার্জ করার পরে অবিলম্বে আপনাকে ফিরে যেতে হবে এবং মার্জ করার চেষ্টা করার পরে আপনি অন্য কিছু করেন নি, আপনি কেবল এই আদেশটি জারি করতে পারেন: git reset --hard HEAD@{1}

মূলত, আপনার মার্জ shaনির্দেশিত হবে HEAD@{0}যদি মার্জ করার পরে অন্য কিছুই প্রতিশ্রুতিবদ্ধ ছিল এবং তাই HEAD@{1}একত্রীকরণ সামনে পূর্ববর্তী বিন্দু হতে হবে।


0

সবচেয়ে সহজ সরল সুযোগ, এখানে যা কিছু বলা হয়েছে তার থেকে অনেক সহজ:

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


0

এই ক্ষেত্রে, আপনি আপনার শাখাটি পুনরায় সেট করতে চাইবেন git reset --hard <branch_name>। যদি আপনি নিজের পরিবর্তনগুলি পুনরায় সেট করার আগে সেভ করতে চান তবে একটি নতুন শাখা তৈরি করতে ভুলবেন না এবংgit checkout <branch_name>

আপনি রাজ্যের সাথে একটি নির্দিষ্ট প্রতিশ্রুতিতে পুনরায় সেট করতে পারেন git reset --hard <commit_id>

পরিবর্তনগুলি যদি ধাক্কা দিয়ে থাকে তবে আপনি git revert <branch_name>পরিবর্তে ব্যবহার করতে পারেন । এছাড়াও অন্যান্য পরিস্থিতিতে গিট রিভার্ট এবং গিট চেকআউট কীভাবে ব্যবহার করবেন তা পরীক্ষা করে দেখুন ।

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