git - আমি কিভাবে গিট repo থেকে একটি ফাইল মুছে ফেলতে পারি?




git-rm (12)

  1. প্রথম, স্থানীয় সংগ্রহস্থল থেকে ফাইল সরান।

    git rm -r ফাইলের নাম

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

    গিট আরএম - ক্যাশে ফাইল নাম

  2. দ্বিতীয়ত, Commit স্থানীয় সংগ্রহস্থল মধ্যে পরিবর্তন।

    git commit -m "unwanted files or some inline comments"   
    
  3. অবশেষে, রিমোট রিপোজিটরিতে স্থানীয় পরিবর্তনগুলি আপডেট / push করুন।

    git push 
    

আমি repo git "file1.txt" নামের একটি ফাইল যুক্ত করেছি। তারপরে আমি এটি প্রতিশ্রুতিবদ্ধ করেছি, dir1 এবং dir2 নামে একটি দম্পতি ডিরেক্টরি যোগ dir2 , এবং এটি repo git করার জন্য প্রতিশ্রুতিবদ্ধ।

এখন বর্তমান "file1.txt" , dir1 এবং dir2
কিভাবে আমি dir1 এবং dir2 মত অন্যদের প্রভাবিত ছাড়া "file1.txt" মুছে ফেলতে dir2 ?


আপনার ফাইল ইতিমধ্যে GitHub এ থাকলে, আপনি এখন (জুলাই ২013) সরাসরি ওয়েব GUI থেকে এটি মুছে ফেলতে পারেন !

কেবল আপনার রিপোজিটরিতে যেকোনো ফাইল দেখুন, শীর্ষে থাকা ট্র্যাশ ক্যান আইকনে ক্লিক করুন এবং অন্য যেকোনো ওয়েব-ভিত্তিক সম্পাদনাের মতো অপসারণ সরান।

(কমিটি সেই ফাইলটি মুছে ফেলার প্রতিফলন করবে):

এবং ঠিক যেমন, এটা চলে গেছে।

এই বৈশিষ্ট্যগুলির সহায়তার জন্য, ফাইলগুলি creating , moving , renaming এবং deleting আমাদের সহায়তা নিবন্ধগুলি পড়তে ভুলবেন না।

দ্রষ্টব্য: যেহেতু এটি একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা, তাই যদি আপনি পরে ফাইলটি পুনরুদ্ধার করতে চান তবে গিট সর্বদা আপনার ব্যাক আছে।

শেষ বাক্য মানে যে মুছে ফেলা ফাইলটি এখনও ইতিহাসের অংশ, এবং আপনি এটি সহজে পুনরুদ্ধার করতে পারেন (কিন্তু এখনও GitHub ওয়েব ইন্টারফেসের মাধ্যমে):

" একটি গিট রেপোতে একটি মুছে ফেলা ফাইল পুনরুদ্ধার করুন " দেখুন।


আপনি যদি আপনার স্থানীয় রেপোতে ফাইল না করে তবে জিট রেপোতে ফাইল না করে তবে কেবল ওয়েব ইন্টারফেসের মাধ্যমে গিট রেপোতে ফাইলটি খুলুন এবং ইন্টারফেসের ডান কোণায় মুছুন বোতামটি খুঁজুন। ইন্টারফেস মুছে ফেলার অপশন দেখতে এখানে ক্লিক করুন


আপনি যদি রেপো থেকে ফাইল মুছতে চান, তবে এটি ফাইল সিস্টেমে ছেড়ে যান (অচিহ্নিত হবে):

[email protected]:~/temp> git rm --cached file1.txt
[email protected]:~/temp> git commit -m "remove file1.txt from the repo"

আপনি যদি রেপো থেকে ফাইল ফাইলটি মুছে ফেলতে চান তবে দুটি বিকল্প রয়েছে:

  1. যদি সূচীর সূচীগুলিতে কোনও পরিবর্তন ঘটে না তবে:

    [email protected]:~/temp> git rm file1.txt
    [email protected]:~/temp> git commit -m "remove file1.txt"
    
  2. যদি ইনডেক্সে ফাইল পরিবর্তিত হয় তবে:

    [email protected]:~/temp> git rm -f file1.txt
    [email protected]:~/temp> git commit -m "remove file1.txt"
    

আমার ক্ষেত্রে আমি কয়েকটি কাজ করার পর জিতুবুতে ফাইলটি মুছে ফেলার চেষ্টা করেছি কিন্তু কম্পিউটারে সংরক্ষণ করি

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch file_name_with_path' HEAD
git push --force -u origin master

এবং পরে এই ফাইল উপেক্ষা করা হয়


আমি প্রস্তাবিত অনেকগুলি বিকল্প চেষ্টা করেছি এবং কেউ কাজ করার জন্য হাজির হয়নি (আমি বিভিন্ন সমস্যা তালিকাভুক্ত করব না)। আমি কাজ শেষ, যা কাজ, সহজ এবং স্বজ্ঞাত (আমার) ছিল:

  1. অন্য কোথাও স্থানীয় repo সরানো
  2. মাস্টার থেকে আপনার স্থানীয় ড্রাইভ পুনরায় repo ক্লোন
  3. আপনার আসল অনুলিপি থেকে ফাইলগুলি / ফোল্ডারটিকে # 1 এ ফিরে # 2 থেকে নতুন ক্লোনটিতে অনুলিপি করুন
  4. সমস্যাটি বড় ফাইলটি হয় না বা। gitignore ফাইলে বাদ দেওয়া হয়েছে তা নিশ্চিত করুন
  5. স্বাভাবিক গিট যোগ করুন / গিট কমিট / গিট ধাক্কা না

