মূল পোস্টারটিতে বলা হয়েছে:
কেউ আমাকে যে সর্বোত্তম উত্তর দিতে পারে তা হ'ল git revert
আমি পছন্দসই প্রতিশ্রুতি না পৌঁছা পর্যন্ত এক্স বার ব্যবহার করা ।
সুতরাং আসুন আমরা 20 টি পুরানো প্রতিশ্রুতিতে ফিরে যেতে চাই তা বলি, আমাকে এটি 20 বার চালাতে হবে।
এই কাজ করতে একটি সহজ উপায় আছে?
এই রেপোটি সর্বজনীন হওয়ায় আমি রিসেট ব্যবহার করতে পারছি না।
এটি git revert
এক্স বার ব্যবহার করার প্রয়োজন নেই । git revert
আর্গুমেন্ট হিসাবে প্রতিশ্রুতিবদ্ধ সীমা গ্রহণ করতে পারে, তাই আপনাকে কমিটের সীমাটি ফিরিয়ে আনতে কেবল একবার এটি ব্যবহার করা দরকার। উদাহরণস্বরূপ, আপনি যদি সর্বশেষ 20 টি চুক্তিতে ফিরে যেতে চান:
git revert --no-edit HEAD~20..
কমিটের পরিসরটি HEAD~20..
সংক্ষিপ্ত HEAD~20..HEAD
, এবং এর অর্থ " হেডের কমিটের 20 তম পিতামাতার থেকে শুরু করুন , এবং এটি সম্পাদনের পরে সমস্ত কমিটগুলি প্রত্যাবর্তন করুন"।
এগুলি 20 টিরও কমিট নয় বলে ধরে নিলে তা শেষ করবে 20 যদি সেখানে মার্জ কমিটস থাকে, তবে আপনি সেগুলি সমস্তকে একটি কমান্ডে ফিরিয়ে দিতে পারবেন না, আপনাকে পৃথকভাবে এগুলি ফিরিয়ে নিতে হবে
git revert -m 1 <merge-commit>
আরও মনে রাখবেন যে আমি git revert
গিট সংস্করণ 1.9.0 ব্যবহার করে একটি ব্যাপ্তি ব্যবহার করে পরীক্ষা করেছি । আপনি যদি গিটের কোনও পুরানো সংস্করণ ব্যবহার করেন তবে এর সাথে একটি পরিসর ব্যবহার করা git revert
বা নাও কাজ করতে পারে।
এই ক্ষেত্রে, git revert
বেশি পছন্দ করা হয় git checkout
।
লক্ষ্য করুন অসদৃশ এই উত্তরটি ব্যবহার করতে বলেছেনgit checkout
, git revert
আসলে যে করে যে আপনার প্রত্যাবর্তন করছি কোনো যোগ করা হয় নি কোন ফাইল মুছে ফেলা হবে , যা এই পুনর্বিবেচনা একটি সীমার রূপে ফিরিয়ে নিয়ে যেতে সঠিক পথ করে তোলে।
নথিপত্র