গিট সংগ্রহস্থল থেকে কীভাবে আমি একটি ফাইল মুছতে পারি?


1922

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

এখন বর্তমান সংগ্রহস্থলের হয়েছে "file1.txt", dir1এবং dir2। আমি কীভাবে এবং "file1.txt"অন্যকে প্রভাবিত না করে মুছতে পারি ?dir1dir2


85
git rmসঠিক উত্তর, তবে মনে রাখবেন ফাইলটি ইতিহাসে এখনও থাকবে। যদি আপনি কোনও ফাইল সরিয়ে নিতে চান কারণ এতে সংবেদনশীল তথ্য ছিল, আপনাকে আরও কঠোর কিছু করতে হবে। (ইতিহাসের পরিবর্তন, বিশেষত আপনি ইতিমধ্যে যে বিষয়বস্তু ইতিমধ্যে ধাক্কা দিয়েছেন তা কঠোর পদক্ষেপ, এবং সম্ভব হলে এড়ানো উচিত))
কিথ থম্পসন

8
দ্রষ্টব্য: গিটহাব-এ, আপনি এখন ওয়েব ইন্টারফেস থেকে সরাসরি কোনও ফাইল মুছতে পারেন (রেপো ক্লোন না করেও)। দেখুন নিচের আমার উত্তর
ভনসি

4
@ কিথথম্পসন যদি আমি মরিয়া হয়ে এটি করতে চাই তবে কী পদক্ষেপগুলি হতে পারে?
lessthanl0l


সম্পর্কিত সহায়তা. github.com/articles/…
ট্রেভর বয়ড স্মিথ

উত্তর:


3214

ব্যবহার git rm

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

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

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

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

এবং দূরবর্তী রেপোতে পরিবর্তনগুলি ঠেকাতে

git push origin branch_name  

91
এছাড়াও সহজ: গিট আরএম-ডিরেক্টরি ডিরেক্টরি // ডিরেক্টরি এবং সামগ্রীগুলি সরাতে
রেজি

10
এটি যদিও অন্য কমিটগুলিতে সেই ফাইলটি থেকে মুক্তি পাচ্ছে না।
ভ্যাটো

6
@ সোলআরটেগা: এটি সঠিক। পূর্ববর্তী কমিটগুলি (অতীতের ইতিহাস পরিবর্তন করা) থেকে কোনও ফাইল সরাতে সংবেদনশীল ডেটা সরানোর উপর গিটহাবের সহায়তা পৃষ্ঠা দেখুন ।
গ্রেগ হিউগিল

14
নোট করুন এটি ফাইলটি স্থানীয়ভাবে মুছে ফেলবে। আপনি যদি কেবল এটি রেপো ডিলিট করতে চান: গিট আরএম
ওয়েস্টন

5
এটি লক্ষণীয় যে যদি সেই ফাইলটিতে সংবেদনশীল তথ্য থাকে (যেমন শংসাপত্রগুলি) থাকে তবে আপনার তাত্ক্ষণিকভাবে এই শংসাপত্রগুলি পরিবর্তন করা উচিত । গিটহাবের উদ্ধৃতি দিতে "একবার আপনি গিটহাবের কাছে কোনও প্রতিশ্রুতি চাপিয়ে দেওয়ার পরে, এটিতে যে কোনও ডেটা রয়েছে তা আপোশ করার জন্য আপনার বিবেচনা করা উচিত you আপনি যদি কোনও পাসওয়ার্ড প্রতিশ্রুতিবদ্ধ করেন, তবে এটি পরিবর্তন করুন! যদি আপনি কোনও কী প্রতিশ্রুতিবদ্ধ করেন তবে একটি নতুন উত্পন্ন করুন।"
c1moore

606

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

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

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

নীচে নমুনা আউটপুট হ'ল আমার সাথে যা ঘটেছিল সেখান থেকে, যেখানে আমি অজান্তেই .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]$

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


