গিট প্রকল্পে কোনও 'বিন' ডিরেক্টরি উপেক্ষা করে


1236

আমার একটি ডিরেক্টরি কাঠামো আছে:

.git/
.gitignore
main/
  ...
tools/
  ...
...

প্রধান এবং সরঞ্জামগুলির মধ্যে এবং অন্য যে কোনও ডিরেক্টরিতে, যে কোনও স্তরে, একটি 'বিন' ডিরেক্টরি থাকতে পারে, যা আমি উপেক্ষা করতে চাই (এবং আমি এর অধীনেও সমস্ত কিছু উপেক্ষা করতে চাই)। আমি এই সমস্ত নিদর্শনগুলি .gitignore এ চেষ্টা করেছি তবে সেগুলির কোনওটিই কাজ করে না:

/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too

যে কেউ আমাকে সাহায্য করতে পারেন? আমি যদি এটি করি তবে প্রথম প্যাটার্নটি (যেটাকে আমার কাজ করা উচিত বলে মনে হয়) ঠিক ঠিক কাজ করে:

/main/**/bin/**/*

তবে আমি প্রতিটি শীর্ষ স্তরের ডিরেক্টরিতে প্রবেশ করতে চাই না এবং প্রতিবারই আমি একটি নতুন যুক্ত করার সময় .gitignore সংশোধন করতে চাই না।

এটি উইন্ডোতে সর্বশেষতম এমএসজিজিট ব্যবহার করে।

সম্পাদনা: আরও একটি বিষয়, এমন ফাইল এবং ডিরেক্টরি রয়েছে যেগুলির নামে 'বিন' স্ট্রিং রয়েছে, আমি চাই না সেগুলি উপেক্ষা করা হবে :)


14
সম্ভবত কেউ সহায়ক হিসাবে খুঁজে পাবেন: আপনার যদি কয়েকটি সংগ্রহস্থল থাকে এবং প্রত্যেকেরই একই .gitignore ফাইল থাকে তবে আপনি এটিকে "সাধারণ" অবস্থানের মধ্যে স্থাপন করতে পারেন> git config --global core.excludesfile। / .Gitignore_global শেষ পরামিতিটি পথ সাধারণ জায়গায়। পিএস আমি গিটে নতুন এবং এটি 'সেরা অনুশীলন' সুপারিশ কিনা তা নিশ্চিত নই। সুতরাং দয়া করে আমাকে জানান, যদি আপনার এটি করতে না চান let ধন্যবাদ.
বুদা

**সিনট্যাক্স এখন মনে হয় (মার্চ 2013 Git 1.8.2) আনুষ্ঠানিকভাবে নথিভুক্ত: দেখতে নীচের আমার উত্তর
VonC

2
যদি কেউ আসল ম্যানুয়াল পৃষ্ঠার সর্বাধিক আপ টু ডেট সংস্করণটি পড়তে চায় তবে gitignore (5) ম্যানুয়াল পৃষ্ঠাটি দেখুন

বন্ধুত্বপূর্ণ বিকল্প আপনি যদি এক লাইনের মূল্যবান তথ্যের জন্য নিবন্ধগুলি পড়তে ক্লান্ত হন atlassian.com
গীত /

উত্তর:


1832

সংস্করণ 1.8.2 এর আগে, এর **কোনও বিশেষ অর্থ ছিল না .gitignore। ১.৮.২ গিট হিসাবে **শূন্য বা আরও বেশি সাব-ডিরেক্টরি ( রিলিজ নোট দেখুন ) বোঝায় ।

ডিরেক্টরি গাছের বর্তমান স্তরের নীচে বিন নামক সমস্ত ডিরেক্টরিকে উপেক্ষা করার উপায়টি .gitignoreপ্যাটার্ন সহ একটি ফাইল সহ রয়েছে:

bin/

ইন manপৃষ্ঠা, একটি ডিরেক্টরি নামক উপেক্ষা একটি উদাহরণ fooএকটি অনুরূপ প্যাটার্ন ব্যবহার করে।

সম্পাদনা: আপনার গিট ইনডেক্সে ইতিমধ্যে যদি আপনার কোনও বিন ফোল্ডার থাকে যা আপনি আর ট্র্যাক করতে চান না তবে আপনাকে সেগুলি স্পষ্টভাবে মুছে ফেলতে হবে। গিটটি কেবল নতুন .gitignoreপ্যাটার্নের সাথে মিলে যাওয়ায় ইতিমধ্যে ট্র্যাক করা পাথগুলি ট্র্যাক করা বন্ধ করবে না । কেবল সূচক (- ক্যাচড ) পুনরাবৃত্তি ( -r ) থেকে একটি ফোল্ডার অপসারণ ( আরএম ) চালিত করুন । রুট বিন ফোল্ডারের জন্য কমান্ড লাইন উদাহরণ:

git rm -r --cached bin

