git - পূর্ববর্তী কমিটিতে ফিরে যাওয়ার জন্য আমি কীভাবে 'গিট রিসেট-হেয়ার হেড' ব্যবহার করব?




head git-reset (2)

সতর্কতা: git clean -f untracked ফাইলগুলি মুছে ফেলবে, অর্থাত তারা ভাল করে চলেছে কারণ সেগুলি সংগ্রহস্থলে সংরক্ষণ করা হয় না। আপনি সত্যিই এই কাজ করার আগে সব অট্যাকড ফাইল অপসারণ করতে চান তা নিশ্চিত করুন।

এই চেষ্টা করুন এবং git clean -f

git reset --hard হাড্ডা অট্যাকড হওয়া ফাইলগুলি সরাবে না, যেখানে git-clean ট্র্যাকড রুট ডিরেক্টরি থেকে যে কোনও ফাইলকে গিট ট্র্যাকিংয়ের অধীনে সরিয়ে দেবে না।

বিকল্প হিসাবে, @ পল ব্যাটস বলেছেন, আপনি এটি করতে পারেন (যদিও সতর্ক থাকুন - এটি সমস্ত অবহিত ফাইলগুলিও মুছে ফেলে)

  • git clean -df
  • git clean -xdf সতর্কতা! এই উপেক্ষা ফাইল মুছে ফেলা হবে

এই প্রশ্নটি ইতিমধ্যে একটি উত্তর আছে:

আমি জানি যে জিট ট্র্যাকের পরিবর্তনগুলি আমি আমার অ্যাপ্লিকেশনে তৈরি করেছি, এবং আমি তাদের পরিবর্তনগুলি না করা পর্যন্ত এটির উপর নজর রাখি, কিন্তু এখানে যেখানে আমি লুকিয়ে থাকি:

আমি পূর্ববর্তী কমিটিতে ফিরে যেতে চাই যখন আমি ব্যবহার করি:

git reset --hard HEAD

এবং গিট ফিরে:

HEAD is now at 820f417 micro

তাহলে কিভাবে আমি আমার হার্ড ড্রাইভে ফাইলগুলিকে আগের বারে ফিরিয়ে আনব?

আমার পরবর্তী পদক্ষেপ ছিল:

git add .
git commit -m "revert"

কিন্তু আমার হার্ড ড্রাইভে কোনও ফাইল পরিবর্তন হয়নি ...

আমি কি সঠিক / ভুল করছি?


প্রথমত, git reset --hard এটি একটি সম্ভাব্য বিপজ্জনক কমান্ড, এটি আপনার সমস্ত অস্বাভাবিক পরিবর্তনগুলি ছুঁড়ে ফেলার পরে এটি সর্বদা মূল্যবান। নিরাপত্তার জন্য, আপনি সবসময় এটি পরীক্ষা করার আগে git status আউটপুট পরিষ্কার (অর্থাৎ, খালি) পরীক্ষা করা উচিত।

প্রাথমিকভাবে আপনি নিম্নলিখিত বলে:

তাই আমি জানি যে জিট ট্র্যাক পরিবর্তনগুলি আমি আমার অ্যাপ্লিকেশনে তৈরি করেছি, এবং এটি পরিবর্তন করে না যতক্ষণ না আমি পরিবর্তনগুলি সম্পাদন করি, কিন্তু এখানে যেখানে আমি লুকিয়ে থাকি:

এটা ভুল। Git কেবল তখনই ফাইলগুলির অবস্থা রেকর্ড করে যখন আপনি তাদের মঞ্চে ( git add ) বা যখন আপনি একটি কমিটি তৈরি করেন। একবার আপনি কোনও প্রকল্প তৈরি করেছেন যা কোনও নির্দিষ্ট অবস্থায় আপনার প্রকল্প ফাইলগুলি আছে, তারা খুব নিরাপদ, কিন্তু তারপরে Git এর প্রকৃতপক্ষে আপনার ফাইলগুলিতে "ট্র্যাকিং পরিবর্তনগুলি" নয়। (উদাহরণস্বরূপ, যদি আপনি ফাইলটির একটি নতুন সংস্করণ পর্যায়ক্রমে git add করেন তবে স্টেজিং ক্ষেত্রে সেই ফাইলটির পূর্ববর্তী সংস্করণটি ওভাররাইট করে।)

আপনার প্রশ্নের পরে আপনি নিম্নলিখিত জিজ্ঞাসা করতে যান:

যখন আমি পূর্ববর্তী কমিটিতে ফিরে যেতে চাই তখন আমি ব্যবহার করি: জিট রিসেট - হেড এবং হেড রিটার্ন: HEAD এখন 820f417 মাইক্রোতে

তাহলে কিভাবে আমি আমার হার্ড ড্রাইভে ফাইলগুলিকে আগের বারে ফিরিয়ে আনব?

আপনি যদি git reset --hard <SOME-COMMIT> তারপর GIT করবে:

  • আপনার সাম্প্রতিক শাখাটি (সাধারণত master ) আবার <SOME-COMMIT> এ নির্দেশ <SOME-COMMIT>
  • তারপরে আপনার কাজের গাছ এবং সূচী ("স্টেজিং এলাকা") তে ফাইলগুলিকে <SOME-COMMIT> এ যে সংস্করণগুলি করা হয়েছে সেগুলি তৈরি <SOME-COMMIT>

HEAD আপনার বর্তমান শাখার (বা বর্তমান কমিট) git reset --hard HEAD , তাই যে সমস্ত git reset --hard HEAD করবে তা আপনার কোন অস্বাভাবিক পরিবর্তনগুলি নিক্ষেপ করা।

সুতরাং, অনুমান করুন যে আপনি যে ভাল f414f31 ফিরে যেতে চান তা হল f414f31 । (আপনি git log বা কোনও ইতিহাস ব্রাউজারের মাধ্যমে এটি খুঁজে পেতে পারেন।) আপনি যা করতে চান ঠিক তার উপর নির্ভর করে আপনার কয়েকটি বিকল্প রয়েছে:

  • পরিবর্তে পুরানো কমিট নির্দেশ করতে আপনার বর্তমান শাখা পরিবর্তন করুন। আপনি কি git reset --hard f414f31 দিয়ে এটি করতে পারেন - git reset --hard f414f31 । যাইহোক, এটি আপনার শাখার ইতিহাস পুনর্বিবেচনা করছে, তাই আপনি যদি এই শাখাটি কারো সাথে ভাগ করে থাকেন তবে আপনাকে এটিকে এড়াতে হবে। এছাড়াও, f414f31 পরে আপনি যা করেছেন তা আপনার master শাখার ইতিহাসে আর থাকবে না।
  • একটি নতুন f414f31 তৈরি করুন যা f414f31 হিসাবে প্রকল্পটির একই অবস্থা প্রতিনিধিত্ব করে, কিন্তু ইতিহাসে এটি যোগ করে, তাই আপনি কোনও ইতিহাস হারান না। আপনি এই উত্তরটিতে প্রস্তাবিত পদক্ষেপগুলি ব্যবহার করে এটি করতে পারেন - এমন কিছু:

    git reset --hard f414f31
    git reset --soft [email protected]{1}
    git commit -m "Reverting to the state of the project at f414f31"
    





git-revert