বর্তমান গিট ওয়ার্কিং ট্রি থেকে কীভাবে স্থানীয় (চিহ্নবিহীন) ফাইল সরানো যায়


6837

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


86
এই ইন্টারেক্টিভ গিট চিট শিট ndpsoftware.com/git-cheatsheet.html গিট ওয়ার্কস্পেস দেখায় (গুগল আপনাকে "ওয়ার্কস্পেস" দিয়ে "ওয়ার্কিং স্পেস " এর সাথে আরও ভাল ফলাফল দেয়)
qneill

28
নোট: আপনি শুধুমাত্র সরাতে চান কিছু untracked ফাইল, কিন্তু তাদের সব না , git cleanএখন একটি আছে ইন্টারেক্টিভ মোডে! এই অন্যান্য প্রশ্নের আমার উত্তর দেখুন : গিট 1.8.4+
ভনসি

17
নোট করুন যে আপনি গিট ব্রাঞ্চ থেকে ফাইলগুলি সরিয়ে দিচ্ছেন না, কারণ শাখাটি একটি প্রতিশ্রুতিবদ্ধতার রেফারেন্স এবং অতএব আনট্র্যাকড ফাইলগুলি নেই। এগুলি কেবল কার্যকরী ডিরেক্টরিতে উপস্থিত এবং শাখাগুলির সাথে কোনও সম্পর্ক নেই nothing এটি সম্ভবত কেবল পরিভাষার ব্যাখ্যা ation
পাভেল Šিমেরদা

6
Git - চালিত গিটের স্থিতিবিহীন এবং নতুনদের বোঝার জন্য স্পষ্ট করার জন্য এবং যদি এটি কোনও ফাইলকে ট্র্যাক না করা হিসাবে দেখায় এবং আপনি সেই ফাইলটি রেপোতে না চান তবে আপনি কেবল আপনার ফাইল সিস্টেমে গিয়ে মুছতে বা সরাতে পারবেন । এটি আপনার স্থানীয় রেপো বা গিটকে খারাপ কিছু করবে না। আপনি git cleanকেবল বাছাইকৃত ফাইলগুলি মুছতে ইন্টারেক্টিভ সংস্করণ সহ নীচের উত্তরগুলিতে কিছু ব্যবহার করতে পারেন বা কিছু পরিবর্তন করতে পারেন, তবে ইন্টারেক্টিভ মোডটি ক্লান্তিকর হতে পারে। আপনি যা কিছু করুন না কেন, নিশ্চিত করে নিন যে আপনি কী git cleanমুছে ফেলবেন বা --dry-runকোনও কিছু মোছা না করে আপনাকে বলার জন্য এটি ব্যবহার করবেন।
লাইটসিসি

4
যদি ফাইলগুলি এখনও ট্র্যাক না করা থাকে তবে আপনি কেবল বিনা বাধা ছাড়াই এগুলি সরাতে পারবেন না? rm files-to-be-deleted
mhatch

উত্তর:


8726

গিট-ক্লিন - কার্যকারী গাছ থেকে তালা ছাড়ানো ফাইলগুলি সরান

সংক্ষিপ্তসার

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

বিবরণ

বর্তমান ডিরেক্টরি থেকে শুরু করে সংস্করণ নিয়ন্ত্রণে নেই এমন ফাইলগুলি পুনরাবৃত্তভাবে অপসারণ করে কার্যকরী গাছটি সাফ করে ।

সাধারণত, কেবল গিতের অজানা ফাইলগুলি সরানো হবে, তবে -xবিকল্পটি নির্দিষ্ট করা থাকলে, উপেক্ষা করা ফাইলগুলিও সরানো হবে। এটি উদাহরণস্বরূপ, সমস্ত বিল্ড পণ্য মুছে ফেলার জন্য দরকারী হতে পারে।

যদি কোনও alচ্ছিক <path>...আর্গুমেন্ট দেওয়া হয় তবে কেবল সেগুলিই ক্ষতিগ্রস্থ হয়।


পদক্ষেপ 1 হ'ল -nবিকল্পটি ব্যবহার করে কী মুছে ফেলা হবে তা দেখানো :

# Print out the list of files which will be removed (dry run)
git clean -n

পরিষ্কার পদক্ষেপ - সাবধান: এটি ফাইলগুলি মুছবে :

# Delete the files from the repository
git clean -f
  • ডিরেক্টরিগুলি সরাতে, চালনা করুন git clean -f -dবাgit clean -fd
  • উপেক্ষা করা ফাইলগুলি সরাতে, চালনা করুন git clean -f -Xবাgit clean -fX
  • উপেক্ষা করা এবং অবহেলিত ফাইলগুলি সরাতে, চালনা করুন git clean -f -xবাgit clean -fx

Xদুটি পরবর্তী কমান্ডের ক্ষেত্রে কেস পার্থক্যটি নোট করুন ।