72
Git 1.8.2 থেকে শুরু করে Git গ্রহণ করবে **মধ্যে .gitignore: ফাইল (উৎস 1.8.2 পরিবর্তণের )
কার্লোস Campderrós

15
হয় binএকই bin/?
নিসবা

29
নিসবা, তারা আলাদা, binবিন নামক ফাইলগুলিকে উপেক্ষা করবে, যখন bin/বিন নামক ডিরেক্টরিতে থাকবে
রানী ক্ষীর

8
যেহেতু আমি এই বিষয়ে পড়েছি: ফটোগুলির নাম গিট-কমান্ড আইএস ক্ষেত্রে সংবেদনশীল :) "বিন! = বিন" - সম্ভবত আমি এই ইঙ্গিতটির দ্বারা কাউকে কয়েক মিনিট
বাঁচিয়ে

1
Windows10 আপনি একটি .gitignore ফাইল তৈরি করতে পারবেন না, আপনি একটি gitignore.txt তৈরি এবং তারপর চালানোর Ren gitignore.txt কমান্ড এই ফাইল তৈরি করতে প্রম্পটে .gitignore আছে
হীন

462

.gitignoreআপনার স্বপ্ন এর মনে করা হয়:

bin/

শীর্ষ স্তরে


আপনাকে উপেক্ষা করা ফাইলগুলির উদাহরণস্বরূপ চেকআউট করতে ভুলতে সহায়তা করার জন্য আপনাকে অনেক ধন্যবাদ উদাহরণ: গিট চেকআউট বিন *
ক্রিস সিম

1
এটি gitignore_global
λαβέ.λαβέ

@ জিএলএক্সেন্ডার, কেন বিশ্বব্যাপী বিন / ডিরেক্টরি উপেক্ষা করতে চান? তাদের প্রায়শই সংস্করণযুক্ত সামগ্রী থাকে। এবং বিশ্বব্যাপী উপেক্ষা সংগ্রহস্থলের অন্যান্য ব্যবহারকারীর উপর প্রভাব ফেলবে না।
মাইকেল ক্রেলিন - হ্যাকার

234

আমি মনে করি গিট শুরুর জন্য এটি উল্লেখ করা ভাল:

আপনার যদি ইতিমধ্যে কোনও ফাইল চেক ইন থাকে এবং আপনি এটিকে উপেক্ষা করতে চান তবে পরে কোনও বিধি যুক্ত করলে গিট ফাইলটিকে অগ্রাহ্য করবে না । এই ক্ষেত্রে, আপনার টার্মিনালে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার প্রথমে ফাইলটি অন্যাক করে ফেলতে হবে:

git rm --cached

সুতরাং আপনি সম্পাদনা করার পরে যদি স্থানীয় স্থানীয় সংগ্রহস্থলগুলিতে কিছু ডিরেক্টরি উপেক্ষা করতে চান (যা ইতিমধ্যে বিদ্যমান) it

git rm --cached -r .
git add .

এটি মূলত আপনার স্থানীয় রেপোকে 'রিফ্রেশ' করবে এবং উপেক্ষা করা ফাইলগুলি স্টেস্টেজ করে দেবে।

দেখা:

http://git-scm.com/docs/git-rm ,

https://help.github.com/articles/ignoring-files/


যদি আমি সাধারণত git add -Aআমার প্রতিশ্রুতিবদ্ধতাগুলি সম্পাদন করি তবে আমি কি পরিবর্তে এটি ব্যবহার করতে পারি? এবং আমিও প্রথম লাইনে বিন্দুটি -A দিয়ে প্রতিস্থাপন করতে পারি?
ajax333221

69

এর **আগে কখনও সঠিকভাবে কাজ করা হয়নি, তবে গিট 1.8.2 (মার্চ, 8 ই 2013) থেকে , এটি স্পষ্টভাবে উল্লেখ এবং সমর্থিত বলে মনে হচ্ছে:

নিদর্শন .gitignoreএবং .gitattributesফাইল থাকতে পারে **/একটি প্যাটার্ন যে সাব 0 বা তার বেশি মাত্রার সাথে মেলে হিসাবে,

উদাহরণস্বরূপ " foo/**/bar" bar" foo" নিজে " " বা " " এর একটি উপ-ডিরেক্টরিতে " " মিলছে foo

আপনার ক্ষেত্রে, এর অর্থ এই লাইনটি এখন সমর্থিত হতে পারে:

/main/**/bin/

46
[Bb]in/

উপরের এবং নিম্ন উভয় ক্ষেত্রেই মিলছে


2
[B]in/একমাত্র উপরের কেস হতে
গাঙ্ক

কীভাবে কেবল Binফোল্ডারটিকে অগ্রাহ্য করা এবং binগিট করার প্রতিশ্রুতি দেওয়া উচিত? [B]in/উভয় প্রতিশ্রুতিবদ্ধ Binএবং bin
গাঙ্ক

4
এটি করা উচিত, @ গ্যাঙ্ক: Bin/ !bin/
মার্কো জি

34

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


