"গিট অ্যাড <দির>" পূর্বাবস্থায় ফিরে আসবেন?


186

আমি ভুল করে "git add dir" কমান্ডটি ব্যবহার করে ফাইলগুলি যুক্ত করেছি। আমি এখনও "গিট কমিট" চালাইনি। প্রতিশ্রুতি থেকে এই দির এবং এর মধ্যে থাকা সমস্ত কিছু সরিয়ে দেওয়ার কোনও উপায় আছে কি?

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


6
git reset <path>সেই পথটির জন্য সূচকটি আপডেট করে যাতে এটি মেলে HEAD(বর্তমান প্রতিশ্রুতি)। এটি কার্যকারী গাছকে স্পর্শ করে না।
ক্যাসাবেল

উত্তর:


279

সূচী থেকে ডিরেক্টরিটি এবং এর ভিতরে থাকা সমস্ত কিছুই মুছে ফেলতে,

git rm --cached -r dir

--cachedস্যুইচটি কেবল সূচকগুলিতে git rmকাজ করে এবং কার্যকরী অনুলিপিটিকে স্পর্শ করে না। -rসুইচ এটা recursive করে তোলে।


12
"সূচী থেকে সম্পূর্ণ স্টেজড ডিরেক্টরিটি অপসারণ করা" গিট কমান্ডের কিছুটা ভাল ব্যাখ্যা হতে পারে, যেহেতু আমার মতো গিট শুরুর জন্য কমান্ডটি দেখতে অনেকটা দেখতে লাগে যদি এটি ফাইল সিস্টেমের ডিরেক্টরিকেও মুছতে পারে। শুধু স্বাদের বিষয়।
সাসচা গটফ্রাইড

1
এজন্য আমি --cachedস্যুইচটি বোল্ড করেছিলাম । যাইহোক, আমি উত্তরটি সম্পাদন করেছি যোগ্যতার জন্য যে এটি কেবল সূচকগুলিতে প্রযোজ্য।
অ্যারিস্টটল পাগাল্টজিস

@ সাশাগোটফ্রিড স্পষ্টতার জন্য ধন্যবাদ, আমি সম্পাদনা করার পরেও প্রথমে ভয় পেয়েছিলাম তবে আপনার মন্তব্য এটি পরিষ্কার করে দিয়েছে :)
ম্যাক্স ভন হিপ্পেল

আমি প্রায় আমার পুরো ফোল্ডারটি মুছে ফেলেছি: এস এর পরে ... একটি git reset HEAD folderনির্দিষ্ট সবকিছু করে ... তবে এটি করার আগে একটি করুন git status folder, এবং নিশ্চিত করুন যে এটি বলছে যে এটি
folder

21

আপনি ব্যবহার করতে চাইবেন git rm --cached -r <dir>। এই কমান্ড সূচী থেকে স্টেজড ডিরেক্টরি সামগ্রীগুলি সরিয়ে ফেলবে।

ডিরেক্টরিটি যদি ইতিমধ্যে ট্র্যাক করা থাকে তবে আপনাকে ম্যানুয়ালি নতুন এবং পুরানো ফাইলগুলি সন্ধান করতে হবে এবং সেগুলি আনস্টেজ করতে হবে ...

সম্ভবত git reset <dir>ডিরেক্টরিটির ভিতরে বিদ্যমান (এবং ইতিমধ্যে ট্র্যাক করা) ফাইলগুলি পুনরায় সেট করতে তার পরে চালান run


2019 আপডেট করুন:

সহজভাবে চালান git reset directory, এটি নতুনভাবে যুক্ত সমস্ত ফাইল আনস্টেজ করে দেবে।


নয় git reset <dir>একা কি যথেষ্ট?
কলাচ

@ বনানাচ আমি কেবল চেষ্টা করেছি এবং দেখে মনে হচ্ছে, হ্যাঁ, এটিও git reset <dir>কার্যকর হবে। উত্তরটি ২০১১ সালের, সুতরাং এটি 8 বছর আগে ইতিমধ্যে কাজ করেছে কিনা তা আমি নিশ্চিত নই। আমি উত্তর আপডেট করব। ইঙ্গিতটির জন্য ধন্যবাদ!
নিটল


11

আনস্টেজ ডিরেক্টরি

$ git reset <dir>

আমি যে সমস্ত ফাইল এবং ফোল্ডার নিয়েছি তা আনস্টেজ করুন:

$ git add <dir>

আনস্টেজড ডিরেক্টরি নিশ্চিত করুন

মঞ্চ থেকে ডিরেক্টরি এবং এর বিষয়বস্তু অপসারণ নিশ্চিত করার জন্য (যেমন "প্রতিশ্রুতিবদ্ধ হতে হবে পরিবর্তনগুলি"), নীচে চালনা করুন:

$ git status

অথবা

$ git diff --staged --name-only 

পূর্বে মঞ্চস্থ হওয়া ফোল্ডার বা ফাইলগুলির কোনওটিই মঞ্চস্থ নয় তা নিশ্চিত করতে।


2

একটি স্টেজযুক্ত ফাইল / ফোল্ডার সরানোর জন্য একটি সাধারণ কমান্ড, যেটি এখনও প্রতিশ্রুতিবদ্ধ নয় - তা git restore --staged <dir>

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.