গিট রিসেট -মিশ্র, -নরম এবং -হার্ড এর মধ্যে পার্থক্য কী?

Gita Riseta Misra Narama Ebam Harda Era Madhye Parthakya Ki



গিট-এ, প্রতিটি প্রতিশ্রুতি পূর্ববর্তী কমিটের সাথে সংযুক্ত থাকে এবং HEAD কার্য শাখায় সাম্প্রতিকতম প্রতিশ্রুতির দিকে নির্দেশ করে। প্রতিশ্রুতি ইতিহাস প্রতিশ্রুতি একটি গাছ হিসাবে সংরক্ষণ করা হয়. যাইহোক, কখনও কখনও বিকাশকারীদের প্রতিশ্রুতি ইতিহাস সংশোধন করতে হবে। এই উদ্দেশ্যে, ' $ গিট রিসেট ” কমান্ডটি গিট সংগ্রহস্থলের ইতিহাস পরিবর্তন করতে এবং যে ভুলগুলি করা হয়েছিল তা সংশোধন করতে ব্যবহৃত হয়।

এই নিবন্ধটি সংক্ষিপ্তভাবে গিট রিসেট –হার্ড, –সফট এবং –মিক্সডের মধ্যে পার্থক্য ব্যাখ্যা করবে।

গিট রিসেট -মিশ্র, -নরম এবং -হার্ড এর মধ্যে পার্থক্য কী?

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







  • দ্য ' - নরম 'এর সাথে ' বিকল্পটি ব্যবহৃত হয় $ গিট রিসেট ” ফাইলগুলি রাখার কমান্ড এবং গিট স্টেজিং সূচকে প্রতিশ্রুতি পরিবর্তনগুলি ফেরত দেয়।
  • ' $ গিট রিসেট -মিশ্রিত ” কমিট পরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে আনতে এবং ওয়ার্কিং ডাইরেক্টরি থেকে মুছে না দিয়ে স্টেজিং সূচক থেকে ফাইলটি সরাতে ব্যবহৃত হয়।
  • দ্য ' - কঠিন 'সহ' বিকল্পটি $ গিট রিসেট ” কমান্ডটি সমস্ত পরিবর্তন মুছে ফেলতে এবং স্থানীয় কার্যকারী ডিরেক্টরি থেকে মুছে ফেলার জন্য ব্যবহৃত হয়।

আসুন একটি উদাহরণ নেওয়া যাক কিভাবে ' $ গিট রিসেট ” কমান্ড বিভিন্ন বিকল্পের সাথে কাজ করে!



ধাপ 1: কাঙ্খিত গিট সংগ্রহস্থলে যান

প্রথমে, 'ব্যবহার করে আপনার পছন্দসই গিট সংগ্রহস্থলে যান সিডি 'আদেশ:



$ সিডি 'সি:\গো \t is_repo'





ধাপ 2: ফাইল তৈরি করুন

এখন, একটি ফাইল তৈরি করতে নীচের প্রদত্ত কমান্ডটি চালান:

$ স্পর্শ File4.txt



ধাপ 3: স্টেজিং ইনডেক্সে ফাইল যোগ করুন

ব্যবহার ' git যোগ করুন স্টেজিং ইনডেক্সে নতুন জেনারেট করা ফাইল যোগ করার জন্য কমান্ড:

$ git যোগ করুন File4.txt

ধাপ 4: পরিবর্তন করুন

এরপরে, কার্যকারী সংগ্রহস্থলে সমস্ত পরিবর্তন যোগ করুন “ git কমিট 'আদেশ:

$ git কমিট -মি 'ফাইল 4 যোগ করা হয়েছে'

ধাপ 5: গিট লগ চেক করুন

তারপরে, যোগ করা সর্বশেষ কমিটগুলি দেখতে গিট লগ ইতিহাস পরীক্ষা করুন:

$ git লগ

নীচের আউটপুটে, এটি দেখা যায় যে সমস্ত সর্বশেষ যোগ করা প্রতিশ্রুতি প্রদর্শিত হয় এবং ' হেড সাম্প্রতিক প্রতিশ্রুতির দিকে ইঙ্গিত করছে:

বিঃদ্রঃ: HEAD এর বর্তমান পয়েন্টিং পজিশনটি আরও ভালভাবে পরীক্ষা করতে, 'চালনা করুন git লগ 'সহ কমান্ড' -এক লাইন 'পতাকা:

$ git লগ --অনলাইন

নীচে প্রদত্ত আউটপুট কমিট বার্তা সহ কমিট SHA হ্যাশের তালিকা দেখায়:

ধাপ 6: গিট রিসেট -সফ্ট কমান্ড ব্যবহার করুন

গিট রিপোজিটরি থেকে স্টেজিং ইনডেক্সে যোগ করা পরিবর্তনগুলিকে প্রত্যাবর্তন করতে, ' ব্যবহার করুন git রিসেট ' কমান্ড সহ '- নরম ” বিকল্প, এবং পছন্দসই HEAD অবস্থান নির্দিষ্ট করুন যেখানে পয়েন্টারটি সরানোর জন্য প্রয়োজন:

$ git রিসেট -- নরম মাথা ~ 1

ধাপ 7: গিট স্ট্যাটাস চেক করুন