3
এটি মূল প্রশ্নের উত্তর নয় যা সম্পর্কে স্পষ্টতই ছিল bin, না Bin
সিবি বেইলি

49
যদিও কোনও উত্তর না হলেও এটি একই বিষয়ে অনুসন্ধান করা অন্যদের জন্য সম্পূর্ণতা যুক্ত করে (নিজেকে, এখনই)।
জে

25

[Bb]in সমস্যার সমাধান করবে, তবে ... এখানে আপনার উপেক্ষা করা উচিত এমন আরও বিস্তৃত তালিকা (গিট এক্সটেনশন দ্বারা নমুনা তালিকা):

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.sbr
obj/
[Rr]elease*/
_ReSharper*/

3
: মনে রাখবেন যে এই ভালো জিনিস আপনার গ্লোবাল gitignore থাকা উচিত (সাধারণত আপনার home ডিরেক্টরিতে।) প্রকল্পের gitignore শুধুমাত্র আপনার প্রকল্পের জিনিস নির্দিষ্ট উপেক্ষা করা উচিত (ক সি অ্যাপের জন্য অর্থাত ণ ফাইল।)
BraveNewCurrency

18

আপনি যদি .gitignoreকোনও ভিজ্যুয়াল স্টুডিও (। নেট) সমাধানের জন্য দুর্দান্ত গ্লোবাল ফাইল সন্ধান করছেন - আমি আপনাকে এটি ব্যবহার করার পরামর্শ দিচ্ছি: https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

আফাইক এটি .gitignoreনেট প্রকল্পের জন্য সর্বাধিক বিস্তৃত ।


5
এটি সত্যই প্রশ্নের উত্তর দেয় না, তবে এটি আমি ঠিক যা খুঁজছিলাম।
ডেভ

18

পদক্ষেপ 1: ফাইল .gitignore নিম্নলিখিত কন্টেন্ট যুক্ত করুন।

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/

# Visual Studio 2015 cache/options directory
.vs/

পদক্ষেপ 2: কার্যকর হওয়ার বিষয়টি নিশ্চিত করুন

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

$ git rm -r --cached .
$ git add .
$ git commit -m 'Update .gitignore'

প্রধানমন্ত্রী কনসোল তাহলে বিষয়টি পুরোপুরি সমাধান হয়ে যাবে।


8

আক্ষরিক কোনও উত্তরই আসলে আমার পক্ষে কাজ করেনি; আমার পক্ষে কাজ করা একমাত্র (লিনাক্সে):

**/bin
(yes without the / in the end)

git version 2.18.0 

এটি কি binসাব-ডিরেক্টরিতে নামযুক্ত সমস্ত ফোল্ডারকেও উপেক্ষা করেছে?
ভেনেশেভগুলি

5

নোটিশ হিসাবে;

আপনি যদি ভাবেন যে .gitignoreকোনও উপায়ে কাজ করে না (এতে এতে foo/*ফোল্ডার যুক্ত করা হয়েছে তবে git statusএখনও সেই ফোল্ডার সামগ্রী (গুলি) কে পরিবর্তিত হিসাবে দেখানো হয়েছে বা এর মতো কিছু দেখানো হচ্ছে) তবে আপনি এই আদেশটি ব্যবহার করতে পারেন;

git checkout -- foo/*


3

২.১৩.৩ এর পরে এবং আপনার .gitignore ফাইলটিতে কেবল বিন লেখার জন্য বিন এবং তার সমস্ত উপ-ডিরেক্টরি এবং ফাইল উপেক্ষা করা উচিত

বিন


2

.Gitignore ফাইলটিতে ** / বিন / যুক্ত করা আমার জন্য কৌশলটি করেছে (দ্রষ্টব্য: বিন ফোল্ডারটি সূচীতে যুক্ত হয়নি)।


1

যদি অভ্যন্তরের প্যাটার্নটি .gitignoreস্ল্যাশ দিয়ে শেষ হয়/ এটি কেবল একটি ডিরেক্টরি সহ একটি মিল খুঁজে পাবে।

অন্য কথায়, এটি bin/একটি ডিরেক্টরি binএবং এর নীচের পাথগুলির সাথে মিলবে তবে কোনও নিয়মিত ফাইল বা প্রতীকী লিঙ্কের সাথে মেলে না bin


যদি প্যাটার্নটিতে স্ল্যাশ না থাকে , যেমন binগিট এটিকে শেল গ্লোব প্যাটার্ন (লোভী) বলে মনে করে। সহজ ব্যবহার করা সবচেয়ে ভাল হবে /bin

bin এই বিশেষ সমস্যার জন্য সেরা সমাধান হতে পারে না।


আপনার মানে কি 'এ' দিয়ে শুরু হয়েছিল /?
ভিনেশেভগুলি

0

আমার ক্ষেত্রে গিটিগনোর ফাইলের এনকোডিং সমস্যাযুক্ত ছিল, এটি ইউটিএফ -8 কিনা তা পরীক্ষা করে দেখুন

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