গিট আপডেট-সূচি পূর্বাবস্থায় ফিরিয়ে আনুন - স্কিপ-ওয়ার্কট্রি


148

কিছুক্ষণ আগে গিট দ্বারা ট্র্যাক করা কোনও ফাইলের পরিবর্তনগুলি উপেক্ষা করার জন্য আমি এটি করেছি:

git update-index --skip-worktree <file>

এখন আমি আসলে সেই উত্সটিতে উত্স পরিবর্তন করতে চাই। কীভাবে আমি এর প্রভাবগুলি পূর্বাবস্থায় ফেলি skip-worktree?


11
আমিও আগ্রহী যে কীভাবে 'স্কিপ-ওয়ার্ক্রিট্রি' অবস্থায় ফাইলগুলির তালিকা পাবেন?
Troex

উত্তর:


202

আহা! আমি কেবল চাই:

git update-index --no-skip-worktree <file>

8
আমি আহা ভালোবাসি!
রুটো কলিন্স

1
কে এটি
ছুঁড়ে ফেলবে

1
আহা! = ইউরিকা! : ডি
দাইত

আমি যে আপ করতে পারে!
টম প্যাডিলা

পৃষ্ঠার নীচে সেরা উত্তরটি কেন
কার্ল ক্রয়েগার আইহল

35

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'"আমার .বাশ_ প্রোফাইলে ব্যবহার করি। এটি দুর্দান্ত কাজ করে!


9
ঝরঝরে। git ls-files -v | grep '^S'স্কিপ-ওয়ার্কট্রি সহ আমি যে ফাইলগুলি "লুকিয়ে রেখেছি" তার তালিকাতে আমি ব্যবহার করতে পারি। এই কমান্ডের জন্য একটি উপনামকে "লুকানো" তৈরি করার আশাবাদী, তবে উলেফে পাইপ পুনর্নির্দেশ স্থাপন করা কার্যকর মনে হয়নি।
amacleod

5
@amacleod একটি ব্যবহার !। এই [alias] ignored = !git ls-files -v | grep "^S"পরীক্ষিত মত , কাজ।
স্টিভেন লু

@amacleod মনে করবেন না আপনি উইন্ডোজ জন্য একটি বিকল্প কমান্ড পরামর্শ দিতে সক্ষম হবেন?
স্টিভ চেম্বারস

1
@ স্টেভ চ্যাম্বারস, ইনস্টলিংয়ের সংক্ষিপ্ত grep, আমি জানি না। আপনার শেল উপর নির্ভর করে, আমার ধারণা। গিট বাশ নিয়ে আসে grep, আমার মনে হয়।
amacleod

1
উজ্জ্বল, ধন্যবাদ @ ম্যাকালওড - ঠিক আমার পথে ছিল না। এটির জন্য উইন্ডোজটিতে কাজ করার জন্য আমার কেবলমাত্র একটি পরিবর্তন প্রয়োজন ছিল তা হল উদ্ধৃতি শৈলী - 'কাজ "হয়নি তবে করেছে, অর্থাৎgit ls-files -v | grep "^S"
স্টিভ চেম্বার্স

17

ওয়ার্কট্রি স্কিপ প্রয়োগ করা সমস্ত ফাইল যদি আপনি পূর্বাবস্থায় ফিরিয়ে আনতে চান তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

git ls-files -v | grep -i ^S | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree
  1. git ls-files -v সমস্ত ফাইল তাদের স্থিতি সহ মুদ্রণ করবে
  2. grep -i ^S ফাইলগুলি ফিল্টার করবে এবং কেবলমাত্র ওয়ার্কট্রি (এস) এড়িয়ে চলা বা ওয়ার্কট্রি এড়িয়ে চলা এবং অপরিবর্তিত (গুলি) ধরে নেবে, -আই মানে সংবেদনশীল কেস উপেক্ষা করুন
  3. cut -c 3- স্থিতিটি সরিয়ে ফেলবে এবং 3-তম বর্ণ থেকে শেষ পর্যন্ত কেবল পথ ছাড়বে
  4. tr '\012' '\000' লাইন চরিত্রের শেষ (\ 012) শূন্য অক্ষর (\ 000) এ প্রতিস্থাপন করবে
  5. xargs -0 git update-index --no-skip-worktreegit update-index --no-skip-worktreeপূর্বাবস্থায় ফিরে আসার জন্য শূন্য অক্ষর দ্বারা পৃথক সমস্ত পাথ পাস করবে

1
এটি সেরা উত্তর
দেব

এই উত্তর খাঁটি সোনার!
ইয়াসিকো

7

@ 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)

3

কচ্ছপ গিট ব্যবহারকারীদের জন্য:

  1. ফোল্ডারে বা নির্দিষ্ট ফাইলটিতে ডান ক্লিক করুন, তারপরে নির্বাচন করুন TortoiseGit > Check for modifications
  2. শুধু চেক Show ignore local changes flagged files। আপনি যে ফাইলটিকে অগ্রাহ্য করেছেন তা দেখতে হবে (বা আপনি যে সমস্ত ফাইল উপেক্ষা করেছেন সেগুলি যদি আপনি ফোল্ডারে ডান ক্লিক করেন)
  3. ফাইলটিতে রাইট ক্লিক করুন এবং নির্বাচন করুন Unflag as skip-worktree and assume-unchanged

3

আপনারা যারা বাশ এলিয়াসকে ভালবাসেন তাদের সকলের জন্য, আমি তাদের সকলের শাসন করতে প্রস্তুত (সি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'

0

এই উত্তরটি উইন্ডোজ ব্যবহার করে কম প্রযুক্তিবিদদের উদ্দেশ্যে করা হয়েছে।

আপনি যদি কোন ফাইলগুলি "স্কিপ-ওয়ার্ক্রিট্রি" ক্লিক করেছেন তা যদি মনে না / না জানেন তবে ব্যবহার করুন:

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".

আপনার সমস্যা সমাধানের জন্য:

আপনি ফাইলগুলিতে যেতে পারেন -> ডান ক্লিক করুন -> পূর্ববর্তী সংস্করণে পুনরুদ্ধার করুন -> উপরের "গিট" ট্যাবটি ক্লিক করুন -> নীচে "স্কিপ-ওয়ার্ক্রি" চেকবক্সটি নির্বাচন করুন -> নীচে "প্রয়োগ করুন" ক্লিক করুন।

যদি ফাইলগুলি হাত দ্বারা ঠিক করার জন্য খুব বেশি হয় তবে আপনাকে অন্যান্য উত্তরগুলি উল্লেখ করতে হবে।

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