きれいな作業ディレクトリがあり、昨夜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/*
/public_html/stats/*
をお試しください
ただし、git status
内のファイルはcommittedとして報告されるため、すでに手動で追加されていることを意味します。もちろん、この場合、無視するには遅すぎます。 git rm --cache
できます(IIRC)。
このために2つのケースがあります
ケース1:ファイルはすでにgitリポジトリに追加されています。
ケース2:新しく作成されたファイルと、使用時にステータスが未追跡ファイルとして表示される
git status
ケース1がある場合:
STEP 1:次に実行
git rm --cached filename
git repoキャッシュから削除するには
それがディレクトリである場合、使用します
git rm -r --cached directory_name
STEP 2:ケース1が終わったら、.gitignore
という名前の新しいファイルをgitレポ
STEP 3:以下を使用して、gitにファイルを変更しない/仮定するように指示します
git update-index --assume-unchanged path/to/file.txt
STEP 4:さて、エディターnano、vim、geanyなどでgit status open .gitignore
を使用してステータスを確認します。いずれか、ファイルのパスを追加します/無視するフォルダー。フォルダーの場合、ユーザーfolder_name/*
はすべてのファイルを無視します。
それでもわからない場合は、 article git ignore file リンクを読んでください。
「git help ignore」から次のことを学びます。
パターンがスラッシュで終わる場合、以下の説明のために削除されますが、ディレクトリとの一致のみが検出されます。言い換えると、foo /はディレクトリfooとその下のパスに一致しますが、通常のファイルやシンボリックリンクfooには一致しません(これは、gitでのpathspecの一般的な動作方法と一致しています)。
したがって、必要なのは
public_html/stats /
/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>
私は信じられないほど怠け者です。私はこの問題へのショートカットを見つけることを期待して検索を行いましたが、答えが得られなかったので、これをノックしました。
〜/ bin/IGNORE_ALL
#!/bin/bash
# Usage: IGNORE_ALL <commit message>
git status --porcelain | grep '^??' | cut -f2 -d' ' >> .gitignore
git commit -m "$*" .gitignore
EG:IGNORE_ALLは統計無視を追加しました
これにより、すべての無視ファイルが.gitignoreに追加され、コミットされます。後でファイルに注釈を追加したい場合があることに注意してください。