গিটে পরিবর্তিত (তবে প্রতিশ্রুতিবদ্ধ নয়) ফাইলগুলি উপেক্ষা করবেন?


181

আমি কি গিটকে এমন ফাইলগুলি উপেক্ষা করতে বলতে পারি যা সংশোধিত (মুছে ফেলা) তবে প্রতিশ্রুতিবদ্ধ হওয়া উচিত নয়?

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

তবে এখন, আমি যদি সেই ফোল্ডারটিকে .gitignore এ যুক্ত করি, তবে কিছুই পরিবর্তন হয় না, সমস্ত জিনিস গিটের স্থিতি দ্বারা মুছে ফেলা হিসাবে প্রদর্শিত হয়।

গিটকে অন্যভাবে উপেক্ষা করার কোনও উপায় আছে কি?

(বিকল্প হিসাবে, আমি যেমন গিট-এসএনএন ব্যবহার করছি, আমি কি স্থানীয় গিটটিতে পরিবর্তনগুলি সংঘটিত করতে এবং সেগুলি এসএনএন রেপোতে দেওয়া হয়নি তা নিশ্চিত করতে পারি?)


এগুলিকে কেবল রেপো সূচকে অপরিবর্তিত হিসাবে চিহ্নিত করার পরিবর্তে আপনি এগুলি পুরো সূচি থেকে মুছে ফেলতে চাইতে পারেন। সুতরাং আপনার যখন এখনও আপনার কার্যক্ষম ডিরেক্টরিতে ফাইলটি থাকবে, রেপো সূচকটি সম্পূর্ণরূপে ডেল্ট করা যেতে পারে এবং গিট এমনকি এটিকে একেবারেই বিদ্যমান বলেও দেখতে পাবে না। নীচে আমার উত্তর লিঙ্কটি দেখুন।
মৌরারপাওয়ার

উত্তর:


274

খুঁজে বার করো Git-আপডেট-সূচক man পৃষ্ঠা এবং --assume-অপরিবর্তিত বিট এবং সম্পর্কিত।

আমার যখন আপনার সমস্যা হয় আমি এটি করি

git update-index --assume-unchanged dir-im-removing/

বা একটি নির্দিষ্ট ফাইল

git update-index --assume-unchanged config/database.yml

3
আপনি কি আপনার সমস্ত উপেক্ষা করা ফাইলগুলি কোনওভাবে তালিকাভুক্ত করতে পারেন?
জিট্রাক্স

21
আপনি পেতে পারেন ফাইলগুলির সাথে ব্যাকgit update-index --no-assume-unchanged config/database.yml
ডেনিস Kniazhev

1
কিছু ত্রুটি না করে নতুন সমাধানের জন্য নীচে ডেভ এল এর উত্তর দেখুন --assume-unchanged
বেন চ্যালেঞ্জার

2
প্রতিবার এই কমান্ডটি ম্যানুয়ালি চালানোর পরিবর্তে, এটি কি সংগ্রহস্থল কনফিগারেশন ফাইলে যুক্ত করা সম্ভব?
টিম বোল্যান্ড

1
এটি কি পরবর্তী প্রতিশ্রুতি হিসাবে সংশোধিত হিসাবে প্রদর্শিত হবে? আমি চাই না যে এটি চিরদিনের জন্য অপরিবর্তিত রয়েছে be
প্রণব নন্দন

41

একটি নতুন এবং আরও ভাল বিকল্পটি git update-index --skip-worktreeযা হার্ড রিসেট বা টান থেকে কোনও নতুন পরিবর্তন হারাবে না।

ম্যান পৃষ্ঠাটি http://schacon.github.com/git/git-update-index.html এ দেখুন

এবং একটি তুলনা http : //fallengamer.livej पत्रकार . com/93321.html


9
একটি অসুবিধা লক্ষণীয় হ'ল একবার ফাইলের পরিবর্তনগুলি আড়াল হয়ে গেলে skip-worktreeএই ফাইলগুলি সন্ধান করা কিছুটা জটিল umbers আমি একমাত্র উপায় জানি git ls-files -v |grep -v '^H'। এছাড়াও, অনেক জিইউআই সরঞ্জাম এই বৈশিষ্ট্যটি সম্পর্কে জানে না এবং মজাদার ত্রুটিগুলি তৈরি করতে পারে যেমন checkout"লুকানো" পরিবর্তিত ফাইলগুলির কারণে ব্যর্থ হলে।
sleske

গিট ডক ফাইলগুলির মধ্যে আমি কখনই বুঝতে পারি না। সুতরাং এটি খুব সাহায্য না। (প্রতিটি ডক ফাইলই ধরে নিয়েছে যে আপনি প্রতিটি অন্যান্য ডক ফাইলের সূক্ষ্মতা বুঝতে পেরেছেন!)
স্কট বিগস

7

এই কোড ব্যবহার করুন

git update-index --assume-unchanged file-name

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

6

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


1
এইচএম, আমি এটি চেষ্টা করে দেখি তবে তারপরে আমার সমস্ত ফাইল মুছে ফেলা হিসাবে তালিকাবদ্ধ রয়েছে। আমার কি এটি করা উচিত এবং - ক্যাশেডের কারণে এটি দূরবর্তী অঞ্চলে ঠেলে দেওয়া হবে না? নাকি আমি স্টেচ পেয়েছি? ভুল? আমার জন্য সবচেয়ে গুরুত্বপূর্ণ হ'ল রিমোট (এসএনএন) রেপোকে কলুষিত করা।

1
আপনার সূচীতে শুরু না হওয়া এমন কোনও কিছু আপনি করতে পারবেন না। গিট আরএম - আপনি যা প্রতিশ্রুতিবদ্ধ করতে চান না এমন সমস্ত কিছু ক্যাচ করেছেন, তারপরে স্থানীয়ভাবে একটি .gitignore ফাইল যুক্ত করুন যা এতে "*" রয়েছে। এখন, আপনি যতই গিট করেন না কেন, আপনি আর কখনও নিজের সূচীতে এই ফাইলগুলি দেখতে পাবেন না।
জন Feminella

আহ, আমি মনে করি আমি এখনই ক্যাচড বুঝতে পেরেছি .. এটি কেবল সূচক থেকে জিনিসগুলি সরিয়ে দেয় এবং কার্যকারী গাছকে একা ফেলে দেয় .. আমি কিছু অনুপস্থিত কিনা তা নিশ্চিত নই, তবে এএফএআইএস আমি তার বিপরীতে খুঁজছি , সূচকে স্পর্শ না করে এটিকে কার্যকরী গাছ থেকে সরানো হচ্ছে .. বা আমি কি এটির জন্য এটি ব্যবহার করতে পারি?

6

আমি সাধারণত যা করি তা হ'ল

গিট স্ট্যাশ

অন্যথায় যাই হোক না কেন

গিট স্ট্যাশ প্রয়োগ

গিট স্ট্যাশ ক্লিয়ার


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