যদি clean.requireForceআপনার কনফিগারেশনে "সত্য" (ডিফল্ট) সেট করা থাকে তবে একটি নির্দিষ্ট করে দেওয়া দরকার -fঅন্যথায় কিছুই আসলে ঘটবে না।

git-cleanআরও তথ্যের জন্য ডকগুলি আবার দেখুন ।


বিকল্প

-f, --force

যদি গিট কনফিগারেশন ভেরিয়েবল ক্লিন.আরকায়ারফরাসটি মিথ্যাতে সেট না করা থাকে তবে গিট ক্লিনটি দেওয়া না থাকলে চালানো অস্বীকার করবে -f, -nবা -i

-x

.Gitignore (প্রতি ডিরেক্টরি) থেকে পড়া স্ট্যান্ডার্ড উপেক্ষা করার নিয়মগুলি ব্যবহার করবেন না $GIT_DIR/info/exclude, তবে এখনও -eবিকল্পগুলির সাথে প্রদত্ত উপেক্ষা করার নিয়মগুলি ব্যবহার করবেন না । এটি বিল্ড পণ্য সহ সমস্ত অনার্যাকড ফাইলগুলি সরিয়ে ফেলার অনুমতি দেয়। এটি একটি পরিষ্কার বিল্ড পরীক্ষা করার জন্য একটি প্রাথমিক কাজ ডিরেক্টরি তৈরি করতে (সম্ভবত গিট রিসেটের সাথে একত্রে) ব্যবহার করা যেতে পারে।

-X

গিট দ্বারা উপেক্ষা করা কেবলমাত্র ফাইলগুলি সরান। এটি স্ক্র্যাচ থেকে সবকিছু পুনর্নির্মাণে কার্যকর হতে পারে তবে ম্যানুয়ালি তৈরি ফাইলগুলি রাখুন।

-n, --dry-run

আসলে কিছু অপসারণ করবেন না, কেবল কী করা হবে তা দেখান।

-d

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


287
git clean -fকেবলমাত্র সেই ডিরেক্টরিতে কাজ করে যেখানে এটি বলা হয় (এবং উপ-ডিরেক্টরি)। আপনি যদি পুরো কাজের অনুলিপিটি পরিষ্কার করতে চান তবে আপনাকে এটির মূল ডিরেক্টরিতে কল করা উচিত।
এডুয়ার্ডো বেজারেরা

17
এটি .gitignore এর ভিতরে সমস্ত ফাইল সরিয়ে দিচ্ছে। আমাকে কেবল ফাইল / ফোল্ডারগুলি মুছতে হবে যা নতুন এবং .gitignore এ নেই
Kostanos

24
@ কোস্টানোস আপনি যদি .gitignore থাকা ফাইলগুলি সরাতে না চান তবে -x পতাকা সরবরাহ করবেন না।
লো-ট্যান

51
git clean -f :/আপনি এটি রুট রেপো dir চালানো হয়েছে হিসাবে কাজ করে। পরে সাবমোডিয়ুলগুলির জন্য অ্যাকাউন্টিংয়ের উত্তরগুলি পরে দেখুনgit clean -ffxd :/
এখানে

18
@ মিশেল গিট ক্লিন-এক্সএফডি এছাড়াও আপনার .gitignore এ সমস্ত ফাইলগুলিকে সতর্কতার সাথে সরানো হবে এবং তারা পুনরুদ্ধারযোগ্য নয়
thedanotto

986

ডিরেক্টরিগুলিও সরানো git clean -f -dহয়েছে তা নিশ্চিত করার জন্য ব্যবহার করুন ।

  1. আসলে কিছু অপসারণ করবেন না, কেবল কী করা হবে তা দেখান।

    git clean -n
    

    অথবা

    git clean --dry-run
    
  2. চিহ্নবিহীন ফাইলগুলি ছাড়াও তালিকাভুক্ত ডিরেক্টরিগুলি সরান। যদি কোনও তালিকার চিহ্নবিহীন ডিরেক্টরিটি কোনও ভিন্ন গিট সংগ্রহস্থল দ্বারা পরিচালিত হয় তবে এটি ডিফল্টরূপে সরানো হয় না। -fআপনি যদি সত্যিই এই জাতীয় ডিরেক্টরি মুছতে চান তবে দুটিবার বিকল্পটি ব্যবহার করুন ।

    git clean -fd
    

তারপরে আপনার ফাইলগুলি সত্যিই গেছে কিনা তা পরীক্ষা করে দেখতে পারেন git status


115
আগেই বলা হয়েছে, এটি দিয়ে শুকনো চালানো ভালgit clean -n -d
Ms01

15
একই জিনিস করতে হয় git clean -ndএবং git clean -fd
মাইচার

477

আমি অবাক হয়েছি যে এর আগে কেউ এর উল্লেখ করেনি:

git clean -i

