4

他の人がレポ内のファイルを必要とするため、.gitignore を変更したくありません。しかし、使用したい独自のコピーがあります。

以下を編集.git/info/exclude・追加しました。

/Gemfile
/Gemfile.lock
/config/database.yml
/spec/spec_helper.rb

これは何もしないようです。git statusまだ表示されます:

# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Gemfile
#       modified:   Gemfile.lock
#       modified:   config/database.yml
#       modified:   spec/spec_helper.rb

.gitignore を使用せずにローカル バージョンのファイルを保持する最善の方法は何ですか?

4

4 に答える 4

7

おそらく呼び出すgit update-index --assume-unchanged [file names]か、ファイルがたくさんある場合は、.gitignoreに対してそれを実行し、無視するファイルを必要なだけ変更します。

ドキュメントから(私の強調):

「変更なしと見なす」ビットがオンの場合、gitは作業ツリーファイルの変更の可能性のチェックを停止するため、作業ツリーファイルを変更するときにgitに通知するために、ビットを手動で設定解除する必要があります。...
このオプションは、追跡されたファイルのコミットされていない変更を無視するための大まかなファイルレベルのメカニズムとしても使用できます(追跡されていないファイルに対して.gitignoreが行うことと同様)

于 2012-08-16T02:02:58.257 に答える
4

.gitignoreまだリポジトリにないファイルに.git/info/excludeのみ適用されます。ファイルがリポジトリにある場合、Git にそれらを無視するように依頼することはできません。

できることは、これらの変更をローカルで維持することです。これは、マスターの受信作業とマージするブランチとして、またはマスターの上にリベースする一連の変更として行います。ただし、どちらも少し不便です。

于 2012-08-16T01:51:21.010 に答える
1

私は自分のマシンでグローバル無視ファイルを使用していますが、これも使用されています。このようにして、プロジェクトベースの .gitignore ファイルと、マシンにローカルなグローバル設定を作成できます。

たとえば、これは ~/.gitconfig にあります

[core]
   excludesfile = /home/adrian/.gitignore
于 2012-08-16T01:51:54.687 に答える
0

すべてのファイルを先頭に . で開始しました/。それを削除すれば、すべてがうまくいくと思います:

Gemfile
Gemfile.lock
config/database.yml
spec/spec_helper.rb
于 2012-08-16T01:48:43.577 に答える