কিছুক্ষণ আগে গিট দ্বারা ট্র্যাক করা কোনও ফাইলের পরিবর্তনগুলি উপেক্ষা করার জন্য আমি এটি করেছি:
git update-index --skip-worktree <file>
এখন আমি আসলে সেই উত্সটিতে উত্স পরিবর্তন করতে চাই। কীভাবে আমি এর প্রভাবগুলি পূর্বাবস্থায় ফেলি skip-worktree
?
কিছুক্ষণ আগে গিট দ্বারা ট্র্যাক করা কোনও ফাইলের পরিবর্তনগুলি উপেক্ষা করার জন্য আমি এটি করেছি:
git update-index --skip-worktree <file>
এখন আমি আসলে সেই উত্সটিতে উত্স পরিবর্তন করতে চাই। কীভাবে আমি এর প্রভাবগুলি পূর্বাবস্থায় ফেলি skip-worktree
?
উত্তর:
আহা! আমি কেবল চাই:
git update-index --no-skip-worktree <file>
Http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html এর মতে , ব্যবহার করুন
git ls-files -v
একটি বিশেষ অক্ষরের সাথে চিহ্নিত "অপরিবর্তিত ধরে নেওয়া" এবং "স্কিপ-ওয়ার্ক্রিট্রি" ফাইলগুলি দেখতে। "স্কিপ-ওয়ার্ক্রিট্রি" ফাইলগুলি চিহ্নিত রয়েছে S
।
সম্পাদনা : যেমন @ ম্যাকালওড উল্লেখ করেছেন, সমস্ত লুকানো ফাইলের তালিকা তৈরি করার জন্য একটি উপাসনা তৈরি করা একটি দুর্দান্ত কৌশল যা আপনাকে এটি মনে রাখার দরকার নেই। আমি alias hidden="git ls-files -v | grep '^S'"
আমার .বাশ_ প্রোফাইলে ব্যবহার করি। এটি দুর্দান্ত কাজ করে!
git ls-files -v | grep '^S'
স্কিপ-ওয়ার্কট্রি সহ আমি যে ফাইলগুলি "লুকিয়ে রেখেছি" তার তালিকাতে আমি ব্যবহার করতে পারি। এই কমান্ডের জন্য একটি উপনামকে "লুকানো" তৈরি করার আশাবাদী, তবে উলেফে পাইপ পুনর্নির্দেশ স্থাপন করা কার্যকর মনে হয়নি।
!
। এই [alias] ignored = !git ls-files -v | grep "^S"
পরীক্ষিত মত , কাজ।
grep
, আমি জানি না। আপনার শেল উপর নির্ভর করে, আমার ধারণা। গিট বাশ নিয়ে আসে grep
, আমার মনে হয়।
'
কাজ "
হয়নি তবে করেছে, অর্থাৎgit ls-files -v | grep "^S"
ওয়ার্কট্রি স্কিপ প্রয়োগ করা সমস্ত ফাইল যদি আপনি পূর্বাবস্থায় ফিরিয়ে আনতে চান তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
git ls-files -v | grep -i ^S | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree
git ls-files -v
সমস্ত ফাইল তাদের স্থিতি সহ মুদ্রণ করবেgrep -i ^S
ফাইলগুলি ফিল্টার করবে এবং কেবলমাত্র ওয়ার্কট্রি (এস) এড়িয়ে চলা বা ওয়ার্কট্রি এড়িয়ে চলা এবং অপরিবর্তিত (গুলি) ধরে নেবে, -আই মানে সংবেদনশীল কেস উপেক্ষা করুনcut -c 3-
স্থিতিটি সরিয়ে ফেলবে এবং 3-তম বর্ণ থেকে শেষ পর্যন্ত কেবল পথ ছাড়বেtr '\012' '\000'
লাইন চরিত্রের শেষ (\ 012) শূন্য অক্ষর (\ 000) এ প্রতিস্থাপন করবেxargs -0 git update-index --no-skip-worktree
git update-index --no-skip-worktree
পূর্বাবস্থায় ফিরে আসার জন্য শূন্য অক্ষর দ্বারা পৃথক সমস্ত পাথ পাস করবে@ GuidC0DE উত্তরের ভিত্তিতে, পাওয়ারশেলের জন্য এখানে একটি সংস্করণ রয়েছে (আমি পশ-গিট ব্যবহার করি )
git update-index --no-skip-worktree $(git ls-files -v | sls -pattern "^S"| %{$_.Line.Substring(2)})
এবং রেফারেন্সের জন্য ফাইলগুলি লুকানোর জন্য বিপরীত কমান্ড:
git update-index --skip-worktree $(git ls-files --modified)
কচ্ছপ গিট ব্যবহারকারীদের জন্য:
TortoiseGit > Check for modifications
Show ignore local changes flagged files
। আপনি যে ফাইলটিকে অগ্রাহ্য করেছেন তা দেখতে হবে (বা আপনি যে সমস্ত ফাইল উপেক্ষা করেছেন সেগুলি যদি আপনি ফোল্ডারে ডান ক্লিক করেন)Unflag as skip-worktree and assume-unchanged
আপনারা যারা বাশ এলিয়াসকে ভালবাসেন তাদের সকলের জন্য, আমি তাদের সকলের শাসন করতে প্রস্তুত (সি0ডিএফ52 এর উপর ভিত্তি করে)
alias gitskip='git update-index --skip-worktree ' #path to file(s)
alias gitlistskiped='git ls-files -v | grep ^S'
alias gitunskip='git update-index --no-skip-worktree ' #path to file(s)
alias gitunskipall='git ls-files -v | grep -i ^S | cut -c 3- | tr ''\\012'' ''\\000'' | xargs -0 git update-index --no-skip-worktree'
এই উত্তরটি উইন্ডোজ ব্যবহার করে কম প্রযুক্তিবিদদের উদ্দেশ্যে করা হয়েছে।
আপনি যদি কোন ফাইলগুলি "স্কিপ-ওয়ার্ক্রিট্রি" ক্লিক করেছেন তা যদি মনে না / না জানেন তবে ব্যবহার করুন:
git ls-files -v //This will list all files, you are looking for the ones with an S at the beginning of the line.
git ls-files -v | grep "S " //Use this to show only the lines of interest. Those are the files that have "skip-worktree".
আপনার সমস্যা সমাধানের জন্য:
আপনি ফাইলগুলিতে যেতে পারেন -> ডান ক্লিক করুন -> পূর্ববর্তী সংস্করণে পুনরুদ্ধার করুন -> উপরের "গিট" ট্যাবটি ক্লিক করুন -> নীচে "স্কিপ-ওয়ার্ক্রি" চেকবক্সটি নির্বাচন করুন -> নীচে "প্রয়োগ করুন" ক্লিক করুন।
যদি ফাইলগুলি হাত দ্বারা ঠিক করার জন্য খুব বেশি হয় তবে আপনাকে অন্যান্য উত্তরগুলি উল্লেখ করতে হবে।