আমি জানি যে ফাইলগুলি কখন মুছে ফেলা হয় এবং গিটারগুলি পৃথক প্রতিশ্রুতিগুলি পরীক্ষা করতে সক্ষম হয় কোন ফাইলগুলি অপসারণ করা হয়েছে তা দেখতে, কিন্তু কোনও আদেশ আছে যা প্রতিলিপিটির জীবনকাল জুড়ে প্রতিটি মুছে ফেলা ফাইলের একটি তালিকা তৈরি করবে?
আমি জানি যে ফাইলগুলি কখন মুছে ফেলা হয় এবং গিটারগুলি পৃথক প্রতিশ্রুতিগুলি পরীক্ষা করতে সক্ষম হয় কোন ফাইলগুলি অপসারণ করা হয়েছে তা দেখতে, কিন্তু কোনও আদেশ আছে যা প্রতিলিপিটির জীবনকাল জুড়ে প্রতিটি মুছে ফেলা ফাইলের একটি তালিকা তৈরি করবে?
উত্তর:
git log --diff-filter=D --summary
গিট সংগ্রহস্থলের একটি মুছে ফেলা ফাইলটি সন্ধান এবং পুনরুদ্ধার দেখুন
কোন প্রতিশ্রুতিতে সেগুলি সরানো হয়েছে সে সম্পর্কে সমস্ত তথ্য আপনি যদি না চান তবে আপনি কেবল grep deleteসেখানে একটি যুক্ত করতে পারেন ।
git log --diff-filter=D --summary | grep delete
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep deleteকারণ যদি প্রতিশ্রুতি বার্তায় শব্দটি মুছতে থাকে তবে তাও নেওয়া হবে। grep 'delete mode'পরিবর্তে ব্যবহার করুন।
এটি আপনি যা চান তা করে, আমি মনে করি:
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
... যা আমি এই অন্যান্য উত্তর থেকে সরাসরি কম-বেশি নিয়েছি ।
যদি আপনি কেবল বর্তমানে মুছে ফেলা ফাইলগুলি দেখতে আগ্রহী হন তবে আপনি এটি ব্যবহার করতে পারেন:
git ls-files --deleted
যদি আপনি সেগুলি মুছে ফেলতে চান (যদি আপনি তাদের "গিট আরএম" ব্যবহার না করে মুছে ফেলে) পাইপ যা xargs git rm এর ফলস্বরূপ হয়
git ls-files --deleted | xargs git rm
git rm $(git ls-files --deleted)
এবং আপনি যদি কোনওভাবে ফলাফলকে সীমাবদ্ধ রাখতে চান তবে এখানে একটি দুর্দান্ত ফলাফল:
$ git log --diff-filter=D --summary | sed -n '/^commit/h;/\/some_dir\//{G;s/\ncommit \(.*\)/ \1/gp}'
delete mode 100644 blah/some_dir/file1 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file2 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file3 9c89b91d8df7c95c6043184154c476623414fcb7
আপনি যে ফাইলটি some_dirসংঘটিত হবে তার সাথে একত্রে সমস্ত ফাইল (সেড কমান্ড দেখুন) মুছে ফেলাবেন। যে কোনও সিড রেজেক্স করবে (আমি এটি মুছে ফেলা ফাইলের প্রকারগুলি ইত্যাদির জন্য ব্যবহার করি)
git log --diff-filter=D .
উইন্ডোজের যেহেতু কোনও grepকমান্ড নেই, পাওয়ার পাওয়ারে এটি আমার জন্য কাজ করেছে:
git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
Select-String?
মুছে ফেলা সমস্ত ফাইলকে কিছু_বাঞ্চে দেখান
git diff origin/master...origin/some_branch --name-status | grep ^D
অথবা
git diff origin/master...origin/some_branch --name-status --diff-filter=D
git diff origin/master...origin/some_branch --name-status | grep ^Dবা কিছু দরকারgit diff origin/master...origin/some_branch --name-status --diff-filter=D
এটি আপনাকে সমস্ত শাখায় মুছে ফেলা সমস্ত ফাইলের একটি তালিকা পাবে, যা তাদের পথ অনুসারে বাছাই করেছে:
git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt
MSysgit (2.6.1.windows.1) এ কাজ করে। দ্রষ্টব্য, আমাদের "মোড 100 মুছুন" দরকার কারণ গিট ফাইলগুলি মোড 100644 বা 100755 হিসাবে চালু হতে পারে।
git diff --name-status commit_hash।