新しく作成した特定のフォルダーをGitの.gitignoreに追加します


88

私はきれいな作業ディレクトリを持っていて、昨夜Gitリポジトリからクローンを持ってきました。しかし今、私のローカルサーバーが作成され、無視したい統計フォルダが含まれています。

gitステータスを実行すると、Gitにこのフォルダーを無視させることができないようです。

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/*

回答:


98

/public_html/stats/*やってみますか?

ただし、のファイルはコミットgit statusされていると報告されているため、手動で追加済みです。その場合、もちろん、無視するには少し遅すぎます。あなたはgit rm --cacheそれらをすることができます(IIRC)。


16
待つ!「コミットするファイル」がありますgit add。つまり、すでにファイルを編集しているということです。
MichaelKrelin-ハッカー2009年

93

これには2つのケースがあります

ケース1:ファイルはすでにgitリポジトリに追加されています。

ケース2:新しく作成されたファイルで、使用時にそのステータスが未追跡ファイルとして表示されている

git status

ケース1がある場合:

ステップ1: 次に実行

git rm --cached filename 

gitリポジトリキャッシュから削除するには

ディレクトリの場合は、

git rm -r --cached  directory_name

ステップ2:ケース1が終了した場合.gitignoreは、gitリポジトリで名前を付けた新しいファイルを作成します

ステップ3:以下を使用して、ファイルが変更されていないことを無視/想定するようにgitに指示します

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

ステップ4:次に、.gitignoreエディターnano、vim、geanyなどで開いているgit statusを使用してステータスを確認し、無視するファイル/フォルダーのパスを追加します。それがフォルダの場合、ユーザーfolder_name/*はすべてのファイルを無視します。

それでも理解できない場合は、git ignore filelink記事を読んでください。


3
私がそうするfatal: Unable to mark file .idea/jsLibraryMappings.xmlとき私は得るupdate-index
OlehZiniak 2017

@OlehZiniakは、fatal: Unable to mark fileエラーが発生したときに何をすべきかを理解していますか。助けてください。
シャンカルパルデシ2018

マークできないファイルの許可と所有権。どのステップでエラーが表示されますか?
kshitiz 2018

16

「githelpignore」から私たちは学びます:

パターンがスラッシュで終わっている場合は、以下の説明のために削除されますが、ディレクトリとの一致のみが検出されます。言い換えると、foo /はディレクトリfooとその下のパスに一致しますが、通常のファイルまたはシンボリックリンクfooには一致しません(これは、パススペックがgitで一般的に機能する方法と一致します)。

したがって、必要なのは

public_html / stats /


1
つまり、「public_html / stats /」はディレクトリにのみ一致し、ファイルには一致しませんが、「public_html / stats」はディレクトリとその名前のファイルの両方に一致するため、問題はありません。それでも良い考えです。
jmanning2k 2009

1
マニュアルページには、foo /はディレクトリfooとその下のパスに一致すると書かれています。OPはフォルダとその内容を無視したいと考えています。git addに関する他の問題は別として、これがどのように行われるかです。
kajaco 2009

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

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

例:IGNORE_ALLが追加された統計は無視します

これにより、すべての無視ファイルが.gitignoreに追加されてコミットされます。後でファイルに注釈を追加したい場合があることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.