6
এরপরে আপনাকে এরকম কিছু দিয়ে প্রতিশ্রুতিবদ্ধ করতে হবে git commit -m "Just removing file1.txt"এবং তারপরে, যদি আপনার কাছে একটি রিমোট রিপোজিটরি থাকে তবে এরকম কিছু দিয়ে প্রতিশ্রুতিটি চাপুন git push origin master
নিষিদ্ধ-জিওঞ্জিনিয়ারিং

77

প্রথমত, আপনি যদি git rmবিশেষত একাধিক ফাইলের জন্য ব্যবহার করে থাকেন তবে বিবেচনা করুন যে কোনও ওয়াইল্ডকার্ড শেল দ্বারা সমাধান করা হবে, gitআদেশ দ্বারা নয় ।

git rm -- *.anExtension
git commit -m "remove multiple files"

তবে, যদি আপনার ফাইলটি ইতিমধ্যে গিটহাবটিতে রয়েছে, আপনি ওয়েব জিইউআই থেকে সরাসরি (জুলাই ২০১৩ সাল থেকে) এটি মুছতে পারেন!

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

তারপরে git pullআপনার স্থানীয় রেপোতে " " ক্লিক করুন এবং এটি স্থানীয়ভাবে ফাইলটি মুছবে।
এই উত্তরটি গিট রেপো থেকে কোনও ফাইল মুছতে (গোলাকার) উপায় তৈরি করে?
(গিটহাবের একটি ফাইল "গিট রেপো" তে রয়েছে তা উল্লেখ করার দরকার নেই )


বোতাম মুছুন

(প্রতিশ্রুতিবদ্ধ ফাইলটি মুছে ফেলা প্রতিফলিত করবে):

একটি মুছে ফেলা প্রতিশ্রুতিবদ্ধ

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

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

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

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

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


4
মুছে ফেলতে আপনাকে নীচে স্ক্রোল করতে হবে এবং "পরিবর্তনগুলি পরিবর্তন" করতে হবে!
লেভিনসন

1
এটি বড় পাঠ্য ফাইলের জন্য কাজ করে না। সার্ভারটি স্ক্রিনশটের মতো ফাইলটি রেন্ডার করার চেষ্টা করে এবং তারপরে 500 ত্রুটিতে ব্যর্থ হয়।
কেপকোডার

9
এই উত্তরটি গিথুবকে উল্লেখ করছে, প্রশ্নটি গিট রেপো সম্পর্কে। কীভাবে গিথুব ইন্টারফেসটি ব্যবহার করবেন তা নয়।
পিটার মার্শাল

65

এটি আমার পক্ষে কাজ করা একমাত্র বিকল্প।

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

দ্রষ্টব্য: আপনার ফাইলের নাম বা ফাইলের প্রকারের সাথে * .sQL পরিবর্তন করুন। খুব সাবধানতা অবলম্বন করুন কারণ এটি প্রতিটি প্রতিশ্রুতিবদ্ধতার মধ্য দিয়ে যাবে এবং এই ফাইলটি টাইপ করে ফেলবে।

সম্পাদনা: মনোযোগ দিন - এই আদেশের পরে আপনি ধাক্কা বা টানতে সক্ষম হবেন না - আপনি 'অপ্রাসঙ্গিক ইতিহাস' প্রত্যাখাত দেখতে পাবেন যে আপনি 'গিট পুশ - ফোর্স - ইউ উত্স মাস্টার' চাপতে বা টানতে ব্যবহার করতে পারেন


9
এটি দুর্দান্ত উত্তর, তবে নোট করুন যে অন্যান্য উত্তরের বিপরীতে, এই কমান্ডটি প্রতিশ্রুতিবদ্ধ ইতিহাস পুনর্লিখন করে এবং প্যাটার্নের সাথে মেলে সমস্ত ফাইলের চিহ্ন সরিয়ে ফেলে। এটি বিশেষত কার্যকর যদি আপনি খুঁজে পেয়েছেন যে আপনি দুর্ঘটনাক্রমে কিছু সংবেদনশীল তথ্য প্রতিশ্রুতিবদ্ধ করেছেন (এবং যদি প্রয়োজন হয় তবে এটি সফলভাবে কোনও রিমোট রেপোসের ইতিহাস পুনরায় লেখার জন্য ব্যবহার করতে পারেন - এটির দিকে)।
yoniLavi

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

