গিট: একটি পরিবর্তিত স্থানীয় শাখায় সমস্ত পরিবর্তন বাতিল করুন


117

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

A--B--C--O1--O2--O3 (origin/phobos)
       \
         L1--L2--L3 (phobos)

আপেক্ষিক প্রতিশ্রুতিবদ্ধ ইতিহাসগুলি দেখে, আমি এখন স্থানীয় phobosশাখায় সমস্ত পরিবর্তনগুলি বাতিল করে এটিকে প্রত্যক্ষ অনুলিপি হিসাবে ফিরিয়ে আনতে চাই origin/phobos, যাতে স্থানীয় ইতিহাসটি এরকম দেখায়:

A--B--C--O1--O2--O3 (phobos origin/phobos)

আমি phobosশাখায় স্থানীয় পরিবর্তনগুলি সত্যিই চাই না, এবং আমি সত্যই চাই না যে এর পরে কোনও মূল সংস্থান দেখা যাবে in (সুতরাং, কেবল মার্জ করা আমার মনে মনে নেই))

দেখে মনে হচ্ছে এটি সত্যিই সহজ হওয়া উচিত, তবে আমার গুগল-ফু আমাকে ব্যর্থ করেছে। আমি এটা কিভাবে করবো?

উত্তর:


79

শাখাটি মুছুন, তারপরে এটি আবার তৈরি করুন:

$ git branch -D phobos
$ git checkout --track -b phobos origin/phobos

37
শাখার মাথা পুনরায় সেট করা বনাম এই পদ্ধতির সাথে একটি সমস্যা হ'ল শাখাটি মুছে ফেলা শাখার পুনর্বিবেচনাটিকে দূরে সরিয়ে দেয়। অন্যদিকে শাখাটি পুনরায় সেট করা কেবল রিফ্লগ সংরক্ষণ করে না, তবে বাস্তবে রিফ্লগে রিসেটটি রেকর্ড করে। এটি অপারেশনটিকে পরে প্রয়োজনে সহজেই उलटযোগ্য করে তোলে।
ড্যান মোল্ডিং

9
@ ইলেক্ট্রনস_আহয় আপনাকে এখানে ড্যানের কাছে গৃহীত উত্তরটি পরিবর্তন করার পরামর্শ দিবে (যাতে আমার মতো লোকেরা কীভাবে গুগল করেছে এটি কীভাবে নিরাপদ পদ্ধতি বেছে নেওয়ার সম্ভাবনা রয়েছে)।
স্টিভ চেম্বারস

4
@ ড্যানমল্ডিংয়ের জবাব যখন কোনও স্থানীয় শাখা অপ্রয়োজনীয় তখন মুছে ফেলার সাথে জড়িত না। এটি অনেক বেশি নিরাপদ।
brma

@ ব্রমা: কেমন? এটি এখনও একটি নতুন অঙ্গীকারের জন্য একটি শাখা নির্দেশ করছে।
মিপাদি

5
ড্যান মোল্ডিংয়ের উত্তর নিরাপদ। আমি মনে করি আপনার এটি নির্বাচন করা উচিত।
ড্যানিয়েল

330
git checkout phobos
git reset --hard origin/phobos

এটি গিটকে phobosএকই প্রতিশ্রুতিতে মাথাটি পুনরায় সেট করতে origin/phobosএবং কাজের গাছের সাথে তাল মিলিয়ে আপডেট করতে বলে।


35
আইএমও এর গ্রহণযোগ্য উত্তর হওয়া উচিত; এটি মুছে ফেলা / পুনরুদ্ধার করে অস্ত্রোপচারের পরিবর্তে শাখা পয়েন্টারটি প্রতিস্থাপনের জন্য "রিসেট" কমান্ড জারি করে।
vdboor

আসলে, আমি প্রথমে এটি চেষ্টা করেছিলাম এবং এটি স্থানীয় অনুলিপিটিকে প্রায় অকেজো করার দ্বারা এক টন ত্রুটি ফেলে দিয়েছে। মুছুন / পুনঃনির্ধারণ কম মার্জিত হতে পারে, তবে আমাকে কোনও ফলো-আপ প্রশ্ন জিজ্ঞাসা করতে হয়নি।
ইলেক্ট্রন_আহয়

3
@ ইলেক্ট্রন_আহয়: হুম, এটি অবশ্যই স্বাভাবিক নয়। আপনার রেপো যদি ভাল কাজের ক্রমে থাকে তবে এই পুনরায় সেট করাটি সাধারণত সমস্যা-মুক্ত অপারেশন হওয়া উচিত।
ড্যান মোল্ডিং

বা হিংসুক হলেও। আপনি "দুর্ঘটনাক্রমে" এই আদেশটি আসলে কী করে তা না পাঠিয়ে এই আদেশটি জারি করলে আপনার বাড়ির পথ সন্ধান করতে গিট রিফ্লগ ব্যবহার করুন। :)
dbn

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