গিট ব্যতিক্রম উপেক্ষা


326

আমার কাছে একটি গিটিগনোর ফাইল রয়েছে যা গিটকে *.dllফাইলগুলি উপেক্ষা করে এবং এটাই আসলে আমার ইচ্ছা আচরণ। তবে, যদি আমি একটি ব্যতিক্রম চাই (অর্থাত্ প্রতিশ্রুতি রাখতে সক্ষম হও foo.dll) তবে আমি কীভাবে এটি অর্জন করতে পারি?



এই বিষয়টিতে সদৃশ উত্তরের দাদা - যা আপনার পক্ষে দেখা উচিত - সম্ভবত মেক .গিটিগনোর কয়েকটি ফাইল ব্যতীত সমস্ত কিছুই উপেক্ষা করবেন - খুব নিয়মিত ক্রিয়াকলাপ এবং বেশ কয়েকটি ভাল উত্তর। আমি এই উত্তরের একটি বিশেষ অনুরাগী , যা পরিষ্কার এবং পুরোপুরি মনে হয়।
কে ভি

উত্তর:


447

ব্যবহার করুন:

*.dll    #Exclude all dlls
!foo.dll #Except for foo.dll

গিটিগনোর থেকে :

একটি alচ্ছিক উপসর্গ! যা প্যাটার্ন অবহেলা করে; পূর্ববর্তী প্যাটার্ন দ্বারা বাদ দেওয়া কোনও মিলে যাওয়া ফাইল আবার অন্তর্ভুক্ত হবে। যদি কোনও অবহেলিত প্যাটার্ন মেলে তবে এটি নিম্ন অগ্রাধিকারের নিদর্শন উত্সগুলিকে ওভাররাইড করবে।


22
@ ম্যাটিস জুরগেলিসের উত্তর ফর্মটিও দেখুন - এটির গুরুত্বপূর্ণ সংযোজন
ড্যান

7
আমি কি আমার প্রকল্পের গিটিগনোরের ব্যতিক্রমটি যুক্ত করতে পারি এবং আমার বিশ্বব্যাপী গিটিগনোরকে না? উদাহরণস্বরূপ, আমি যদি কোনও ডিরেক্টরিতে সমস্ত ডিএলএল অন্তর্ভুক্ত করতে চাইতাম? এতে আমার গিটিগনোর_গ্লোবাল রয়েছে *.dllএবং আমার প্রকল্পের গিটিগনোর রয়েছে !Libs/*.dllতবে এটি কাজ করছে বলে মনে হয় না।
জোয়েল কিনজেল

1
@ জকিঞ্জ, আপনার চেষ্টা করা উচিত !Libs/**/*.dll
রোজবার্গ লিনহারেস

