একটি স্থানীয় ফাইল সিস্টেম থেকে মুছে ফেলা ছাড়া একটি Git ভাণ্ডার থেকে একটি ফাইল সরান



4 Answers

রেপো থেকে একটি সম্পূর্ণ ফোল্ডার মুছে ফেলার জন্য (যেমন রিশারপার ফাইলগুলি), এটি করুন:

git rm -r --cached folderName

আমি কিছু resharper ফাইল করেছি, এবং অন্যান্য প্রকল্প ব্যবহারকারীদের জন্য যারা অবিরত করতে চান না।

git repository remote-server delete-file git-rm

আমার প্রাথমিক কমিটিতে কিছু লগ ফাইল রয়েছে। আমি যোগ করেছি *log আমার .gitignore *log , এবং এখন আমি আমার সংগ্রহস্থল থেকে লগ ফাইল অপসারণ করতে চান।

git rm mylogfile.log

সংগ্রহস্থল থেকে একটি ফাইল মুছে ফেলবে, তবে এটি স্থানীয় ফাইল সিস্টেম থেকেও মুছে ফেলবে।

ফাইলটি আমার স্থানীয় কপি মুছে ফেলার পরে আমি কিভাবে এই ফাইলটি রেপো থেকে সরাতে পারি?




এছাড়াও, যদি আপনি সংবেদনশীল ডেটা (যেমন একটি পাসওয়ার্ড ধারণকারী ফাইল) সীমাবদ্ধ করেছেন, তবে আপনাকে এটি সম্পূর্ণরূপে সংগ্রহস্থলের ইতিহাস থেকে মুছে ফেলতে হবে। এখানে কীভাবে এটি করা যায় তা ব্যাখ্যা করে একটি গাইড: http://help.github.com/remove-sensitive-data/




আরো জেনেরিক সমাধান:

  1. সম্পাদনা। .gitignore ফাইল।

    ECHO mylogfile.log >> .gitignore

  2. সূচক থেকে সব আইটেম সরান।

    git rm -r -f --cached .

  3. সূচক পুনর্নির্মাণ।

    git add .

  4. নতুন কমিটি করুন

    git commit -m "Removed mylogfile.log"




উপরোক্ত উত্তর আমার জন্য কাজ করে না। আমি সব প্রতিশ্রুতিবদ্ধ ফাইল মুছে ফেলার জন্য ফিল্টার-শাখা ব্যবহার

একটি গিট রেপোজিটরি থেকে একটি ফাইল মুছে ফেলুন:

git filter-branch --tree-filter 'rm  file'

একটি গিট রিপোজিটরি থেকে একটি ফোল্ডার মুছে ফেলুন:

git filter-branch --tree-filter 'rm -rf directory'

এটি সমস্ত commits থেকে ডিরেক্টরি বা ফাইল মুছে ফেলা

আপনি ব্যবহার করে একটি কমিটি নির্দিষ্ট করতে পারেন:

git filter-branch --tree-filter 'rm -rf directory' HEAD

অথবা একটি পরিসীমা

git filter-branch --tree-filter 'rm -rf vendor/gems' t49dse..HEAD

রিমোট সবকিছু ধাক্কা দিতে, আপনি করতে পারেন:

git push origin master --force



Related