এটি ইন্টারেক্টিভের জন্য দাঁড়িয়েছে এবং ক্ষতিগ্রস্থ ফাইলগুলিকে অন্তর্ভুক্ত / বাদ দেওয়ার সম্ভাবনা দিয়ে আপনি কী মুছে ফেলা হচ্ছে তার একটি দ্রুত ওভারভিউ পাবেন। সামগ্রিকভাবে, --dry-runবাস্তব পরিষ্কারের আগে বাধ্যতামূলক চালনার চেয়ে এখনও দ্রুত ।

আপনি -dযদি খালি ফোল্ডারগুলির যত্ন নিতে চান তবে আপনাকে একটি টস করতে হবে। শেষে, এটি একটি দুর্দান্ত উপন্যাস তৈরি করে:

git iclean

বলা হচ্ছে, ইন্টারেক্টিভ কমান্ডগুলির অতিরিক্ত হাত ধরে রাখা অভিজ্ঞ ব্যবহারকারীদের জন্য ক্লান্তিকর হতে পারে। এই দিনগুলিতে আমি ইতিমধ্যে উল্লিখিত ব্যবহার করেছিgit clean -fd


16
@ pal4Live এটি 1.8.4 এ যুক্ত হয়েছিল, আপনি সম্ভবত গিটের পুরানো সংস্করণটি চালাচ্ছেন? github.com/git/git/blob/master/Docamentation/RelNotes/1.8.4.txt
ম্যাটিয়াস ব্যাকম্যান

আমি এটি পছন্দ করি - আমার বাশ ইতিহাসে এটি অন্য বিকল্পগুলির তুলনায় আমি বেশি স্বাচ্ছন্দ্য বোধ করি, কারণ আমি যদি দুর্ঘটনাক্রমে এটির জন্য সিআরটিএল-আর বা সিআরটিএল-পি করি তবে এটি কোনও বড় বিষয় নয়।
csvoss


250

যদি ট্রেড না করা ডিরেক্টরিটি তার নিজস্ব গিট রিপোজিটরি হয় (যেমন সাবমডিউল), আপনার -fদুবার ব্যবহার করতে হবে :

git clean -d -f -f


4
বিটিডব্লিউ, এটি ডকুমেন্টেশনে লিখিত : গিটটি .git সাব ডিরেক্টরি বা ফাইলের সাথে ডিরেক্টরিগুলি মুছতে অস্বীকার করবে যদি না দ্বিতীয় -f দেওয়া হয়। যা হোক ধন্যবাদ!
ম্যাক্সিম সুস্লোভ

247

অনতিযুক্ত ফাইলগুলি সরানোর সহজ উপায়

সমস্ত চিহ্নবিহীন ফাইল মুছে ফেলার জন্য, সহজ উপায় হ'ল প্রথমে সমস্তগুলি যুক্ত করা এবং নীচের মত রেপো পুনরায় সেট করা

git add --all
git reset --hard HEAD


8
আপনি git add --allদ্বারা প্রতিস্থাপন করতে পারেন git add .। সুতরাং আপনি এটি অনলাইনে সংক্ষিপ্ত উপায়ে করতে পারেন git add . && git reset --hard HEAD ( এই আদেশের সাথে খুব যত্নশীল হন )
RousseauAlexandre

22
এটিকে কেন ব্যবহার করবেন git clean?
ব্যবহারকারী 2864740

8
কারণ git cleanদৃশ্যত উপেক্ষা করা সমস্ত কিছু মুছে ফেলে dele এটি সবেমাত্র আমার node_modulesফোল্ডারটি মুছে ফেলেছে। এটি করার ফলে প্রথমে উপেক্ষা করা ফাইলগুলি ব্যতীত সমস্ত ফাইল স্টেজ হবে এবং তারপরে পুনরায় সেট করে সেগুলি মুছবে। উপেক্ষা করা ফাইলগুলি স্পর্শ করা হবে না।
Andreas

5
@ Andreas এটি আমার জন্য উপেক্ষা করা ফাইলগুলি মুছবে না (গিট 2.14.1)। আসল মুছে ফেলার (বা ব্যবহার ) করার আগে আপনার যে কোনও উপায়ে চালানো উচিতgit clean -ngit clean -i
Qw3ry

8
git cleanআপনি যদি বিকল্প -xবা -Xঅপশনটি ব্যবহার করেন তবে তা উপেক্ষা করা ফাইলগুলি মুছে ফেলা হবে, অন্যথায় এটি কেবল চিহ্নবিহীন ফাইলগুলি মুছবে।
ডাবলডাউন

140

আমি পছন্দ করি git stash push -uকারণ আপনি সেগুলি দিয়ে সমস্তটি পূর্বাবস্থায় ফিরিয়ে আনতে পারেন git stash pop

