git একটি গিট রেপো থেকে একাধিক ফাইল সরানো যা ইতোমধ্যে ডিস্ক থেকে মুছে ফেলা হয়েছে





14 Answers

git ls-files --deleted -z | xargs -0 git rm 

আপনি যা খুঁজছেন তা হতে পারে .. এটা আমার জন্য কাজ করে ..

git git-commit git-add git-rm

আমার একটি গিট রেপো আছে যে আমি rm ( git rm না ) ব্যবহার করে চারটি ফাইল মুছে ফেলেছি, এবং আমার গিট স্ট্যাটাস এই রকম দেখাচ্ছে:

#    deleted:    file1.txt
#    deleted:    file2.txt
#    deleted:    file3.txt
#    deleted:    file4.txt

কিভাবে আমি নিজে থেকে এই ফাইলগুলি সরাতে এবং এই মতো প্রতিটি ফাইল যুক্ত না করে গিট থেকে এই ফাইলগুলি সরাতে পারি:

git rm file1 file2 file3 file4

আদর্শভাবে, আমি এমন কিছু খুঁজছি যা একইভাবে কাজ করে যা git add . যদি, যে সম্ভব।




আপনি সহজভাবে চালানো হলে:

git add -u

আপনি যে ফাইলগুলি মুছেছেন সেগুলি আসলে পরবর্তী কমিটির অংশ হওয়া উচিত তা জানতে git তার সূচী আপডেট করবে। তারপর আপনি যে পরিবর্তন চেক করতে "গিট কমিট" চালাতে পারেন।

অথবা, যদি আপনি চালান:

git commit -a

এটি স্বয়ংক্রিয়ভাবে এই পরিবর্তনগুলি গ্রহণ করবে (এবং অন্য কোনও) এবং তাদের প্রতিশ্রুতিবদ্ধ করবে।

আপডেট : আপনি শুধুমাত্র মুছে ফেলা ফাইল যোগ করতে চান, তাহলে চেষ্টা করুন:

git ls-files --deleted -z | xargs -0 git rm
git commit



শুধুমাত্র মুছে ফেলা ফাইল মঞ্চে:

for x in $(git status | grep deleted | awk '{print $2}'); do git rm $x; done

অথবা (xargs উপায়):

git status | awk '/deleted/ {print $2}' | xargs git rm

আপনি সুবিধাজনক পরে ব্যবহারের জন্য আপনার পছন্দের কমান্ড সেট alias করতে পারেন।




'--All' বা '--update' বিকল্পগুলির সাহায্যে জিট-অ্যাড ব্যবহার করে আপনি আপনার চেয়ে বেশি পেতে পারেন। নতুন এবং / অথবা সংশোধিত ফাইল সূচী যোগ করা হবে। আমি অন্যান্য ফাইল স্পর্শ ছাড়াই গিট থেকে মুছে ফেলা ফাইল মুছে ফেলতে চান যখন জন্য একটি bash ওরফে সেটআপ আছে:

alias grma='git ls-files --deleted -z | xargs -0 git rm'

ফাইল সিস্টেম থেকে সরানো সমস্ত ফাইল মুছে ফেলা হিসাবে সূচী যোগ করা হয়।




যদি এটি শুধুমাত্র পরিবর্তন, আপনি কেবল করতে পারেন

git commit -a

সব পরিবর্তন করতে। যে মুছে ফেলা ফাইল অন্তর্ভুক্ত করা হবে।




গিট অ্যাড-ইউ

-u --update শুধুমাত্র কাজের গাছের পরিবর্তে সূচীর মধ্যে ইতিমধ্যে ট্র্যাক করা ফাইলগুলির বিরুদ্ধে মেলে। তার মানে এটি নতুন ফাইলগুলি কখনও মজুত করবে না, তবে এটি ট্র্যাক করা ফাইলগুলির পরিবর্তিত নতুন সামগ্রীগুলি মজুত করবে এবং এটি যদি কাজকারী গাছের সংশ্লিষ্ট ফাইলগুলি সরানো হয়েছে তবে এটি সূচী থেকে ফাইলগুলি সরিয়ে দেবে।

