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





git-commit git-add git-rm (25)


আমি তারিখ পাওয়া সবচেয়ে নমনীয় সমাধান হয়

git cola

এবং আমি মুছতে চান সব মুছে ফেলা ফাইল নির্বাচন করুন।

(নোট আমি সাধারণত গিট মধ্যে কমান্ডলাইন সবকিছু করতে, কিন্তু জিট হ্যান্ডলগুলি একটি বিট সরল ফাইল সরানো)।

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

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

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

git rm file1 file2 file3 file4

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




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

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




git rm test.txt

আগে বা পরে আপনি প্রকৃত ফাইল মুছে ফেলা।




যে সহজ সমাধান আমার জন্য সূক্ষ্ম কাজ করে:

git rm $(git ls-files --deleted)



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

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

আপনার POSIX রূপের উপর নির্ভর করে, আপনাকে xargs -0 -r ব্যবহার করতে হতে পারে: এটি পাইপড নুল সামগ্রী যখন xargs gracefully প্রস্থান করতে পারে।

সম্পাদনা করুন: - --cached এবং - মুছে ফেলা পতাকাগুলি ইতোমধ্যে মুছে ফেলা না হওয়া ফাইলগুলি হঠাৎ করে মুছে ফেলার বিরুদ্ধে সুরক্ষার জন্য ব্যবহৃত হয়।




আপনি মুছে ফেলা ফাইল শুধুমাত্র মঞ্চে git add -u <filenames> ব্যবহার করতে পারেন।

উদাহরণস্বরূপ, যদি আপনি ফাইল templates/*.tpl মুছে templates/*.tpl , তবে git add -u templates/*.tpl

-u ফাইলটি রেপোজিটরিতে বিদ্যমান ফাইলগুলি উল্লেখ করার জন্য প্রয়োজনীয় কিন্তু কার্যকারী ডিরেক্টরিতে আর বিদ্যমান নেই। অন্যথা, git add ডিফল্টটি ডিরেক্টরী ডিরেক্টরিগুলির ফাইলগুলি সন্ধান করা এবং যদি আপনি সেখানে মুছে ফেলা ফাইলগুলি নির্দিষ্ট করেন তবে এটি সেগুলি খুঁজে পাবে না।




চাক্ষুষ স্টুডিও প্রকল্পের জন্য

'git ls-files --deleted | sed 's/(.*)/"\1"/'| xargs git rm' 

মুছে ফেলা ফাইল পাথ স্থান আছে যখন যা দরকারী




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

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

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

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




git ls-files --deleted | xargs git rm 

শুধুমাত্র মুছে ফেলা ফাইল যোগ করার জন্য সর্বোত্তম বিকল্প।

এখানে কিছু অন্যান্য অপশন।

git add .  => Add all (tracked and modified)/new files in the working tree.

git add -u => Add all modified/removed files which are tracked.

git add -A => Add all (tracked and modified)/(tracked and removed)/new files in the working tree.

git commit -a -m "commit message" - Add and commit modified/removed files which are tracked.



উল্লেখ্য যে

git add -u

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

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

git reset HEAD <path>

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




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

git add -u

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

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

git commit -a

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

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

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



গিট 1.x জন্য

$ git add -u

এটি স্বয়ংক্রিয়ভাবে ট্র্যাক করা ফাইলগুলির মঞ্চে গিটকে বলে - পূর্বে ট্র্যাক করা ফাইলগুলি মুছে ফেলার সহ।

গিট 2.0 জন্য

আপনার পুরো কাজ গাছ মঞ্চে:

$ git add -u :/

শুধু বর্তমান পথ মঞ্চে:

$ git add -u .



git commit -m 'commit msg' $(git ls-files --deleted)

ফাইলটি মুছে ফেলার পরে এটি আমার জন্য কাজ করে।




প্রকৃতপক্ষে কোন কমান্ডটি চালানো হচ্ছে তা দেখতে -t ব্যবহার করুন

আমি শুধু একই কাজ Virender উত্তর tweaked:

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



নিম্নলিখিত কাজ করবে, এমনকি যদি আপনার কাছে প্রক্রিয়া করার জন্য প্রচুর ফাইল থাকে:

git ls-files --deleted | xargs git rm

আপনি সম্ভবত একটি মন্তব্য করতে চাইবেন।

বিস্তারিত জানার জন্য, দরকারী গিট স্ক্রিপ্ট




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

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

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



কিছুটা এইরকম

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

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




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

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

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




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

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

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

git rma



কমান্ড rm-all হিসাবে মুছে ফেলা ফাইল স্টেজিং জন্য সিস্টেম উপনাম যোগ করা

ইউনিক্স alias rm-all='git rm $(git ls-files --deleted)'

উইন্ডোজ doskey rm-all=bash -c "git rm $(git ls-files --deleted)"

বিঃদ্রঃ

উইন্ডোজ ইনস্টল করা bash ইনস্টল করা প্রয়োজন।




এটি সত্যিই গুরুত্বপূর্ণ নয়, তবে আমি নির্বাচিত উত্তরটি থেকে ভিন্নমত পোষণ করছি:

git add -u 

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

git rm $(git ls-files --deleted)

অন্যদিকে শুধুমাত্র ট্র্যাক করা মুছে ফেলা ফাইল rm হবে।

তাই আমার দৃষ্টিতে দ্বিতীয়টি ভাল বিকল্প।




আপনি সম্ভবত খুঁজছেন- A:

git add -A

এটি git add -u অনুরূপ, তবে নতুন ফাইল যোগ করে। এটি প্রায় এইচজি এর addremove কমান্ড সমতুল্য (যদিও পদক্ষেপ সনাক্তকরণ স্বয়ংক্রিয়)।




তুমি ব্যবহার করতে পার

git add -u

স্টেজিং এলাকায় মুছে ফেলা ফাইল যোগ করার জন্য, তারপর তাদের প্রতিশ্রুতিবদ্ধ

git commit -m "Deleted files manually"



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

-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"



একটি নির্দিষ্ট ফাইল মুছে ফেলার জন্য

গিট আরএম ফাইলনাম

একক শট মধ্যে recursively একটি ডিরেক্টরি থেকে সব untracked ফাইল সাফ করুন

গিট পরিষ্কার-FDX





git git-commit git-add git-rm