3
আপনি যদি কোনও রিমোট মাস্টার ব্যবহার করছেন তবে আপনাকে একটি প্রতিশ্রুতি জোর করতে হবে এবং এটি চালিত করতে হবেgit push --force -u origin master
AlbertMarkovski

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

2
@ জেসনগ্লিসন আমিও এই সমস্যার মুখোমুখি হয়েছি যেখানে কোনও ভিডিও দুর্ঘটনাক্রমে একটি ভাণ্ডারগুলিতে যুক্ত হয়েছিল।
AlbertMarkovski

34

অতিরিক্তভাবে, যদি এটি কোনও ফোল্ডার অপসারণ করা হয় এবং এটির পরবর্তী শিশু ফোল্ডার বা ফাইলগুলি ব্যবহার করুন:

git rm -r foldername

2
এটি স্থানীয় থেকে ফোল্ডারটিও সরিয়ে দেয়! Use git rm --cached -r <foldername>
অক্ষ

24

আরও সাধারণভাবে, git helpএই জাতীয় কমপক্ষে সহজ প্রশ্নে সহায়তা করবে:

zhasper@berens:/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

6
আরো জটিল ব্যাপার জন্য, আমি এটি git helpবিভ্রান্তিকর কিন্তু সহজ জিনিসের জন্য :) এটা ভাল
জেমস Polley

9
গিট নুবসের পক্ষে এটি আসলে দুর্দান্ত নয় কারণ "সূচক" কোনও ধারণা নয় গিট নুবগুলি তার সাথে পরিচিত। গিট নুব হওয়ার ব্যক্তিগত অভিজ্ঞতা থেকে আমি কথা বলি :) এছাড়াও, আমি সূচক থেকে মুছে rm ফেলার পরিবর্তে মুছে ফেলার জন্য কোনও ফাইলের সূচনা করার কথাটি বলতে কম বিভ্রান্তি বোধ করছি (যদিও এটি এখনও noobs এর অর্থহীন নয়)।
রোমান স্টারকভ