এখন, হেডের রিভার্টিং পজিশন যাচাই করুন গিট রিপোজিটরি স্ট্যাটাস চেক করুন:

$ git অবস্থা

দেখা যায় যে ' git reset -soft ” কমান্ড গিট স্টেজিং সূচকে কমিট পরিবর্তনগুলি ফিরিয়ে দিয়েছে। তাছাড়া, ' File4.txt ” ফাইলটি এখন গিট স্টেজিং ইনডেক্সে রয়েছে এবং প্রতিশ্রুতিবদ্ধ হওয়া দরকার:

ধাপ 8: গিট লগ চেক করুন

HEAD-এর বর্তমান অবস্থান দেখতে, 'সহ প্রদত্ত কমান্ডটি চালান। -এক লাইন 'বিকল্প:

$ git লগ --অনলাইন

এখানে, হেড নির্দেশ করছে ' ফাইল ৩ 'কমিট:

ধাপ 9: গিট রিসেট - মিশ্র কমান্ড ব্যবহার করুন

প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে আনতে এবং ওয়ার্কিং ডিরেক্টরি থেকে ফাইলগুলিকে মুছে না দিয়ে স্টেজিং এরিয়া থেকে মুছে ফেলুন, “চালনা করুন $ গিট রিসেট -মিশ্রিত ” কমিটের প্রয়োজনীয় প্রধান অবস্থান সহ কমান্ড:

$ git রিসেট --মিশ্রিত মাথা ~ 1

ধাপ 10: গিট স্ট্যাটাস চেক করুন

গিট সংগ্রহস্থলের স্থিতি পরীক্ষা করে নতুন যোগ করা পরিবর্তনগুলি দেখুন:

$ git অবস্থা

এটি লক্ষ্য করা যায় যে নির্দিষ্ট কমিট পরিবর্তনগুলি স্টেজিং এলাকা থেকে সরানো হয়েছে। যাইহোক, তারা কর্মক্ষেত্রে স্থাপন করা হয়:

ধাপ 11: গিট লগ চেক করুন

SHA হ্যাশ সহ গিট রিপোজিটরি রেফারেন্স লগ ইতিহাস পরীক্ষা করুন:

$ git লগ --অনলাইন

ধাপ 12: গিট রিসেট - হার্ড কমান্ড ব্যবহার করুন

গিট স্থানীয় ওয়ার্কিং ডিরেক্টরি থেকে যোগ করা পরিবর্তনগুলি সরাতে, 'চালনা করুন $ git রিসেট - কঠিন 'আদেশ:

$ git রিসেট -- কঠিন মাথা ~ 1

ধাপ 13: প্রত্যাবর্তিত হেড পয়েন্টার যাচাই করুন

HEAD পয়েন্টার যাচাই করতে, নির্দিষ্ট অবস্থানে ফিরে যান, 'চালান git লগ 'আদেশ:

$ git লগ --অনলাইন

নীচের আউটপুট দেখায় যে HEAD নির্দেশ করছে ' ফাইল 1 যোগ করা হয়েছে 'কমিট:

ধাপ 14: গিট স্ট্যাটাস চেক করুন

যোগ করা পরিবর্তনগুলি দেখতে, গিট স্থিতি পরীক্ষা করুন:

$ git অবস্থা

এটা দেখা যায় যে আমাদের কাছে 'এর কোন ট্র্যাক এবং মুলতুবি পরিবর্তন নেই File2.txt ' ফাইল। অতএব, File2.txt সম্পূর্ণরূপে সরানো হয়েছে:

ধাপ 15: সংগ্রহস্থল সামগ্রীর তালিকা যাচাই করুন

বিষয়বস্তুর সংগ্রহস্থল তালিকা যাচাই করতে, চালান “ ls 'আদেশ:

$ ls

আপনি দেখতে পাচ্ছেন, ' File2.txt বর্তমান ডিরেক্টরিতে ফাইলটি বিদ্যমান নেই:

আমরা গিট রিসেট -মিক্সড, -সফ্ট এবং -হার্ড বিকল্পগুলির মধ্যে পার্থক্য ব্যাখ্যা করেছি।

উপসংহার

দ্য ' git রিসেট ” কমান্ডটি পরিবর্তনগুলি পুনরায় সেট করতে, গিট সংগ্রহস্থলের ইতিহাস পরিবর্তন করতে এবং ভুলগুলি ঠিক করতে ব্যবহৃত হয়। দ্য ' git reset -soft ” কমান্ড ফাইলগুলি রাখে এবং গিট স্টেজিং এলাকায় প্রতিশ্রুতি পরিবর্তনগুলি ফেরত দেয়। বিপরীতে, ' গিট রিসেট -মিশ্রিত ” কমান্ড পরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে আনুন এবং ওয়ার্কিং ডিরেক্টরি থেকে মুছে না দিয়ে স্টেজিং সূচক থেকে ফাইলটি সরিয়ে দিন। সমস্ত পরিবর্তন মুছে ফেলতে এবং তাদের গিট ওয়ার্কিং এরিয়া থেকে সরাতে, “ git রিসেট - কঠিন ” কমান্ড ব্যবহার করা যেতে পারে। এই নিবন্ধটি গিট রিসেট -মিশ্রিত, -সফ্ট এবং -হার্ডের মধ্যে পার্থক্য চিত্রিত করেছে।