কম্পিউটার

গিট রিভার্ট কমিট:একটি ধাপে ধাপে গাইড

গিট রিভার্ট কমান্ড একটি কমিটকে পূর্বাবস্থায় ফিরিয়ে আনবে যাতে আপনি পূর্ববর্তী প্রতিশ্রুতিতে একটি সংগ্রহস্থল ফিরিয়ে দিতে পারেন। প্রতিশ্রুতি মুছে ফেলার পরিবর্তে, প্রত্যাবর্তন একটি নতুন প্রতিশ্রুতি তৈরি করবে যা একটি প্রকাশিত কমিটের পরিবর্তনগুলিকে বিপরীত করবে। এটি প্রকল্পের ইতিহাসের অংশ হিসাবে প্রাথমিক প্রতিশ্রুতি সংরক্ষণ করে।


আপনি যখন একটি Git সংগ্রহস্থলের সাথে কাজ করছেন, আপনি ভুলবশত কোড সহ একটি প্রতিশ্রুতি তৈরি করতে পারেন যা আপনার Git সংগ্রহস্থলে সংরক্ষণ করার জন্য প্রস্তুত নয়৷

সেখানেই গিট রিভার্ট কমান্ড আসে। git revert কমান্ড আপনাকে undo করতে দেয়। একটি প্রতিশ্রুতি যাতে আপনি পূর্ববর্তী প্রতিশ্রুতিতে একটি সংগ্রহস্থল ফিরিয়ে দিতে পারেন।

এই টিউটোরিয়ালটি উদাহরণ সহ, প্রত্যাবর্তন কোড এবং কীভাবে আপনার কোড প্রত্যাবর্তন করতে গিট রিভার্ট কমান্ড ব্যবহার করবেন তা নিয়ে আলোচনা করা হবে। এই টিউটোরিয়ালটি পড়ার শেষে, আপনি গিট রিভার্ট কমিট কমান্ড ব্যবহার করে কোড রিভার্ট করার ক্ষেত্রে বিশেষজ্ঞ হয়ে উঠবেন।

আপনার কোড প্রত্যাবর্তন

কখনও কখনও, যখন আপনি একটি Git সংগ্রহস্থলের সাথে কাজ করছেন, তখন আপনি লক্ষ্য করতে পারেন যে আপনি আপনার প্রতিশ্রুতিতে ভুল করেছেন৷

উদাহরণস্বরূপ, ধরুন আপনি একটি নতুন বৈশিষ্ট্যে কাজ শেষ করেছেন এবং আপনি বুঝতে পেরেছেন যে একটি বাগ আছে যা ঠিক করা দরকার। আপনি যখন বাগ ফিক্সের প্রতিশ্রুতি দেন, তখন আপনি লক্ষ্য করেন যে আপনি যে নতুন বৈশিষ্ট্যটি বিকাশ করছেন তার জন্য আপনি কার্যকারী ডিরেক্টরির প্রতিশ্রুতি দিয়েছেন।

এর মানে হল যে আপনার প্রতিশ্রুতিতে একটি বাগ ফিক্স এবং একটি নতুন বৈশিষ্ট্য উভয়ই অন্তর্ভুক্ত রয়েছে, যা একটি প্রকল্পের অন্যান্য সহযোগীদের বুঝতে বিভ্রান্তিকর হতে পারে। একই সময়ে এই দুটি পরিবর্তন করার পরিবর্তে, আপনি দুটি পৃথক প্রতিশ্রুতিতে তাদের অন্তর্ভুক্ত করতে চেয়েছিলেন৷

এই পরিস্থিতিতে, আপনি প্রতিশ্রুতি ঠেলে দেওয়ার আগে আপনার সংগ্রহস্থলটিকে সেই অবস্থায় ফিরিয়ে দিতে চাইতে পারেন। এটি আপনাকে শেষ কমিটটি প্রত্যাবর্তন করে আপনার কমিটগুলিকে গিটে পুশ করার আরেকটি সুযোগ দেবে।

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

গিট রিভার্ট কমান্ড

