আপনি কীভাবে গিটে একটি নির্দিষ্ট ট্যাগটিতে ফিরে যেতে পারেন?


86

আমি জানি কীভাবে গিট শাখায় পুরানো প্রতিশ্রুতিগুলিতে ফিরে যেতে হয়, তবে আমি কীভাবে কোনও ট্যাগ দ্বারা নির্ধারিত শাখার রাজ্যে ফিরে যেতে পারি? আমি এই জাতীয় কিছু কল্পনা:

git revert -bytag "Version 1.0 Revision 1.5"

এটা কি সম্ভব?


আপনি কি "শাখাটি রিওয়াইন্ড" করতে চান (অর্থাত্ কমিটস সরান ), বা বর্তমান শাখায় একটি নতুন প্রতিশ্রুতি যুক্ত করতে চান যা শাখাটি সেট আপ করে যাতে সমস্ত ফাইল "সেই ট্যাগ দ্বারা প্রদত্ত প্রতিশ্রুতিতে ছিল সেভাবেই"?
টেরিক

হয় কাজটি করা উচিত, যদিও আমি মনে করি আমি বরং আপনার বর্ণনার সাথে বর্তমান শাখায় একটি নতুন প্রতিশ্রুতি যুক্ত করব
zachd1_618

সেক্ষেত্রে এই উত্তরটিgit checkout <id> . থেকে পদ্ধতিটি ব্যবহার করুন ।
টেমেক

উত্তর:


133

গিট ট্যাগগুলি কেবল প্রতিশ্রুতিবদ্ধতার নির্দেশক। সুতরাং আপনি সেগুলি হাইডের মতো, ব্রাঞ্চের নাম বা শা হ্যাশগুলি করার মতোই ব্যবহার করেন। আপনি যে কোনও গিট কমান্ডের সাথে ট্যাগ ব্যবহার করতে পারেন যা প্রতিশ্রুতি / পুনর্বিবেচনা যুক্তিগুলি গ্রহণ করে। আপনি এটি git rev-parse tagnameপ্রতিশ্রুতিবদ্ধ প্রতিশ্রুতি প্রদর্শন করার জন্য এটি চেষ্টা করতে পারেন ।

আপনার ক্ষেত্রে কমপক্ষে এই দুটি বিকল্প রয়েছে:

  1. বর্তমান শাখাকে নির্দিষ্ট ট্যাগে পুনরায় সেট করুন:

    git reset --hard tagname
    
  2. আপনাকে ট্যাগের রাজ্যে আনতে শীর্ষে রিভার্ট কমিট জেনারেট করুন:

    git revert tag
    

যদি আপনি সংঘর্ষে লিপ্ত হন তবে এটি কিছু বিবাদগুলির পরিচয় দিতে পারে।


30
আমি মনে করি "গিট রিভার্ট <ট্যাগ>" ট্যাগটি করা প্রতিশ্রুতিগুলিকে পরিবর্তিত করে পরিবর্তিত করে পরিবর্তিত পরিবর্তিত পরিবর্তিত সংস্করণটিকে আপনার সংস্করণে ফিরিয়ে আনবে।
ম্যাট

এছাড়াও untracked / unversioned ফাইলের পরিত্রাণ পেতে, অনুসরণ stackoverflow.com/a/912737/923560
Abdull

4
@ ম্যাট যেমন বলেছেন, গৃহীত উত্তরটি কেবল ভুল, কারণ এটি কেবল ট্যাগবদ্ধ প্রতিশ্রুতিতে পরিবর্তনগুলি ফিরিয়ে দেয়। আপনার সেরা বাজি কমিট হ্যাশ ব্যবহার করা এবং এই উত্তরটি অনুসরণ করুন: স্ট্যাকওভারফ্লো.com
4114122

হাই, আপনি কি "ট্যাগের রাজ্যে পৌঁছানোর জন্য শীর্ষে পুনর্নির্মাণ প্রতিশ্রুতি জেনারেট করতে পারেন:"? দুর্ভাগ্যক্রমে এর অর্থ কী তা আমার কোনও ধারণা নেই।
জন লিটল


1

আপনি গিট চেকআউট ব্যবহার করতে পারেন।

আমি গ্রহণযোগ্য সমাধান চেষ্টা করেছিলাম কিন্তু একটি ত্রুটি পেয়েছি, warning: refname '<tagname>' is ambiguous'

তবে উত্তরটি যেমন বলেছে, ট্যাগগুলি প্রতিশ্রুতিবদ্ধতার পয়েন্টারের মতো আচরণ করে, সুতরাং আপনি যেমন একটি প্রতিশ্রুতিবদ্ধ হ্যাশ দিয়েছিলেন, আপনি কেবল ট্যাগটি চেকআউট করতে পারেন। পার্থক্য কেবলমাত্র আপনি এটি দিয়ে tags/:

git checkout tags/<tagname>

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