!**/Libs/*.dllফোল্ডারের কাঠামোর উপর নির্ভর করে @ রসবার্গিনহারেস বা
জ্যাব

2
ধন্যবাদ, তবে একটি ম্যাকের সাথে একই লাইনে মন্তব্য যুক্ত করা যেমন !foo.dllআদেশটি অকার্যকর করেছে। আমি যদি পৃথক সারিতে মন্তব্য যুক্ত করি তবে এটি কার্যকর হয়।
গিয়াকোমো

260

আপনি লিখলে গিট ফোল্ডারগুলি উপেক্ষা করে:

/js

কিন্তু এটা ব্যতিক্রম যোগ করতে পারবেন না যদি আপনি না: !/js/jqueryবা !/js/jquery/বা!/js/jquery/*

আপনার অবশ্যই লিখতে হবে:

/js/* 

এবং তবেই আপনি এটির মতো সাব-ফোল্ডারগুলি বাদ দিতে পারেন

!/js/jquery

43
এটা খুব গুরুত্বপূর্ণ। ধন্যবাদ!
ভিজিওন

3
তবে দেখে মনে হচ্ছে আপনি নেস্টেড ফোল্ডার যুক্ত করতে পারবেন না, যেমন !/js/jquery/xyzlibউপেক্ষা করা হবে না ...
অজ্ঞ 18

2
@ অজ্ঞাত হিসাবে যেমনটি বলা হয়েছে, আপনি যে ফোল্ডারটি উপেক্ষা করবেন সেই নিয়ম থেকে "ব্যতীত" অবশ্যই একই স্থানে থাকতে হবে "*"
দ্য রেড মটর

3
তাই /js/*, !/js/jquery, /js/jquery/*, !/js/jquery/xyzlib? এটি করার মতো বরং মজার উপায় মনে হচ্ছে ...
অনির্বচনীয় রাত

আপনি সত্যিই আমাকে সাহায্য করেছেন।
লোইয়া

55

আপনি সহজভাবে পারেন git add -f path/to/foo.dll

.gitignore সাধারণ ট্র্যাকিং এবং স্টাফের মতো ফাইলগুলির জন্য কেবল ফাইলগুলি উপেক্ষা করে git add .


4
কেবলমাত্র বিশদ জন্য, -f.gitignore
গিটগুলি রেপোতে

কোনটি যদি আপনার কাছে কেবল একটি ফাইল থাকে তবে আপনার প্যাটার্নের প্রয়োজন হলে কম দরকারী
লিয়াম লগ


15

!একটি বর্জনীয় নিয়মের আগে কেবল যুক্ত করুন ।

গিটিগনোর ম্যান পৃষ্ঠা অনুসারে :

প্যাটার্নগুলির নিম্নলিখিত ফর্ম্যাট রয়েছে:

...

  • একটি alচ্ছিক উপসর্গ! যা প্যাটার্ন অবহেলা করে; পূর্ববর্তী প্যাটার্ন দ্বারা বাদ দেওয়া কোনও মিলে যাওয়া ফাইল আবার অন্তর্ভুক্ত হবে। যদি কোনও অবহেলিত প্যাটার্ন মেলে তবে এটি নিম্ন অগ্রাধিকারের নিদর্শন উত্সগুলিকে ওভাররাইড করবে।


4

যদি আপনি ভিজ্যুয়াল স্টুডিওতে কাজ করছেন এবং আপনার .dll কোনও binফোল্ডারে উপস্থিত হয়, আপনি .dll ফাইলের জন্য ব্যতিক্রম যুক্ত করার আগে আপনাকে নির্দিষ্ট বিন ফোল্ডারের জন্য একটি ব্যতিক্রম যুক্ত করতে হবে। যেমন

!SourceCode/Solution/Project/bin
!SourceCode/Solution/Project/bin/My.dll

এটি কারণ ডিফল্ট ভিজ্যুয়াল স্টুডিও .gitignoreফাইলের জন্য একটি উপেক্ষা প্যাটার্ন অন্তর্ভুক্ত[Bbin]/

এই প্যাটার্নটি সমস্ত বিন ফোল্ডারগুলি (এবং ফলস্বরূপ তাদের বিষয়বস্তুগুলি) zapping করছে, যা সামগ্রীগুলি রিলান্ড্যান্ট (যেহেতু ফোল্ডারটি নিজেই ইতিমধ্যে উপেক্ষা করা হয়েছে) অন্তর্ভুক্ত করার কোনও প্রচেষ্টা করে।

আমার ফাইলটি চালানোর কারণে বাদ দেওয়া হচ্ছে না তা আমি খুঁজে পেতে সক্ষম হয়েছি

git check-ignore -v -- SourceCode/Solution/Project/bin/My.dll

গিট বাশ উইন্ডো থেকে এই [Bbin]/প্যাটার্ন ফিরে ।


2

সমাধান গিট উপেক্ষা করার নিয়ম এবং ব্যতিক্রম নিয়মের মধ্যে সম্পর্কের উপর নির্ভর করে:

  1. ফাইল / ফাইলগুলি একই স্তরে: @ স্কিলড্রিক সমাধানটি ব্যবহার করুন ।
  2. ফোল্ডার / সাবফোল্ডার : @ ম্যাটিস জুরগেলিস দ্রবণটি ব্যবহার করুন ।
  3. ফাইল / ফাইল বিভিন্ন স্তরে বা ফাইল / সাবফোল্ডার: আপনি এটি করতে পারেন:

    *.suo
    *.user
    *.userosscache
    *.sln.docstates
    
    # ...
    
    # Exceptions for entire subfolders
    !SetupFiles/elasticsearch-5.0.0/**/*
    !SetupFiles/filebeat-5.0.0-windows-x86_64/**/*
    
    # Exceptions for files in different levels
    !SetupFiles/kibana-5.0.0-windows-x86/**/*.suo
    !SetupFiles/logstash-5.0.0/**/*.suo
    

1

যেহেতু গিট ২.7.০ গিট ব্যতিক্রমগুলি অ্যাকাউন্টে নেবে। সরকারী প্রকাশের নোটগুলি থেকে:

  • পরে "! / Abc / def" কে একইরূপে .gitignore ফাইলটিতে প্রদর্শিত "/ abc / def" কে ওভাররাইড করার অনুমতি দিন "/ abc ডিরেক্টরিতে সমস্ত কিছু উপেক্ষা করা হয় ..." ব্যতীত এটিকে সহজেই প্রকাশ করা যায় না "।

https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.7.0.txt


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