নতুন তালিকাভুক্ত ফাইল সহ ওয়ার্কিং ডিরেক্টরি থেকে সমস্ত পরিবর্তন মুছবেন কীভাবে। আমি জানি যে git checkout -fএটি করে, তবে এটি সর্বশেষ প্রতিশ্রুতিবদ্ধ হওয়ার পরে তৈরি করা নতুন তালিকার চিহ্নযুক্ত ফাইলগুলি মুছবে না।
এটি করার জন্য কারও কি ধারণা আছে?
নতুন তালিকাভুক্ত ফাইল সহ ওয়ার্কিং ডিরেক্টরি থেকে সমস্ত পরিবর্তন মুছবেন কীভাবে। আমি জানি যে git checkout -fএটি করে, তবে এটি সর্বশেষ প্রতিশ্রুতিবদ্ধ হওয়ার পরে তৈরি করা নতুন তালিকার চিহ্নযুক্ত ফাইলগুলি মুছবে না।
এটি করার জন্য কারও কি ধারণা আছে?
উত্তর:
git reset --hard # removes staged and working directory changes
## !! be very careful with these !!
## you may end up deleting what you don't want to
## read comments and manual.
git clean -f -d # remove untracked
git clean -f -x -d # CAUTION: as above but removes ignored files like config.
git clean -fxd :/ # CAUTION: as above, but cleans untracked and ignored files through the entire repo (without :/, the operation affects only the current directory)
আসলে কী মুছে ফেলা হবে তা দেখার জন্য -nপতাকাটি ব্যবহার করুন (এটি মূলত একটি পরীক্ষা চালানো)। আপনি যখন আসলে মুছতে প্রস্তুত হন, তারপরে -nপতাকাটি সরান :
git clean -nfd
git clean -fxdআপনি কী করছেন তা যদি আপনি না জানেন তবে প্রকৃতপক্ষে সত্যই বিপজ্জনক হতে পারে। আপনি আপনার ডাটাবেস ইত্যাদির মতো কিছু অতি গুরুত্বপূর্ণ ফাইলবিহীন ফাইলগুলি স্থায়ীভাবে মুছতে পারেন। সাবধানতা অবলম্বন করুন।
git clean -f -dউপেক্ষা করা ফোল্ডারগুলি থেকেও ফাইল মুছবে। সুতরাং আপনার সমস্ত স্থানীয় লগ এবং এর মতো জিনিসগুলি চলে যাবে। সাধারণত এটি কোনও বড় সমস্যা নয় তবে এটি জানা ভাল better
নিরাপদ পদ্ধতি, যা আমি প্রায়শই ব্যবহার করি:
git clean -fd
/docs/git-cleanপৃষ্ঠা অনুসারে সিনট্যাক্স ব্যাখ্যা :
-f(ওরফে --force:)। যদি গিট কনফিগারেশন ভেরিয়েবল clean.requireForce মিথ্যাতে সেট না করা থাকে, -ফ, -n বা -i না দিয়ে গিট ক্লিন ফাইল বা ডিরেক্টরি মুছতে অস্বীকার করবে। গিটটি .git সাব ডিরেক্টরি বা ফাইলের সাথে ডিরেক্টরিগুলি মুছতে অস্বীকার করবে যতক্ষণ না দ্বিতীয় -f দেওয়া হয়।-d। চিহ্নবিহীন ফাইলগুলি ছাড়াও তালিকাভুক্ত ডিরেক্টরিগুলি সরান। যদি কোনও চিহ্নবিহীন ডিরেক্টরি অন্য কোনও গিট সংগ্রহস্থল দ্বারা পরিচালিত হয়, তবে এটি ডিফল্টরূপে সরানো হয় না। আপনি যদি সত্যিই এই জাতীয় ডিরেক্টরি মুছতে চান তবে দুবার -f বিকল্পটি ব্যবহার করুন।মন্তব্যগুলিতে উল্লিখিত হিসাবে, এটি git clean -ndএকটি শুকনো রান করে এমনটি করা ভাল and এবং এটি মুছে ফেলার আগে আপনাকে কী মুছে ফেলা হবে তা বলবে।
git cleanডক পৃষ্ঠার লিঙ্ক :
https://git-scm.com/docs/git-clean
git clean -nd .প্রকৃতপক্ষে ফাইলগুলি মুছে ফেলার আগেgit clean -fd .
add -A+ commit -a+ করতে পারেন । প্রতিটি মুছে ফেলা পর্যালোচনা সহজভাবে বড় পরিস্থিতিতে জন্য স্কেল না। এছাড়াও, শুকনো দৌড়ানো কোনও রূপোর বুলেট নয়: আপনি যদি পর্যালোচনা চলাকালীন কোনও কিছু মিস করেন বা ভুল করে থাকেন তবে কী হবে? revert headgit clean
সব জন্য unstaged ফাইল ব্যবহার করুন:
git checkout -- .
.শেষে গুরুত্বপূর্ণ।
.আপনার প্রকল্পের একটি নির্দিষ্ট সাব-ডিরেক্টরি সাফ করার জন্য আপনি একটি উপ ডিরেক্টরি ডিরেক্টরি দিয়ে প্রতিস্থাপন করতে পারেন । সমস্যাটি এখানে বিশেষভাবে সম্বোধন করা হয়েছে ।
src/app/work/filename.jsএবং ../app/working/test/filename.js। কেবল git checkout -- .শাখায় ব্যবহার করে কেবল প্রথম ফাইলটি মুছে ফেলা হয়েছে ( অগ্রণী .. / ছাড়াই )। সুতরাং আমি cd ../দ্বিতীয় অবস্থান ডিরেক্টরিতে প্রবেশ করতে হবে যাতে দ্বিতীয় কমান্ড ব্যবহার করে ফাইল মুছতে।
কটাক্ষপাত আছে git cleanকমান্ড।
গিট-ক্লিন - কার্যকারী গাছ থেকে তালা ছাড়ানো ফাইলগুলি সরান
বর্তমান ডিরেক্টরি থেকে শুরু করে সংস্করণ নিয়ন্ত্রণে নেই এমন ফাইলগুলি পুনরাবৃত্তভাবে অপসারণ করে কার্যকরী গাছটি সাফ করে।
সাধারণত, গিটের অজানা ফাইলগুলি সরিয়ে ফেলা হয়, তবে -x বিকল্পটি নির্দিষ্ট করা থাকলে, উপেক্ষা করা ফাইলগুলিও সরানো হবে। এটি উদাহরণস্বরূপ, সমস্ত বিল্ড পণ্য মুছে ফেলার জন্য দরকারী হতে পারে।
git clean -iমেনু থেকে "পরিষ্কার" চেষ্টা করেছি এবং বেছে নিয়েছি - এটি শেষ পর্যন্ত নতুন ফাইলগুলি সরিয়ে দিয়েছে।
নিম্নলিখিত কাজগুলি:
git add -A .
git stash
git stash drop stash@{0}
দয়া করে নোট করুন যে এটি আপনার অচিহ্নবদ্ধ এবং মঞ্চস্থ স্থানীয় পরিবর্তনগুলি উভয়ই বাতিল করবে। সুতরাং আপনি এই আদেশগুলি চালানোর আগে আপনার যা কিছু রাখতে চান তা করা উচিত।
একটি সাধারণ ব্যবহারের কেস: আপনি চারপাশে প্রচুর ফাইল বা ডিরেক্টরি সরিয়ে নিয়েছেন এবং তারপরে মূল অবস্থায় ফিরে যেতে চান।
git stash drop? রেফারেন্স করছেন কেন ?
git add -A .) নিশ্চিত হন। আমি 30 মি বেকস হারিয়েছি কোন ফাইল ম্যাচ ছিল না। ধন্যবাদ!
আপনি দুটি পদক্ষেপে এটি করতে পারেন:
git checkout -fgit clean -fdআমি ভেবেছিলাম এটা ছিল ( সতর্কতা: নিম্নলিখিত হবে সবকিছু অপনোদন )
$ git reset --hard HEAD
$ git clean -fd
resetপরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে আনতে। cleanকোনো untracked মুছে ফেলার জন্য চ Iles এবং ঘ irectories।
git pullএরপরে কাজ করার পরেও CONFLICT (content): Merge conflict in...আমি একটি সংঘাতের সতর্কতা পেয়েছি : আমি কেবল git pull --strategy=ours
git reset --hard origin/{branchName}
এটি সমস্ত চিহ্নবিহীন ফাইল মুছে ফেলবে।
git clean -iপ্রথমে আপনাকে মুছে ফেলা আইটেমগুলি দেখিয়ে দেবে এবং আপনার নিশ্চয়তার পরে এগিয়ে যাবে। দুর্ঘটনাক্রমে মুছে ফেলা উচিত নয় এমন গুরুত্বপূর্ণ ফাইলগুলির সাথে ডিল করার সময় আমি এটি দরকারী মনে করি।
আরও git help cleanকিছু দরকারী বিকল্প সহ আরও তথ্যের জন্য দেখুন।
আপনি যদি সমস্ত পরিবর্তনগুলি বাতিল করতে চান তবে আপনি একটি উলামে বৈধ বিকল্পগুলির মধ্যে যে কোনওটি ব্যবহার করতে পারেন .gitconfig। এই ক্ষেত্রে:
[alias]
discard = "!f() { git add . && git stash && git stash drop stash@{0}; }; f"
ব্যবহার: git discard
বিকল্প সমাধান হ'ল পরিবর্তনগুলি করা এবং তারপরে এই কমিটগুলি থেকে মুক্তি পান। এটির প্রথমে কোনও তাত্ক্ষণিক সুবিধা নেই তবে এটি খণ্ডগুলি প্রতিশ্রুতিবদ্ধ হওয়ার এবং ব্যাকআপের জন্য গিট ট্যাগ তৈরি করার সম্ভাবনাটি উন্মুক্ত করে।
আপনি এটি বর্তমান শাখায় এটি করতে পারেন:
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git revert HEAD
git reset HEAD^^
অথবা আপনি এটি পৃথক হেডে করতে পারেন। (ধরে নিলাম আপনি BRANCHNAME শাখায় শুরু করছেন):
git checkout --detach HEAD
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git checkout BRANCHNAME
যাইহোক, আমি সাধারণত যা করি তা হ'ল কিছু অংশে প্রতিশ্রুতিবদ্ধ করা, তারপরে কিছু বা সমস্ত কমিটের নাম রাখুন "ডিস্কার্ড: ..."। তারপরে খারাপ কমিটগুলি সরিয়ে ফেলতে এবং ভাল করার জন্য ইন্টারেক্টিভ রিবেস ব্যবহার করুন।
git add -p # Add changes in chunks.
git commit -m"DISCARD: Some temporary changes for debugging"
git add -p # Add more stuff.
git commit -m"Docblock improvements"
git tag archive/local-changes-2015-08-01
git rebase -i (commit id) # rebase on the commit id before the changes.
# Remove the commits that say "DISCARD".
এটি আরও ভার্বোজ, তবে এটি আপনাকে ঠিক কী পরিবর্তনগুলি বাতিল করতে চান তা পর্যালোচনা করতে দেয়।
git lolএবংgit lola শর্টকাট এই ওয়ার্কফ্লোটি সঙ্গে খুব সহায়ক হয়েছে।
নির্দিষ্ট ফোল্ডারের জন্য আমি ব্যবহার করেছি:
git checkout -- FolderToClean/*
এটি সম্ভবত একটি দুর্দান্ত উত্তর, তবে: আমি উইন্ডোজগুলির জন্য টরটোইজিট ব্যবহার করি এবং এটিতে একটি দুর্দান্ত বৈশিষ্ট্য রয়েছে যার নাম দেওয়া হয় রিভার্ট। সুতরাং আপনি আপনার স্থানীয় ননস্টেজড ননপুষ্পযুক্ত পরিবর্তনগুলি ফিরিয়ে আনার জন্য যা করছেন তা হ'ল:
git help resetএবংgit help clean