সম্পাদনা: এছাড়াও আমি স্ট্যাশগুলিতে অচিহ্নযুক্ত ফাইলগুলি দেখানোর একটি উপায় খুঁজে পেয়েছি (উদাঃ git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986

EDIT2: git stash saveএর পক্ষে অবমূল্যায়ন করা হয় push। ধন্যবাদ @ লিপি-নেকড়ে


3
আপনি স্ট্যাশ উপর ইউ বর্ণনা করতে পারেন? গিট স্ট্যাশ সেভ থেকে কীভাবে এটি আলাদাভাবে কাজ করে আমি তা অনুসরণ করি না। আমি এটি চেষ্টা করেছিলাম এবং এটি কাজ করে। গিট ডক্সে দেখেছি এবং এটি সেখানেও খুঁজে পেল না।
Winnemucca

9
-uসমতূল্য --include-untracked। আপনি সাহায্য পেতে পারেন git help stash
হিরোশি

3
@ হিরোশি ধন্যবাদ! এক ডজন বিভিন্ন লোকের কাছ থেকে প্রতিটি রঙ সমাধানের চেষ্টা করার পরে এটিই শেষ অবধি কাজ করেছে ... ছি! এমনকি একটি গিট স্ট্যাশ নাডা করেছে। সংরক্ষণ করুন - আপনি তালাবিহীনদের যত্ন নিলেন। হার্ড / ক্লিন ফোর্স / ইত্যাদি পুনরায় সেট করুন এগুলি আমার পক্ষে কিছুই করেনি।
মূর্তিমান নিরানন্দ

3
saveবিকল্প পক্ষে অবচিত করা হয়েছিল push, যা একই কিন্তু আরো আছে। আপনি এখানে আরও পড়তে পারেন, /programming/44680028/what-the-differences-between-git-stash-save-and-git-stash-push/44681952
স্ক্রিপ্ট ওল্ফ

120

এটি আমি সর্বদা ব্যবহার করি:

git clean -fdx

খুব বড় প্রকল্পের জন্য আপনি এটি কয়েকবার চালাতে চাইতে পারেন।


@ মার্টিন আমি যে প্রকল্পগুলিতে কাজ করছি তার মধ্যে একটি +8 বছর বয়সী +80 বিকাশকারী সক্রিয়ভাবে কোডিং সহ রয়েছে। গিট কখনও কখনও প্রথম পাসে এটি পরিষ্কার করতে ব্যর্থ হয়।
অস্কার ফ্রেক্সেদাস

1
আমি এটি নিশ্চিত করতে পারি, সুতরাং এটি এখনও ২০২০ সালে বৈধ।
টারবোলোকাস্ট

90

গিট ক্লিন যা আপনি সন্ধান করছেন। এটি কার্যকারী গাছ থেকে তালাবিহীন ফাইলগুলি সরাতে ব্যবহৃত হয়।


86

নির্দিষ্ট সাবডাইরেক্টরি থেকে যদি ট্রেডবিহীন ফাইলগুলি সরানোর প্রয়োজন হয়,

git clean -f {dir_path}

এবং অপ্রকাশিত দির / ফাইলগুলি এবং উপেক্ষা করা ফাইলগুলি মুছতে সম্মিলিত উপায়ে।

git clean -fxd {dir_path}

এর পরে আপনার কেবলমাত্র ফাইলগুলিতে পরিবর্তিত হবে git status


68

এই রেপো + সাবমডিউলগুলিতে সমস্ত অতিরিক্ত ফোল্ডার এবং ফাইলগুলি সরান

এটি আপনাকে তাজা ক্লোন হিসাবে একই অবস্থায় পেয়েছে।

git clean -ffdx

এই রেপোতে সমস্ত অতিরিক্ত ফোল্ডার এবং ফাইলগুলি সরিয়ে ফেলুন তবে এর সাবমডিউলগুলি নয়

git clean -fdx

অতিরিক্ত ফোল্ডারগুলি সরান তবে ফাইলগুলি নয় (উদাহরণস্বরূপ বিল্ড বা লগ ফোল্ডার)

git clean -fd

অতিরিক্ত ফোল্ডার + উপেক্ষা করা ফাইলগুলি সরিয়ে ফেলুন (তবে নতুন যুক্ত হওয়া ফাইল নয়)

যদি ফাইলটিকে উপেক্ষা করা হয়নি এবং এখনও চেক-ইন না করা হয় তবে তা স্থায়ী হয়। রাজধানী এক্স নোট করুন।

git clean -fdX

নতুন ইন্টারেক্টিভ মোড

git clean

57

git clean -fd ডিরেক্টরি সরিয়ে দেয়

git clean -fX উপেক্ষা করা ফাইলগুলি সরিয়ে দেয়

git clean -fx উপেক্ষা করা এবং অবহেলিত ফাইলগুলি সরিয়ে দেয়

উপরের সমস্ত বিকল্প হিসাবে হিসাবে ব্যবহার করা যেতে পারে

git clean -fdXx

আরও সহায়তার জন্য গিট ম্যানুয়াল পরীক্ষা করুন


10
কমান্ডটি "মারাত্মক: -x এবং -X একসাথে ব্যবহার করা যায় না" (গিট -২.৮ ব্যবহার করে) git clean -fdXxত্রুটি বার্তা উত্পন্ন করে । আপনার উত্তরের মধ্যে আপনার শেষ বাক্যটির জন্য, দয়া করে গিট ম্যানুয়ালটিতে একটি লিঙ্ক সরবরাহ করুন। চিয়ার্স
অলিবার

ক্রমানুসারে দুটি কমান্ড চালান: গিট ক্লিন-এফডিএক্স, গিট ক্লিন-এফডিএক্স
ক্লক

55

ঠিক আছে, অযাচিত অপ্রত্যাশিত ফাইল এবং ফোল্ডারগুলি মুছে ফেলা gitকমান্ড লাইনে ব্যবহার করা সহজ , কেবল এটির মতো করুন:

git clean -fd

এটি করার আগে ডাবল চেক করুন কারণ এটি কোনও ইতিহাস না করেই ফাইল এবং ফোল্ডারগুলি মুছবে ...

এছাড়াও এই ক্ষেত্রে, -fবলের -dজন্য দাঁড়ায় এবং নির্দেশকের জন্য দাঁড়িয়ে ...

সুতরাং, আপনি যদি কেবল ফাইলগুলি মুছতে চান তবে আপনি কেবলমাত্র ব্যবহার করতে পারেন -f:

git clean -f

আপনি যদি (ডিরেক্টরি) এবং ফাইলগুলি মুছতে চান তবে আপনি কেবল এই জাতীয় চিহ্নবিহীন ডিরেক্টরি এবং ফাইলগুলি মুছতে পারেন:

git clean -fd

এছাড়াও, আপনি -xগিট দ্বারা উপেক্ষা করা ফাইলগুলি অন্তর্ভুক্ত করার জন্য পতাকা ব্যবহার করতে পারেন । আপনি যদি সবকিছু মুছতে চান তবে এটি সহায়ক হবে।

এবং -iপতাকা যুক্ত করা, আপনাকে যেতে যেতে এক এক করে ফাইলগুলি মুছে ফেলার অনুমতি চেয়ে জিজ্ঞাসাবাদ তৈরি করে।

আপনি যদি নিশ্চিত না হন এবং প্রথমে জিনিসগুলি পরীক্ষা করতে চান তবে -nপতাকা যুক্ত করুন।

-qসফল মোছার পরে আপনি যদি কোনও প্রতিবেদন দেখতে না চান তবে ব্যবহার করুন ।

আমি এটিকে আরও স্মরণীয় করে রাখার জন্য নীচের চিত্রটিও তৈরি করেছি, বিশেষত আমি অনেক লোককে -fমাঝে মাঝে ফোল্ডার পরিষ্কার করার জন্য বিভ্রান্ত করতে দেখেছি বা এটি কোনওভাবে মিশ্রিত করতে দেখেছি !


অযাচিত অপ্রত্যাশিত ফাইল এবং ফোল্ডার মোছা


এই চিত্রটি দিয়ে কী আছে?
পেসারিয়ার

37

আরও ভাল উপায় হ'ল গিট ক্লিন

git clean -d -x -f

এটি ডিরেক্টরি (-d)থেকে অবহেলিত ডিরেক্টরি এবং ফাইল সহ অচিহ্নযুক্ত ফাইলগুলি সরিয়ে দেয় git (-x)

এছাড়াও, একটি বা ইন্টারেক্টিভ মোডের জন্য সঞ্চালনের জন্য -fযুক্তিটি প্রতিস্থাপন করুন এবং এটি আপনাকে বলবে যে কী সরানো হবে।-ndry-run-i


25

ব্যবহারকারী ইন্টারেক্টিভ পদ্ধতির:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

-i ইন্টারেক্টিভ জন্য
-f জন্য ফোর্স
-d ডিরেক্টরি ডিরেক্টরি
-x উপেক্ষা করা ফাইলের জন্য (প্রয়োজনে যোগ করুন)

দ্রষ্টব্য: অ্যাড- এন বা --dry- রান এটি কী করবে তা পরীক্ষা করার জন্য।


20

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

git add .
git reset --hard HEAD

সতর্ক থাকুন! এটি সম্পাদন করার আগে কোনও প্রয়োজনীয় পরিবর্তন (এমনকি অ-চিহ্নবিহীন ফাইলগুলিতেও) প্রতিশ্রুতিবদ্ধ হওয়া নিশ্চিত করুন ।


3
কমপক্ষে এটি একটি ভিন্ন পদ্ধতি। :) আরেকটি উপায়, এটি মুছে ফেলা ফাইলগুলি মনে রাখবে রিফ্লোগে তবে কোনও শাখায় নয়, এটি হবে:git add . git commit -m 'about to delete' git reset --hard HEAD~
জোয়েটউইডল

