এটি "প্রত্যাবর্তন" দ্বারা আপনি কী বোঝাতে চান তার উপর এটি অনেকটাই নির্ভর করে।
অস্থায়ীভাবে একটি পৃথক প্রতিশ্রুতিতে স্যুইচ করুন
আপনি যদি অস্থায়ীভাবে এটিতে ফিরে যেতে চান, চারপাশ বোকা হন, তবে আপনি যেখানে আছেন সেখানে ফিরে আসুন, আপনাকে যা করতে হবে তা হ'ল কাঙ্ক্ষিত প্রতিশ্রুতি পরীক্ষা করা:
# This will detach your HEAD, that is, leave you with no branch checked out:
git checkout 0d1d7fc32
অথবা আপনি সেখানে থাকার সময় যদি কমিট করতে চান তবে এগিয়ে যান এবং যখন আপনি সেখানে থাকবেন তখন একটি নতুন শাখা করুন:
git checkout -b old-state 0d1d7fc32
আপনি যেখানে ছিলেন সেখানে ফিরে যেতে কেবল যে শাখাটি দিয়েছিলেন তা আবার পরীক্ষা করে দেখুন। (আপনি যদি শাখাগুলি স্যুইচ করার সময় যথারীতি পরিবর্তন করেন তবে আপনাকে যথাযথ হিসাবে তাদের মোকাবেলা করতে হবে them এগুলি ফেলে দেওয়ার জন্য আপনি পুনরায় সেট করতে পারেন; এগুলি আপনার সাথে নিতে আপনি স্ট্যাশ, চেকআউট, স্ট্যাশ পপ করতে পারেন; আপনি প্রতিশ্রুতিবদ্ধ হতে পারেন আপনি সেখানে একটি শাখা চাইলে সেগুলি সেখানে একটি শাখায় রাখতে পারেন))
অপ্রকাশিত কমিটস হার্ড মুছুন
যদি অন্যদিকে, আপনি তখন থেকে যা কিছু করেছেন তার থেকে সত্যই মুক্তি পেতে চান, দুটি সম্ভাবনা রয়েছে। এক, আপনি যদি এই কমিটগুলির কোনও প্রকাশ না করেন তবে কেবল পুনরায় সেট করুন:
# 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.
আপনি যদি বিশৃঙ্খলা সৃষ্টি করেন, আপনি ইতিমধ্যে আপনার স্থানীয় পরিবর্তনগুলি দূরে সরিয়ে রেখেছেন তবে পুনরায় সেট করে আপনি অন্তত যেখানে ছিলেন সেখানে ফিরে যেতে পারেন।
নতুন কমিটের সাথে প্রকাশিত কমিটগুলি পূর্বাবস্থায় ফেরান
অন্যদিকে, আপনি যদি কাজটি প্রকাশ করেছেন তবে আপনি সম্ভবত শাখাটি পুনরায় সেট করতে চান না, কারণ এটি কার্যকরভাবে ইতিহাসের পুনর্লিখন করছে। সেক্ষেত্রে, আপনি অবশ্যই কমিটগুলি ফিরিয়ে দিতে পারবেন could গিটের সাথে, রিভার্টের খুব নির্দিষ্ট অর্থ রয়েছে: এটি বাতিল করার জন্য বিপরীত প্যাচের সাথে একটি অঙ্গীকারবদ্ধ করুন। এইভাবে আপনি কোনও ইতিহাস পুনর্লিখন করবেন না।
# This will create three separate revert commits:
git revert a867b4af 25eee4ca 0766c053
# It also takes ranges. This will revert the last two commits:
git revert HEAD~2..HEAD
#Similarly, you can revert a range of commits using commit hashes:
git revert a867b4af..0766c053
# Reverting a merge commit
git revert -m 1 <merge_commit_sha>
# To get just one, you could use `rebase -i` to squash them afterwards
# Or, you could do it manually (be sure to do this at top level of the repo)
# get your index and work tree into the desired state, without changing HEAD:
git checkout 0d1d7fc32 .
# Then commit. Be sure and write a good message describing what you just did
git commit
git-revert
র manpage আসলে তার বর্ণনাতে এই অনেক জুড়ে। আর একটি দরকারী লিঙ্কটি হ'ল গিট-এসএমএইচ ডটকম বিভাগ গিট-রিভার্টের বিষয়ে আলোচনা করছে ।
আপনি যদি সিদ্ধান্ত নেন যে সর্বোপরি আপনি ফিরে যেতে চান না, আপনি রিভার্টটি (এখানে বর্ণিত হিসাবে) রিভার্ট করতে পারেন বা রিভার্টের আগে ফিরে যেতে পারেন (পূর্ববর্তী বিভাগটি দেখুন)।
আপনি এই ক্ষেত্রে এই উত্তরটি সহায়ক হিসাবেও পেতে পারেন:
কীভাবে হেডকে আগের জায়গায় ফিরে যেতে হবে? (বিচ্ছিন্ন মাথা)