32

.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 ...はオプションではありません。これは、ファイルがバージョン制御されている必要があるためです(ファイル内の他の設定を使用)。このファイルに変更をプッシュしたくないだけです。

4

8 に答える 8

67

同じ問題がありました。リポジトリごとに異なる.htaccessファイルが必要でしたが、htaccessファイルがすでにリポジトリに追加されていたためできませんでした。現在は機能しています。gitがプッシュすることなく、任意のバージョンの.htaccessファイルを変更できます。マークは、「無視する前に、最初に削除する必要があります。これはgitrmを使用して実行できます」と言ったときは正しいです。

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

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

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

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

これで完了です。.htaccessに加えた変更はプッシュされなくなります。難しい部分は、手順の順序に従うことです...

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

于 2011-10-19T11:27:32.637 に答える
46

ここに記載されているanybugの手順の後、私のgitはまだ.htaccessを追跡し、これは次のことに役立ちました。

git update-index --assume-unchanged .htaccess

元に戻すには:

git update-index --no-assume-unchanged .htaccess
于 2012-06-20T13:00:21.743 に答える
13

あなたがしたいので:

  • .htaccessGitリポジトリに保持する(no git rm
  • ローカルの機密データが含まれている

次のようなフィルタードライバーを使用します。

  • チェックアウトフェーズ中に、.htaccessプライベートデータを使用して完了します
  • コミットフェーズ中に、.htaccessすべての機密データからをクリーンアップします

コンテンツフィルタードライバー

次に、暗号化されたファイルをバージョン管理して、スマッジスクリプトで次のことを実行できます。

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

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

于 2010-06-03T10:54:17.690 に答える
10

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

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

.htaccess以下のコマンドを実行して、、config.phpおよびdatabase.phpファイルを無視してみましょう。

badelal143@gmail.com:work-dir$ git update-index --assume-unchanged .htaccess
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged application/config/config.php
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged application/config/database.php

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

badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged path/to/file

例えば

badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged .htaccess
于 2014-04-01T11:33:26.280 に答える
8

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

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

于 2010-06-03T10:37:58.060 に答える
7

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

于 2010-06-03T10:36:29.413 に答える
4

私はいつもこれをします。リポジトリ内の構成ファイルから始めて、そこにそれらを含めたくないと判断します。

を使用してリポジトリから何かを削除できます

git rm --cached <<filename>>
于 2014-06-19T03:40:03.297 に答える
2

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

于 2010-06-03T10:34:45.517 に答える