রোমকিন্সের সাথে একমত: বিবরণটি "কার্যকারী গাছ থেকে এবং সূচী থেকে ফাইলগুলি সরান" বর্ণনাটি আমার কাছে তেমন শোনায় না যে এটি রেপো থেকে ফাইল সরানোর উপায় way আমি যদি গিটকে আরও ভালভাবে বুঝতে পারতাম তবে তা হত। পরিবর্তে মনে হচ্ছে আপনি কেবল ফাইলগুলি আনস্টেজ করছেন (এবং বিকল্প গাছ থেকে এটি অপসারণ করছেন - এটি কি প্রয়োজনীয়ভাবে
রেপোকে

14

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

bykov@gitserver:~/temp> git rm --cached file1.txt
bykov@gitserver:~/temp> git commit -m "remove file1.txt from the repo"

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

  1. যদি সূচকে ফাইলটির কোনও পরিবর্তন হয় না:

    bykov@gitserver:~/temp> git rm file1.txt
    bykov@gitserver:~/temp> git commit -m "remove file1.txt"
    
  2. ফাইলটি যদি সূচকে পরিবর্তন হয়:

    bykov@gitserver:~/temp> git rm -f file1.txt
    bykov@gitserver:~/temp> git commit -m "remove file1.txt"
    

12

git rm এখন থেকে কেবল এই শাখায় থাকা ফাইলটি সরিয়ে ফেলবে, তবে এটি ইতিহাসে রয়ে গেছে এবং গিট এটি মনে রাখবে।

এটি করার সঠিক উপায়টি হ'ল git filter-branchঅন্যরা এখানে উল্লেখ করেছেন। এটি শাখার ইতিহাসে প্রতিটি ফাইল প্রতিলিপি সেই ফাইলটি মুছে ফেলার জন্য পুনর্লিখন করবে।

তবে, এটি করার পরেও গিট এটি স্মরণ করতে পারে কারণ রেফ্লোগ, রিমোটস, ট্যাগ এবং এর মধ্যে এর উল্লেখ থাকতে পারে।

আপনি যদি এক ধাপে এটি পুরোপুরি বিলুপ্ত করতে চান তবে আমি আপনাকে এটি ব্যবহারের পরামর্শ দিচ্ছি git forget-blob

https://ownyourbits.com/2017/01/18/completely-remove-a-file-from-a-git-repository-with-git-forget-blob/

এটা সহজ, ঠিক আছে git forget-blob file1.txt

এটি আপনার রেপোতে এই ফাইলটি সম্পূর্ণরূপে মুক্তি পাওয়ার জন্য প্রতিটি রেফারেন্স সরিয়ে ফেলবে, কর git filter-branchএবং শেষ পর্যন্ত গিট আবর্জনা সংগ্রাহককে চালাবে git gc


10

আরএম কমান্ড ব্যবহার করে আপনি যদি আপনার স্থানীয় ফোল্ডার থেকে ফাইলটি মুছতে চান এবং অন্য কোনও উপায়টি পরিবর্তনগুলি দূরবর্তী সার্ভারে ঠেলাতে চান তবে way

rm file1.txt

git commit -a -m "Deleting files"

git push origin master

10

দ্রষ্টব্য: আপনি নীচের গিট ব্যবহার থেকে যদি ফাইলটি মুছতে চান:

git rm --cached file1.txt

আপনি যদি হার্ড ডিস্ক থেকেও মুছতে চান:

git rm file1.txt

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

git rm -r foldername

আপনি যদি অন্য ফোল্ডারের ভিতরে কোনও ফোল্ডার সরাতে চান

git rm -r parentFolder/childFolder

তারপরে, আপনি commitএবং pushযথারীতি পারেন। তবে, আপনি যদি মুছে ফেলা ফোল্ডারটি পুনরুদ্ধার করতে চান তবে আপনি এটি অনুসরণ করতে পারেন: গিট থেকে মুছে ফেলা ফাইলগুলি পুনরুদ্ধার করা সম্ভব।

ডক থেকে:

git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…​

পছন্দসমূহ

<file>…​

Files to remove. Fileglobs (e.g. *.c) can be given to remove all matching files. If you want Git to expand file glob characters, you

এগুলি পালাতে শেল-পালানোর দরকার হতে পারে। ডিরেক্টরিতে থাকা সমস্ত ফাইল মুছে ফেলার জন্য একটি শীর্ষস্থানীয় ডিরেক্টরি নাম (যেমন dir / file1 এবং dir / file2 মুছে ফেলার জন্য) দেওয়া যেতে পারে, তবে এর জন্য -r বিকল্পটি স্পষ্টভাবে দেওয়া দরকার to -f --force

Override the up-to-date check.

-n --dry-run

Don’t actually remove any file(s). Instead, just show if they exist in the index and would otherwise be removed by the command.

-r

Allow recursive removal when a leading directory name is given.

--

This option can be used to separate command-line options from the list of files, (useful when filenames might be mistaken for

কমান্ড-লাইন বিকল্প)। --cached

Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.

--ignore-unmatch

Exit with a zero status even if no files matched.

-q --quiet

git rm normally outputs one line (in the form of an rm command) for each file removed. This option suppresses that output.

সরকারী ডক উপর আরও পড়ুন।


7

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

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

ডিরেক্টরি থেকে অনির্যুক্ত সমস্ত ফাইল পরিষ্কার করার জন্য একক শটে পুনরাবৃত্তভাবে

গিট ক্লিন- fdx


5

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

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

5

আমার ক্ষেত্রে আমি কিছু কমিট করার পরে গিথুবে ফাইল অপসারণ করার চেষ্টা করেছি তবে কম্পিউটারে সংরক্ষণ করেছি

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

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


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

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

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

    git rm - ফাইলযুক্ত নামযুক্ত

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

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

    git push 
    

এটি কি দুর্ঘটনাক্রমে যুক্ত এবং পুশ করা ফাইলের সাথে সম্পর্কিত সমস্ত কিছু মুছে ফেলবে?
14:58

1

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

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


0

আমার আপত্তি এবং বিন ফাইল রয়েছে যা দুর্ঘটনাক্রমে রেপোতে পরিণত করেছিল যে আমি আমার 'পরিবর্তিত ফাইলগুলি' তালিকাটিকে দূষিত করতে চাই না

পরে আমি লক্ষ্য করেছি তারা দূরবর্তী গিয়েছিলাম, আমি তাদের কাছে এই যোগ করে উপেক্ষিত.gitignore

/*/obj
/*/bin

সমস্যাটি হ'ল তারা ইতিমধ্যে রিমোটে রয়েছে এবং তারা পরিবর্তিত হয়ে গেলে পরিবর্তিত হিসাবে পপ আপ করে এবং পরিবর্তিত ফাইল তালিকাটিকে দূষিত করে।

এগুলি দেখা বন্ধ করতে আপনার দূরবর্তী সংগ্রহস্থল থেকে পুরো ফোল্ডারটি মুছতে হবে।

কমান্ড প্রম্পটে:

  1. রেপো ফোল্ডারে সিডি (যেমন C:\repos\MyRepo)
  2. আমি এসএসআইএস-আপত্তি মুছে ফেলতে চাই। দেখে মনে হচ্ছে আপনি কেবল শীর্ষ স্তরে মুছতে পারেন, সুতরাং আপনাকে এখন এসএসআইএসে সিডি করতে হবে: (যেমনC:\repos\MyRepo\SSIS )
  3. এবার ম্যাজিক ইন্ট্যান্টেশন টাইপ করুন git rm -r -f obj
    • RM = অপসারণ
    • -r = পুনরাবৃত্তভাবে মুছে ফেলুন
    • -ফ = অর্থ বল, আপনি সত্যই এটি বোঝাতে কারণ
    • আপত্তি হ'ল ফোল্ডার
  4. এখন চালান git commit -m "remove obj folder"

আমি একটি উদ্বেগজনক বার্তা পেয়েছি যে 13 টি ফাইল 315222 টি মোছা পরিবর্তন করেছে

তারপরে আমি সিএমডি লাইনটি সন্ধান করতে চাইনি, তাই আমি ভিজ্যুয়াল স্টুডিয়োতে ​​গিয়ে রিমোটটিতে এটি প্রয়োগ করতে একটি সিঙ্ক করেছি


0

আপনার যদি নির্ধারিত এক্সটেনশান থেকে ফাইলগুলি সরানোর প্রয়োজন হয় (উদাহরণস্বরূপ, সংকলিত ফাইলগুলি) আপনি একবারে সমস্তগুলি সরাতে নিম্নলিখিতগুলি করতে পারেন:

git remove -f *.pyc

0

ডকুমেন্টেশন অনুযায়ী ।

git rm --cached giant_file

যখন এটি সংবেদনশীল ডেটাতে আসে - আপনি ফাইলটি সরিয়ে ফেলেছেন তা না বলে বরং এটি সর্বশেষ জ্ঞাত প্রতিশ্রুতিতে অন্তর্ভুক্ত করুন:

0. শেষ প্রতিশ্রুতি সংশোধন

git commit --amend -CHEAD

আপনি যদি সমস্ত গিট ইতিহাস থেকে ফাইলটি মুছতে চান তবে ডকুমেন্টেশন অনুযায়ী আপনার নিম্নলিখিতটি করা উচিত:

1. এটি আপনার স্থানীয় ইতিহাস থেকে সরান

git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" \  --prune-empty --tag-name-filter cat -- --all
# Replace PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA with the path to the file you want to remove, not just its filename
  1. .Gitignore এ এই ফাইলটি অন্তর্ভুক্ত করতে ভুলবেন না (এটি কোনও ফাইল যদি আপনি কখনই ভাগ করতে চান না (যেমন পাসওয়ার্ড ...):
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"

৩. যদি আপনার প্রয়োজন হয় দূরবর্তী থেকে অপসারণ

git push origin --force --all

৪. যদি আপনাকে ট্যাগ রিলিজ থেকে এটি অপসারণ করতে হয়:

git push origin --force --tags

-7

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.