web-dev-qa-db-ja.com

.gitignoreはファイルを無視しません

私の。gitignoreファイルは無視され、無視されるべきファイルはまだ表示されています。

user@Host ~/workdir % git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   .htaccess
#       modified:   application/controllers/statistics.php
#
no changes added to commit (use "git add" and/or "git commit -a")
user@Host ~/workdir % cat .gitignore
.htaccess
application/config/config.php
application/config/database.php
user@Host ~/workdir %

ファイルはバージョン管理されていますが、賢明な変更を加えてプッシュしたくありません。 git rm ...はオプションではありません。ファイルは(ファイル内の他の設定と共に)バージョン管理されている必要があるためです。このファイルに自分の変更をプッシュしたくありません。

31
Fu86

Gitでファイルを無視しても、Pushしないわけではありません。 バージョン管理しないことを意味します。次にプッシュしたくない場合は、ローカルマシン用のものを含むローカルブランチを作成し、必要な変更をブランチにマージして、リモートにプッシュすることをお勧めします。

あなたはすでにあなたのファイルをaddedし、今それらを無視しようとしていると思います。

8
Noufal Ibrahim

同じ問題がありました:リポジトリごとに異なる.htaccessファイルが必要でしたが、htaccessファイルがすでにリポジトリに追加されていたため、できませんでした。それは今働いています、私は.htaccessファイルをgit pushせずにどのバージョンからでも変更できます。 Marcは、「無視できるようにするには、まず削除する必要があります。これはgit rmを使用して実行できます」と言ったところです。

私はこの順序で進みました:

  • .htaccessファイルをどこかにバックアップします
  • git rm .htaccessを使用して.htaccessファイルを削除します
  • この変更をコミット(.htaccess削除)
  • プッシュする(git Push)

これは明らかにあなたの.htaccessファイルを削除します

  • 次に.gitignoreを編集して/.htaccessを追加します
  • コミットしてからプッシュ
  • 以前のバックアップを復元して.htaccessファイルを再作成します

.htaccessに加えた変更はプッシュされなくなります。難しい部分は次のステップの順序です...

これが明確であることを願って

54
anybug

anybugの手順はここに記載されています 私のgitはまだ.htaccessを追跡していて、これが役立ちました:

git update-index --assume-unchanged .htaccess

元に戻すには:

git update-index --no-assume-unchanged .htaccess
37
tabacitu

あなたがしたいので:

  • .htaccessをGitリポジトリに保持(git rmなし)
  • その中にlocal機密データがある

フィルタードライバー を使用します。

  • チェックアウトフェーズ中に、プライベートデータで.htaccessを完成させます
  • コミット段階で、すべての機密データから.htaccessを削除します

content filter driver

その後、スマッジスクリプトが実行する暗号化ファイルをバージョン管理できます。

  • 復号化する唯一のもの
  • クラシック(およびプッシュ/プル)の.htaccessファイルを完成させるために使用します。

暗号化された機密データを、プッシュしない特別なブランチでバージョン管理できます。
そのファイルを何らかの方法でプッシュしたとしても、ワークステーションのみがそのファイルを復号化するために必要な秘密鍵を持っているため、損傷は限定されます。

13
VonC

以下が.gitignoreファイルの内容であるとします。ここで、.htaccessはプロジェクトのルートディレクトリにあります。

/.htaccess
application/config/config.php
application/config/database.php

以下のコマンドを実行して、.htaccessconfig.phpdatabase.phpファイルを無視します。

[email protected]:work-dir$ git update-index --assume-unchanged .htaccess
[email protected]:work-dir$ git update-index --assume-unchanged application/config/config.php
[email protected]:work-dir$ git update-index --assume-unchanged application/config/database.php

再度追跡を開始する場合:

[email protected]:work-dir$ git update-index --no-assume-unchanged path/to/file

例えば.

[email protected]:work-dir$ git update-index --no-assume-unchanged .htaccess
9
Bade Lal

.htaccessファイルはすでにバージョン管理に追加されています。無視する前に、まず削除する必要があります。これは git rm を使用して行うことができます

5
Marc

私はいつもこうしています。私は私のリポジトリの設定ファイルから始めて、そこにそれらを入れたくないと決定しました。

次のコマンドを使用して、リポジトリから何かを削除できます

git rm --cached <<filename>>
3

これは何日も私を悩ませた。 .htaccessファイルはすでにバージョン管理下にあり、変更されています。

2
Marcelo Cantos