git revert কমান্ড আপনাকে undo করতে দেয় একটি প্রতিশ্রুতি যাইহোক, একটি প্রকল্প থেকে একটি প্রতিশ্রুতি মুছে ফেলার পরিবর্তে, git revert কমান্ড শেষ দুটি কমিটের মধ্যে পরিবর্তনগুলি খুঁজে পায় এবং একটি নতুন প্রতিশ্রুতি তৈরি করে যা সেই পরিবর্তনগুলিকে বিপরীত করে দেয়৷

git revert কমান্ডটি দরকারী কারণ এটি আপনাকে একটি সংগ্রহস্থলের প্রকল্প ইতিহাস সংরক্ষণ করতে দেয়। একটি প্রতিশ্রুতি সম্পূর্ণরূপে মুছে ফেলার পরিবর্তে, এটি আপনাকে একটি সংগ্রহস্থলকে অন্য একটি প্রতিশ্রুতিতে ফিরিয়ে আনার অনুমতি দেয়, যাতে আপনি এখনও একটি সংগ্রহস্থলে পুশ করা প্রতিটি কমিটের সঠিক রেকর্ড রাখতে পারেন৷

আপনি আপনার শেষ প্রতিশ্রুতি বিপরীত করতে চান এমন পরিস্থিতিতে আপনার গিট রিভার্ট কমান্ডটি ব্যবহার করা উচিত। আপনার শেষ প্রতিশ্রুতিতে যে পরিবর্তনগুলি করতে হবে তা ম্যানুয়ালি করার পরিবর্তে, আপনি আপনার প্রতিশ্রুতি প্রত্যাবর্তন করতে পারেন এবং কোডবেসে একটি নতুন ঠেলে দিতে পারেন৷

গিট রিভার্ট কমান্ডের সিনট্যাক্স নিম্নরূপ:

গিট রিভার্ট

এই কমান্ডটি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য একটি উদাহরণ দিয়ে চলুন।

Git Revert উদাহরণ

আমাদের স্থানীয় মেশিনে, আমাদের কাছে একটি ফাইল সহ একটি উদাহরণ সংগ্রহস্থল রয়েছে:README.md। আমরা ফাইলে একটি পরিবর্তন করেছি যা আমরা একটি প্রতিশ্রুতিতে চাপ দিতে চাই। আমরা এই কোড ব্যবহার করে তা করতে পারি:

গিট কমিট -m "ডক্স:লেখকের তথ্য সহ README.md আপডেট করুন"

এই কমান্ডটি কার্যকর করা হলে, docs: Update README.md with author info বার্তা সহ একটি প্রতিশ্রুতি তৈরি করে . আমরা আমাদের README.md ফাইলে আরেকটি পরিবর্তন করেছি, যা আমরা এই কমান্ডটি ব্যবহার করে আমাদের রেপোতে প্রতিশ্রুতিবদ্ধ:

গিট কমিট -m "ডক্স:অবদানের মাধ্যমে লেখকদের ক্রম আপডেট করুন"

এই কমান্ডটি আমাদের সংগ্রহস্থলে আরেকটি কমিট তৈরি করে। যদি আমরা git log –pretty=oneline কমান্ডটি ব্যবহার করি (যা আমাদের কমিটগুলির একটি ছোট তালিকা দেখায়), আমরা দেখতে পাব যে আমাদের রেপো ইতিহাসে দুটি কমিট রয়েছে:

6f52d877873e7d3b52c929647384dfdf2488da22 (HEAD -> master) ডক্স:অবদানের মাধ্যমে লেখকদের ক্রম আপডেট করুন57d763663e619088159bb7629243456f77dm/Adpredm/Adrefdm/Adrefre88 এর সাথে লেখক 

এখন, ধরুন আমরা সিদ্ধান্ত নিই যে আমরা আমাদের শেষ প্রতিশ্রুতি ফিরিয়ে দিতে চাই। আমরা বুঝতে পারি যে আমাদের README.md ফাইলে আমরা যে ক্রম অনুসারে লেখকদের লিখেছিলাম তা ভুল ছিল, এবং তাই আমাদের শেষ প্রতিশ্রুতি পুশ করার আগে আমাদের সংগ্রহস্থলটি যে অবস্থায় ছিল সেই অবস্থায় ফিরিয়ে আনতে হবে।