2
এমনকি আরো দ্রুত উপায়git add . && git reset --hard HEAD
thybzi

3
git add . && git reset --hard
প্লেমোর

আপনি যদি প্রতিশ্রুতিবদ্ধ করতে চান এমন কিছু পরিবর্তনও হয় তবে এটি আপনি যা চান তা হতে পারে না।
lacostenycoder

@ আলেকজান্ডারমিলস git reset --hardসমস্ত আপত্তিহীন পরিবর্তনগুলি পুনরায় সেট করুন তবে সর্বশেষ প্রতিশ্রুতিবদ্ধতার স্থানে আনট্র্যাকড ফাইলগুলি। এজন্য আমাদের প্রথম প্রয়োজন git add .- যে সমস্ত অক্ষত থাকা ফাইলগুলি শেষ করে (তাই সেগুলিও পুনরায় সেট করা হয়)
থাইবিজি

19

git clean -f -d -x $(git rev-parse --show-cdup)মূল ডিরেক্টরিতে পরিষ্কার প্রয়োগ করা হয়, আপনি এটি কোনও সংগ্রহস্থল ডিরেক্টরি গাছের মধ্যেই কল করেন না কেন। আমি এটি সর্বদা ব্যবহার করি কারণ এটি এখন যে ফোল্ডারটি আপনি কাজ করছেন সেখানে ছাড়তে বাধ্য করে না এবং আপনি যেখানেই রয়েছেন সেখান থেকে পরিষ্কার ও প্রতিশ্রুতিবদ্ধ করার অনুমতি দেয়।