যদি প্রদত্ত না হয়, তবে "ডিফল্ট"। অন্য কথায়, বর্তমান ডিরেক্টরি এবং এর সাবডিরেক্টরিগুলিতে সমস্ত ট্র্যাককৃত ফাইল আপডেট করুন।




আপনি যদি আপনার .gitconfig এটি যোগ করতে চান তবে এটি করুন:

[alias]
  rma = !git ls-files --deleted -z | xargs -0 git rm

তারপরে আপনাকে যা করতে হবে তা হল:

git rma



এটা চেষ্টা করুন।

-a
--all
Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are not affected.

git add . && git commit -m -a "Your commit"

অথবা

git add --all && git commit -m "Your commit"



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

জেরেমি এর উত্তর বন্ধ কাজ, এই আমি কি পেয়েছিলাম:

git status |  sed -s "s/^.*deleted: //" | grep "\(\#\|commit\)" -v | xargs git rm
  1. ফাইলের অবস্থা পান।
  2. মুছে ফেলা ফাইলের জন্য, ফাইলের নাম আলাদা করুন।
  3. #S এর সাথে শুরু হওয়া সমস্ত লাইনগুলি মুছে ফেলুন, সেইসাথে একটি স্ট্যাটাস লাইন যা এতে "মুছে ফেলা" শব্দটি সরান; আমি এটা ঠিক ছিল না মনে রাখবেন, ঠিক আছে, এবং এটি আর নেই, তাই আপনি বিভিন্ন পরিস্থিতিতে জন্য এটি সংশোধন করতে হতে পারে। আমি মনে করি এক্সপ্রেশনগুলির গোষ্ঠীটি একটি GNU- নির্দিষ্ট বৈশিষ্ট্য হতে পারে, তাই যদি আপনি gnutils ব্যবহার না করেন তবে আপনাকে একাধিক grep -v লাইন যোগ করতে হতে পারে।
  4. git rm ফাইল পাস করুন।

এখন একটি শেল উপনাম এই স্টিকিং ...




উল্লেখ্য যে

git add -u

মুছে ফেলার জন্য সরানো ফাইলগুলি পর্যায়ক্রমে, কিন্তু আপডেটের জন্যও সংশোধিত ফাইলগুলি।

আপনি করতে পারেন সংশোধিত ফাইল unstage করতে

git reset HEAD <path>

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




আমি একই এবং ব্যবহৃত গিট gui "মঞ্চ পরিবর্তন" বাটন প্রয়োজন। এটা সব যোগ করে।

এবং "মঞ্চ পরিবর্তিত" পরে আমি "কমিট" তৈরি ...

তাই আমার কাজ ডিরেক্টরি আবার পরিষ্কার করা হয়।




কিছুটা এইরকম

git status | sed -s "s/^.*deleted: //" | xargs git rm 

এটা করতে পারে।




(এখনো অন্য বৈচিত্র)

আমি সব ডিস্ক ফাইল থেকে মুছে ফেলা সব মুছে ফেলতে চেয়েছিলেন কিন্তু এক নির্দিষ্ট ফোল্ডার থেকে, অন্য ফোল্ডারগুলি অপঠিত রেখে। নিম্নলিখিত আমার জন্য কাজ করেছেন:

git ls-files --deleted  | grep <folder-name> | xargs git rm



git rm $(git ls-files -d)

git ls-files কমান্ড দ্বারা তালিকাভুক্ত সমস্ত ফাইল git ls-files (-ড শুধুমাত্র মুছে ফেলা ফাইল দেখান)। ফাইলের নাম বা পাথের স্পেস সহ ফাইলগুলির জন্য কাজ করে না, তবে মনে রাখা সহজ






Related