আমরা এই কমান্ডটি ব্যবহার করে তা করতে পারি:

গিট রিভার্ট হেড

যখন আমরা এই কমান্ডটি চালাই, তখন আমাদের ডিফল্ট পাঠ্য সম্পাদক খোলে এবং আমাদের প্রতিশ্রুতির জন্য একটি বার্তা তৈরি করার জন্য অনুরোধ করে। এই কমান্ডে, HEAD সর্বশেষ প্রতিশ্রুতি বোঝায়। আমাদের উদাহরণে, আমরা revert author order commit বার্তা টাইপ করি . তারপর, কমান্ডটি নিম্নলিখিতগুলি প্রদান করে:

[master b66c29a] প্রত্যাবর্তন লেখক আদেশ প্রতিশ্রুতি "দস্তাবেজ:অবদান দ্বারা লেখকদের আপডেট অর্ডার" 1 ফাইল পরিবর্তন, 1 মুছে ফেলা(-)

এখন, যখন আমরা git log –pretty=oneline কমান্ড চালাই, তখন আমরা দেখতে পাব একটি নতুন কমিট তৈরি হয়েছে:

 b66c29a8c4c226fa9ae8cd8f9e086c0a73e6ecfe (মাথা -> মাস্টার) প্রত্যাবর্তন লেখক অর্ডার কমিট "দস্তাবেজ:অবদানসমূহ দ্বারা লেখক আপডেট অর্ডার":contributions57d763663e619088159bb7629243456f88feab79 ডক্স দ্বারা লেখক আপডেট অর্ডার:6f52d877873e7d3b52c929647384dfdf2488da22 ডক্স আপডেট README.md লেখক তথ্য সহ 

আমাদের প্রতিশ্রুতি ইতিহাস এখন তিনটি কমিট তালিকা. আমাদের শেষ কমিট মুছে ফেলার পরিবর্তে, গিট রিভার্ট কমান্ড একটি নতুন কমিট তৈরি করেছে যা পূর্ববর্তী কমিটের পরিবর্তনগুলিকে পূর্বাবস্থায় ফিরিয়ে দিয়েছে। এর মানে হল যে আমাদের কাছে এখনও সমস্ত প্রতিশ্রুতির সম্পূর্ণ ইতিহাস রয়েছে যা আমরা আমাদের সংগ্রহস্থলে পুশ করেছি৷

গিট রিভার্ট কমান্ড কার্যকর করার জন্য একটি কমিট রেফারেন্স প্রয়োজন। এই ক্ষেত্রে, আমরা HEAD নির্দিষ্ট করেছি, যা আমাদের সংগ্রহস্থলকে শেষ প্রতিশ্রুতিতে ফিরিয়ে দেয়।

যদি আমরা অন্য কমিটে ফিরে যেতে চাই, আমরা সেই কমিটের জন্য হ্যাশ মান নির্দিষ্ট করতে পারি। সুতরাং, HEAD বলার পরিবর্তে আমাদের কমান্ডে, আমরা আমাদের পছন্দের একটি প্রতিশ্রুতিতে প্রত্যাবর্তন করতে গিট লগ কমান্ড দ্বারা প্রত্যাবর্তিত একটি হ্যাশ ব্যবহার করতে পারি। এখানে একটি উদাহরণ দেওয়া হল যে কমান্ডটি আমরা একটি রিপোজিটরিকে একটি নির্দিষ্ট প্রতিশ্রুতিতে ফিরিয়ে আনতে ব্যবহার করব:

গিট রিভার্ট 57d763663e619088159bb7629243456f88feab79