নিশ্চিত করুন যে পতাকা হউন -f, -d, -xআপনার চাহিদা মেলে:

-d
       Remove untracked directories in addition to untracked files. If an
       untracked directory is managed by a different Git repository, it is
       not removed by default. Use -f option twice if you really want to
       remove such a directory.

-f, --force
       If the Git configuration variable clean.requireForce is not set to
       false, git clean will refuse to delete files or directories unless
       given -f, -n or -i. Git will refuse to delete directories with .git
       sub directory or file unless a second -f is given. This affects
       also git submodules where the storage area of the removed submodule
       under .git/modules/ is not removed until -f is given twice.

-x
       Don't use the standard ignore rules read from .gitignore (per
       directory) and $GIT_DIR/info/exclude, but do still use the ignore
       rules given with -e options. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.

অন্যান্য পতাকা এছাড়াও উপলব্ধ, কেবল পরীক্ষা করুন git clean --help


বিটিডাব্লু আপনি কেবল গিট ক্লিন {ফ্ল্যাগস can করতে পারেন: / সুতরাং এটি এমন হবে যেন আপনি রেপো রুটে কমান্ডটি
চালিয়েছিলেন

19

আমার জন্য কেবল নিম্নলিখিত কাজ করেছেন:

git clean -ffdx

অন্যান্য সমস্ত ক্ষেত্রে, আমি কিছু উপ-ডিরেক্টরিতে "স্কিপিং ডিরেক্টরি" বার্তা পাচ্ছিলাম ।


2
ধন্যবাদ। আমি .Gitignore- এ ফাইলগুলি মুছে ফেলা এড়াতে -xব্যবহার git clean -ffdকরেছি।
ফেকমোর

15

যদি আপনি কেবল 'গিট স্ট্যাটাস' দ্বারা তালমুক্ত ফাইল হিসাবে তালিকাভুক্ত ফাইলগুলি মুছতে চান

git stash save -u
git stash drop "stash@{0}"

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


3
এটি ট্র্যাক করা ফাইলগুলিতে বৈধ পরিবর্তনগুলিও সরিয়ে ফেলবে। আমি এটি সুপারিশ করব না।
কোড_ড্রেড

2
হ্যাঁ, আপনি প্রথমে ট্র্যাক করা ফাইলগুলিতে পরিবর্তন করতে চান।
জাজদেব

14

আসলে মুছে ফেলার আগে কী মুছে ফেলা হবে তা জানতে:

git clean -d -n

এটি এমন কিছু আউটপুট দেবে:

નમૂના.txt অপসারণ করবে

পূর্ববর্তী কমান্ডের আউটপুটে তালিকাভুক্ত সমস্ত কিছু মুছতে:

git clean -d -f

এটি এমন কিছু আউটপুট দেবে:

નમૂના.txt অপসারণ করা হচ্ছে


11

তালিকাভুক্ত ফাইলগুলি অপসারণ করতে আপনার প্রথমে কমান্ড ব্যবহার করা উচিত যা ফাইলগুলি পরিষ্কারের দ্বারা প্রভাবিত হবে view

git clean -fdn

এটি আপনাকে মুছে ফেলা হবে এমন ফাইলগুলির তালিকা প্রদর্শন করবে। এখন আসলে এই ফাইলগুলি মুছতে এই আদেশটি ব্যবহার করুন:

git clean -fd

11

`গিট ক্লিন` কমান্ডটি চালনার সময় সাবধানতা অবলম্বন করুন।

-nপ্রকৃত কমান্ড চালানোর আগে সর্বদা ব্যবহার করুন কারণ এটি আপনাকে দেখাবে যে কোন ফাইলগুলি সরানো হবে।

git clean -n -d 
git clean -f -d

ডিফল্টরূপে, git cleanকেবল অচিহ্নযুক্ত ফাইলগুলি সরানো হবে যা উপেক্ষা করা হয়নি। আপনার .gitignore বা অন্য উপেক্ষা করা ফাইলগুলিতে কোনও প্যাটার্নের সাথে মেলে এমন কোনও ফাইল সরানো হবে না। আপনি যদি এই ফাইলগুলিও মুছে ফেলতে চান তবে আপনি -xক্লিন কমান্ডটিতে একটি যুক্ত করতে পারেন ।

git clean -f -d -x

-iক্লিন কমান্ডের সাথে ইন্টারেক্টিভ মোড উপলব্ধ

git clean -x -i

বিকল্পভাবে

আপনি যদি 100% নিশ্চিত না হন যে আপনার অননুমোদিত কাজ মুছে ফেলা নিরাপদ, আপনি পরিবর্তে স্ট্যাশিং ব্যবহার করতে পারেন

git stash --all

এটি আপনার ডিরেক্টরিটি সাফ করবে কিন্তু প্রয়োগ বা পপ সহ স্ট্যাশ ব্যবহার করে যেকোন সময় ফাইল পুনরুদ্ধারে নমনীয়তা দেয় । তারপরে পরবর্তী সময়ে আপনি আপনার স্ট্যাশ ব্যবহার করে সাফ করতে পারেন:

git stash drop // or clean

2
স্ট্যাশ একটি ভাল ধারণা, তবে আপনি ব্যবহার করতে চান git stash save and type some comment as to what this stash was for
lacostenycoder


9

জন্য uggested কমান্ড Git ডক্স থেকে Untracked ফাইল মুছে ফেলার পদ্ধতি হল Git পরিষ্কার

গিট ক্লিন - ওয়ার্কিং ট্রি থেকে অচিহ্নযুক্ত ফাইলগুলি সরান

প্রস্তাবিত পদ্ধতি: ব্যবহার করে ইন্টারেক্টিভ মোডgit clean -i যাতে আমরা এর উপর নিয়ন্ত্রণ রাখতে পারি। বাকি উপলব্ধ বিকল্পগুলি দেখতে দিন।

উপলব্ধ বিকল্প:

git clean 
    -d -f -i -n -q -e -x -X (can use either)

ব্যাখ্যা:

1। -ডি

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

2. -ফ, - ফোর্স

যদি গিট কনফিগারেশন ভেরিয়েবল ক্লিন.আরকায়ারফরাসটি মিথ্যাতে সেট না করা থাকে, -ফ, -n বা -i দেওয়া না হলে গিট ক্লিন চালানো অস্বীকার করবে।

3. -আই, - ইন্টারেক্টিভ

কী হবে তা দেখান এবং ইন্টারেক্টিভভাবে ফাইলগুলি পরিষ্কার করুন। বিশদগুলির জন্য "ইন্টারেক্টিভ মোড" দেখুন।

4. -n, - শুকনো রান

আসলে কিছু অপসারণ করবেন না, কেবল কী করা হবে তা দেখান।

5. -কিউ, --কুইট

শান্ত থাকুন, কেবল ত্রুটির প্রতিবেদন করুন, তবে সফলভাবে সরানো ফাইলগুলি নয়।

6. -e, --exclude =

.Gitignore (প্রতি ডিরেক্টরি) এবং $ GIT_DIR / তথ্য / বর্জন পাওয়া যায় এমনগুলি ছাড়াও, এই নিদর্শনগুলি কার্যকরভাবে উপেক্ষা করার নিয়মের সেট হিসাবে বিবেচনা করুন।

7. -x

.Gitignore (প্রতি ডিরেক্টরি) এবং $ GIT_DIR / তথ্য / বাদ দিয়ে পড়া স্ট্যান্ডার্ড উপেক্ষা নিয়মগুলি ব্যবহার করবেন না, তবে এখনও -e বিকল্পগুলির সাথে প্রদত্ত উপেক্ষা নিয়মগুলি ব্যবহার করবেন না। এটি বিল্ড পণ্য সহ সমস্ত অনার্যাকড ফাইলগুলি সরিয়ে ফেলার অনুমতি দেয়। এটি একটি পরিষ্কার বিল্ড পরীক্ষা করার জন্য একটি প্রাথমিক কাজ ডিরেক্টরি তৈরি করতে (সম্ভবত গিট রিসেটের সাথে একত্রে) ব্যবহার করা যেতে পারে।

8.-এক্স

গিট দ্বারা উপেক্ষা করা কেবলমাত্র ফাইলগুলি সরান। এটি স্ক্র্যাচ থেকে সবকিছু পুনর্নির্মাণে কার্যকর হতে পারে তবে ম্যানুয়ালি তৈরি ফাইলগুলি রাখুন।


আমার মনে হয় আপনার টাইপো আছে uggestedতবে এটি কেবল " uggestionলোল
ল্যাকোস্টেনাইকোডার

8

সাধারন git cleanকমান্ড আমার সাথে তালিবদ্ধ ফাইলগুলি সরায় না git version 2.9.0.windows.1

$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!

7

আমরা নীচে গিট মন্তব্য ব্যবহার করে বর্তমান গিট ওয়ার্কিং ট্রি থেকে স্থানীয় অননেকেযুক্ত ফাইলগুলি সহজে সরাতে পারি।

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

উদাহরণ:

git reset --hard HEAD

লিঙ্কগুলি:

  1. https://git-scm.com/docs/git-reset
  2. পূর্ববর্তী প্রতিশ্রুতিতে ফিরতে আমি কীভাবে 'গিট রিসেট --হার্ড হেড' ব্যবহার করব?
  3. স্থানীয় সংগ্রহস্থল শাখাটিকে রিমোট রিপোজিটরি হেডের মতোই পুনরায় সেট করুন
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

এটি কেবল অচিহ্নযুক্ত ফাইলগুলিতেই নয়, যা আপনি চান তা নাও হতে পারে প্রতিশ্রুতিবদ্ধতার জন্য পর্যায়ের পরিবর্তনগুলি সরিয়ে দেবে।
রাস্পি

কাজ করে না: কিছু ফাইল ফেলে। git clean -ffdxসমাধান কি
ইউজিন গ্র। ফিলিপভ

7

গিট সংগ্রহস্থল এবং সমস্ত সাবমডিউলগুলি পুনরাবৃত্তভাবে পরিষ্কার করুন

নিম্নলিখিত কমান্ডটি বর্তমান গিট সংগ্রহস্থল এবং এর সমস্ত সাবমডিউলগুলি পুনরাবৃত্তভাবে পরিষ্কার করবে:

(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)

অবশ্যই এটি খুব সাবধানতার সাথে ব্যবহার করা উচিত
ল্যাকোস্টেনাইকোডার

6
git clean -f

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

git clean -fd

আপনি যখন ডিরেক্টরি এবং ফাইলগুলি মুছতে চান, এটি কেবল অচিহ্নযুক্ত ডিরেক্টরি এবং ফাইলগুলি মুছবে


5

ওহ-মাই- zsh সাথে zsh গিট প্লাগইনটির মাধ্যমে সেই দুর্দান্ত অ্যালিয়াস সরবরাহ করে। এগুলি ব্যাশেও ব্যবহার করা যেতে পারে।

gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'

  • gclean আন-ট্র্যাক করা ফাইলগুলি ছাড়াও তালিকাভুক্ত ডিরেক্টরিগুলি সরিয়ে দেয়
  • gpristineস্থানীয় পরিবর্তনগুলি পুনরায় সেট করুন, অচিহ্নবিহীন ডিরেক্টরিগুলি, তালিকাভুক্ত ফাইলগুলি অপসারণ করুন এবং .gitignore (প্রতি ডিরেক্টরি) এবং $ GIT_DIR / তথ্য / বাদ পড়ুন থেকে পড়া স্ট্যান্ডার্ড উপেক্ষা নিয়মগুলি ব্যবহার করবেন না, তবে এখনও -e বিকল্পগুলির সাথে প্রদত্ত উপেক্ষা নিয়মগুলি ব্যবহার করবেন না। এটি বিল্ড পণ্য সহ সমস্ত অনার্যাকড ফাইলগুলি সরিয়ে ফেলার অনুমতি দেয়। এটি একটি পরিষ্কার বিল্ড পরীক্ষা করার জন্য একটি প্রাথমিক কাজ ডিরেক্টরি তৈরি করতে (সম্ভবত গিট রিসেটের সাথে একত্রে) ব্যবহার করা যেতে পারে

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

4

আমি git stashকমান্ডটি ব্যবহার করতে চাই , পরে আপনি স্ট্যাশড ফাইল এবং পরিবর্তনগুলি পেতে পারেন। git cleanএছাড়াও একটি ভাল বিকল্প কিন্তু সম্পূর্ণরূপে আপনার প্রয়োজন উপর নির্ভর করে। এখানে গিট স্ট্যাশ এবং গিট পরিষ্কারের ব্যাখ্যা, 7.3 গিট সরঞ্জাম - স্ট্যাশিং এবং ক্লিনিং

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