আরো সাধারণভাবে, git help এইরকম কমপক্ষে সহজ প্রশ্নগুলিতে git help করবে:

[email protected]:/media/Kindle/documents$ git help
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]

The most commonly used git commands are:
   add        Add file contents to the index
   :
   rm         Remove files from the working tree and from the index

উইন্ডোজ অ্যাপ্লিকেশনের জন্য আপনার GitHub থাকলে, আপনি 5 টি সহজ ধাপে একটি ফাইল মুছতে পারেন:

  • সিঙ্ক ক্লিক করুন।
  • ফাইলটি কোথায় অবস্থিত সেই ডিরেক্টরিতে ক্লিক করুন এবং আপনার সর্বশেষ সংস্করণটি নির্বাচন করুন।
  • সরঞ্জামগুলিতে ক্লিক করুন এবং "এখানে একটি শেল খুলুন" নির্বাচন করুন।
  • শেলটিতে, টাইপ করুন: "rm {filename}" এবং এন্টার চাপুন।
  • পরিবর্তন এবং resync কমিট।

এই আমার জন্য কাজ যে একমাত্র বিকল্প।

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch *.sql'

নোট: আপনার ফাইলের নাম বা ফাইলের ধরন সহ * .sql প্রতিস্থাপন করুন। খুব সতর্ক থাকুন কারণ এই প্রতিটি কমিটি মাধ্যমে যেতে হবে এবং এই ফাইল টাইপ আউট চেরা।


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

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

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

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


git rm ব্যবহার করুন:

git rm file1.txt
git commit -m "remove file1.txt"

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

git rm --cached file1.txt
git commit -m "remove file1.txt"

এবং দূরবর্তী repo পরিবর্তন ধাক্কা

git push origin branch_name  

git rm file.txt repo থেকে ফাইলটি মুছে ফেলবে তবে এটি স্থানীয় ফাইল সিস্টেম থেকে মুছে ফেলবে।

ফাইলটি রিপো থেকে মুছে ফেলার জন্য এবং স্থানীয় ফাইল সিস্টেম ব্যবহার থেকে মুছে ফেলতে:
git rm --cached file.txt

নীচের সঠিক পরিস্থিতিটি যেখানে আমি আমার ব্যবসার ওয়েবসাইটের সংস্করণ নিয়ন্ত্রণ বজায় রাখার জন্য জিটি ব্যবহার করি, কিন্তু "মিকি" ডিরেক্টরি একটি সিএডি ডেভেলপারের সাথে ব্যক্তিগত সামগ্রী ভাগ করার জন্য একটি tmp ফোল্ডার ছিল। যখন তাকে বিশাল ফাইলের প্রয়োজন হয়, তখন আমি একটি ব্যক্তিগত, আনলিঙ্কড ডিরেক্টরি তৈরি করি এবং ব্রাউজারের মাধ্যমে তার জন্য ফাইলগুলি ftpd করি। আমি এই কাজটি ভুলে গেছি, পরে আমি ওয়েবসাইটের বেস ডিরেক্টরি থেকে একটি git add -A সম্পাদন করেছি। তারপরে, git status নতুন ফাইলগুলি সম্পাদন করার প্রয়োজন দেখায়। এখন আমি তাদের গিট এর ট্র্যাকিং এবং সংস্করণ নিয়ন্ত্রণ থেকে মুছে ফেলার প্রয়োজন ...

নীচের নমুনা আউটপুট আমার কি ঘটেছে, যেখানে আমি অজানাভাবে .003 ফাইল মুছে ফেলা। সৌভাগ্যক্রমে, আমি স্থানীয় প্রতিলিপিটির সাথে .003 তে কী .003 তা আমি যত্ন করি না, তবে অন্য কিছু পরিবর্তিত ফাইলগুলি আমি কেবলমাত্র ওয়েবসাইটে তৈরি করেছি এবং স্থানীয় ফাইল সিস্টেমে মোছার জন্য মহাকাব্য হবে! "স্থানীয় ফাইল সিস্টেম" = লাইভ ওয়েবসাইট (একটি দুর্দান্ত অনুশীলন নয়, কিন্তু বাস্তবতা)

[~/www]$ git rm shop/mickey/mtt_flange_SCN.7z.003
error: 'shop/mickey/mtt_flange_SCN.7z.003' has local modifications
(use --cached to keep the file, or -f to force removal)
[~/www]$ git rm -f shop/mickey/mtt_flange_SCN.7z.003
rm 'shop/mickey/mtt_flange_SCN.7z.003'
[~/www]$ 
[~/www]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    shop/mickey/mtt_flange_SCN.7z.003
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   shop/mickey/mtt_flange_SCN.7z.001
#   modified:   shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ ls shop/mickey/mtt_flange_S*
shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ 
[~/www]$ 
[~/www]$ git rm --cached shop/mickey/mtt_flange_SCN.7z.002
rm 'shop/mickey/mtt_flange_SCN.7z.002'
[~/www]$ ls shop/mickey/mtt_flange_S*
shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ 
[~/www]$ 
[~/www]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    shop/mickey/mtt_flange_SCN.7z.002
#   deleted:    shop/mickey/mtt_flange_SCN.7z.003
#
# Changed but not updated:
#   modified:   shop/mickey/mtt_flange_SCN.7z.001
[~/www]$

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






git-rm