এই কমান্ডটি SHA হ্যাশ 57d763663e619088159bb7629243456f88feab79 দিয়ে আমাদের সংগ্রহস্থলকে প্রতিশ্রুতিতে ফিরিয়ে আনবে। . এই রিপোজিটরিতে, সেই হ্যাশটি আমাদের রেপোতে করা প্রথম প্রতিশ্রুতির সাথে মিলে যায়৷

গিট রিভার্ট বনাম রিসেট

রিভার্ট এবং রিসেট কমান্ড উভয়ই গিট রিপোজিটরিতে পূর্ববর্তী কমিট থেকে পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আনতে ব্যবহৃত হয়। যাইহোক, আপনার সচেতন হওয়া উচিত যে এই কমান্ডগুলির সামান্য ভিন্ন আচরণ আছে।

গিট রিভার্ট কমান্ড লাইন অপারেশনটি পূর্ববর্তী কমিটটিকে পূর্বাবস্থায় ফিরিয়ে আনতে ব্যবহৃত হয়। আপনি যখন গিট রিভার্ট চালান, তখন দুটি কমিটের মধ্যে পরিবর্তনগুলি পূর্বাবস্থায় ফেরানো হয়। তারপরে, পরিবর্তনগুলি পূর্বাবস্থায় ফেরানোর পরে একটি নতুন প্রতিশ্রুতি তৈরি করা হয় যাতে আপনার রেপোতে কোড থাকে৷

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

কমিট রিসেট করার চেয়ে কমিট প্রত্যাবর্তন করা প্রায়ই পছন্দ করা হয়। প্রধান কারণ হল গিট রিভার্ট আপনার প্রকল্পের ইতিহাস পরিবর্তন করে না। এটি আপনাকে, বিকাশকারীকে, একটি প্রকল্পে করা সমস্ত পরিবর্তনের একটি সঠিক রেকর্ড বজায় রাখতে দেয়৷

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

এর মানে হল, আপনি যদি আপনার সংগ্রহস্থলের ইতিহাসে একটি প্রতিশ্রুতি পূর্বাবস্থায় ফিরিয়ে আনতে চান, তাহলে আপনাকে সেই বিন্দুর আগে সমস্ত কমিট মুছে ফেলতে হবে, তারপর আপনার পরিবর্তনগুলি কমিট করুন। এটি আপনার সংগ্রহস্থলের ইতিহাসের একটি সঠিক রেকর্ড সংরক্ষণ করা কঠিন করে তোলে, যা Git এর মত উৎস নিয়ন্ত্রণ সরঞ্জামগুলিকে কার্যকরভাবে ব্যবহার করার একটি গুরুত্বপূর্ণ অংশ৷

উপসংহার

গিট রিভার্ট কমান্ড আপনাকে একটি নির্দিষ্ট প্রতিশ্রুতি থেকে কোড সংগ্রহস্থলে করা পরিবর্তনগুলিকে পূর্বাবস্থায় ফিরিয়ে আনার অনুমতি দেয়। একটি প্রতিশ্রুতি মুছে ফেলার পরিবর্তে, git revert কমান্ড বর্তমান প্রতিশ্রুতি এবং একটি পূর্ববর্তী প্রতিশ্রুতির মধ্যে পরিবর্তনগুলি সনাক্ত করে এবং সেই পরিবর্তনগুলিকে ফিরিয়ে আনার জন্য একটি নতুন প্রতিশ্রুতি তৈরি করে৷

এই টিউটোরিয়ালে আলোচনা করা হয়েছে কিভাবে গিট রিভার্ট কমান্ড ব্যবহার করে গিটে একটি কমিট রিভার্ট করতে হয়। এখন আপনি একজন পেশাদার ডেভেলপারের মতো গিট রিভার্ট কমিট কমান্ড ব্যবহার করে কমিট প্রত্যাবর্তন শুরু করতে প্রস্তুত!


  1. জাভা কম্পাইলার:একটি ধাপে ধাপে গাইড

  2. jQuery find():একটি ধাপে ধাপে গাইড

  3. গিট চেরি পিক:একটি ধাপে ধাপে গাইড

  4. গিট অ্যাড করার জন্য একটি ধাপে ধাপে গাইড