গিটের .gitignore এ নতুন নির্মিত নির্দিষ্ট ফোল্ডার যুক্ত করুন


90

আমার একটি পরিষ্কার ওয়ার্কিং ডিরেক্টরি ছিল এবং গতরাতে গিট রেপো থেকে একটি ক্লোন নিয়ে এসেছি। তবে এখন আমার স্থানীয় সার্ভারটি তৈরি করেছে এবং এতে একটি পরিসংখ্যান ফোল্ডার রয়েছে যা আমি উপেক্ষা করতে চাই।

আমি গিটের স্থিতি চালানোর সময় গিটটিকে এই ফোল্ডারটিকে উপেক্ষা করার মতো মনে হয় না।

On branch master
Your branch is ahead of 'origin/master' by 1 commit.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file: app_public/views/pages/privacy.php
    new file: app_public/views/pages/terms.php
    new file: public_html/stats/ctry_usage_200908.png
    new file: public_html/stats/daily_usage_200908.png
    new file: public_html/stats/dns_cache.db
    new file: public_html/stats/hourly_usage_200908.png
    new file: public_html/stats/index.html
    new file: public_html/stats/usage.png
    new file: public_html/stats/usage_200908.html
    new file: public_html/stats/webalizer.current
    new file: public_html/stats/webalizer.hist

Changed but not updated:
    modified: .gitignore

আমি আমার .gitignore কে কয়েকটি ভিন্ন লাইন যুক্ত করেছি তবে এটি এখনও তাদের যুক্ত করার চেষ্টা করছে:

public_html/stats
public_html/stats/**
public_html/stats/**/*
public_html/stats/*

উত্তর:


99

চেষ্টা করবেন /public_html/stats/*?

তবে যেহেতু git statusরিপোর্ট করা ফাইলগুলি কমিট হওয়ার কথা রয়েছে তার অর্থ আপনি ইতিমধ্যে সেগুলি ম্যানুয়ালি যুক্ত করেছেন। কোন ক্ষেত্রে অবশ্যই অবহেলা করতে কিছুটা দেরী হয়েছে। আপনি git rm --cacheতাদের (আইআইআরসি) করতে পারেন ।


16
দাঁড়াও! আপনার কাছে "প্রতিশ্রুতিবদ্ধ হতে হবে ফাইলগুলি" - এর অর্থ আপনি git addসেগুলি ইতিমধ্যে তৈরি করেছেন।
মাইকেল ক্রেলিন - হ্যাকার

94

এর জন্য দুটি মামলা রয়েছে

কেস 1: ফাইল ইতিমধ্যে গিট রেপোতে যুক্ত হয়েছে।

কেস 2: ফাইলটি নতুনভাবে তৈরি করা হয়েছে এবং এটির ব্যবহারের সময় এখনও এটির তালিকা ছাড়াই থাকা ফাইল হিসাবে প্রদর্শিত হচ্ছে

git status

আপনার যদি কেস 1 থাকে:

পদক্ষেপ 1: তারপরে চালান

git rm --cached filename 

গিট রেপো ক্যাশে থেকে এটি সরাতে

এটি যদি ডিরেক্টরি হয় তবে ব্যবহার করুন

git rm -r --cached  directory_name

ধাপ 2: তাহলে কেস 1 হয় ওভার তারপর নামে নতুন ফাইল তৈরি .gitignoreআপনার Git রেপো তে

পদক্ষেপ 3: ফাইলটি অপরিবর্তিত / ধরে নিই / উপেক্ষা করতে গিটকে বলতে নিম্নলিখিত ব্যবহার করুন

git update-index --assume-unchanged path/to/file.txt

পদক্ষেপ 4: এখন, .gitignoreআপনার সম্পাদক ন্যানো, ভিম, জিনি ইত্যাদি খোলার গিট স্ট্যাটাস ব্যবহার করে স্থিতি পরীক্ষা করুন ... যে কোনও একটি, উপেক্ষা করার জন্য ফাইল / ফোল্ডারের পথ যুক্ত করুন। যদি এটি কোনও ফোল্ডার হয় তবে ব্যবহারকারীরা folder_name/*সমস্ত ফাইল উপেক্ষা করবেন।

আপনি এখনও বুঝতে না পারলে নিবন্ধ পড়ুন ফাইল লিঙ্ক উপেক্ষা করুন।


4
আমি fatal: Unable to mark file .idea/jsLibraryMappings.xmlযখন পাই তখনই পাইupdate-index
ওলেহজিনিয়াক

@ ওলেহজিনিয়াক আপনি যখন বুঝতে পারেন যে কোনওর মধ্যে fatal: Unable to mark fileত্রুটি ঘটে তখন কী করা উচিত । সাহায্য করুন.
চঞ্চল পরদেশী

অনুমতি এবং ফাইল যা আপনি চিহ্নিত করতে অক্ষম মালিকানা। কোন পদক্ষেপে এটি ত্রুটি দেখায়?
ক্ষিতাইজ

16

"গিট সহায়তা উপেক্ষা" থেকে আমরা শিখি:

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

সুতরাং আপনার যা প্রয়োজন তা হ'ল

সর্বজনীন_এইচটিএমএল / পরিসংখ্যান /


4
এর অর্থ হ'ল "পাবলিক_এইচটিএমএল / স্ট্যাটাস /" কেবল একটি ডিরেক্টরি মিলবে তবে একটি ফাইল নয়, তবে "পাবলিক_এইচটিএমএল / পরিসংখ্যান" ডিরেক্টরি এবং সেই নামের দুটি ফাইলের সাথে মিলবে, সুতরাং এটি সমস্যা নয়। এখনও একটি ভাল ধারণা।
jmanning2k

4
ম্যান পৃষ্ঠাটি বলছে foo / এর সাথে একটি ডিরেক্টরি foo এবং এর নীচে পাথের সাথে মেলে। ওপি ফোল্ডার এবং এর সামগ্রীগুলি উপেক্ষা করতে চায় wants গিট অ্যাড সহ অন্যান্য সমস্যাগুলি বাদ দিয়ে, এটি এভাবেই হয়।
কাজাকো

6

এটা /public_html/stats/*

$ ~/myrepo> ls public_html/stats/
bar baz foo
$ ~/myrepo> cat .gitignore 
public_html/stats/*
$ ~/myrepo> git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)
$ ~/myrepo>

2

আমি অবিশ্বাস্যভাবে অলস আমি এই সমস্যার শর্টকাট সন্ধানের আশায় একটি অনুসন্ধান করেছি তবে কোনও উত্তর পেলাম না তাই আমি এটি ছিটকে গেলাম।

bin / বিন / IGNORE_ALL L

#!/bin/bash
# Usage: IGNORE_ALL <commit message>                                                                                                                             
git status --porcelain | grep '^??' | cut -f2 -d' ' >> .gitignore              
git commit -m "$*" .gitignore 

EG: IGNORE_ALL যোগ করা স্ট্যাটিকে উপেক্ষা করে

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

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