[解決済み] Git - 'assume-unchanged'と'skip-worktree'の違い
質問
リポジトリにコミットしたくないファイルをローカルで変更しています。それはサーバー上でアプリケーションを構築するための設定ファイルですが、私は異なる設定でローカルに構築したいのです。当然ながら、このファイルは 'git status' を実行するとステージされるものとして常に表示されます。私はこの特定の変更を隠して、コミットしないようにしたいと思います。私はこのファイルに他の変更を加えることはありません。
明確にするために、.gitignoreを使用することは、新しいファイルが追加されるのを防ぐだけなので、私が望んでいることではありません。すでにリポジトリにあるファイルへの変更を無視したいのです。
いろいろ調べてみると、2つのオプションがあるようです。
assume-unchanged
と
skip-worktree
. 以前の質問
こちら
は、両者について述べていますが、その違いについてはあまり説明されていません。
この2つのコマンドはどのように違うのでしょうか?また、なぜどちらかを使うのでしょうか?
どのように解決するのですか?
あなたが欲しいのは
skip-worktree
.
assume-unchanged
は、ファイル群が変更されたかどうかをチェックするのが面倒な場合のために、ビットを設定するときに使用します。
git
(もちろん)インデックスのその部分に対応するファイルは、作業コピーで変更されていないものと見なします。そのため
stat
を呼び出します。このビットは、インデックス内のファイルのエントリが変更されるたびに (つまり、ファイルが上流で変更されたときに) 失われます。
skip-worktree
はそれ以上です。
git
知っている
によってファイルが変更されたこと(または変更する必要があること)を示します。
reset --hard
など)、インデックスにあるバージョンを使って、 使われていないふりをします。これは、インデックスが破棄されるまで続きます。
この違いの影響と典型的な使用例については、こちらによくまとまっています。 http://fallengamer.livejournal.com/93321.html .
その記事から。
-
--assume-unchanged
は、開発者を想定しています。 はいけません。 を変更します。このフラグは パフォーマンス向上 SDKのような変更しないフォルダの場合。 -
--skip-worktree
は、開発者が次のような理由で特定のファイルに触れないように git に指示する場合に便利です。 が必要です。 を変更します。たとえば、上流のメインリポジトリに製品化可能な 設定ファイル で、それらのファイルへの変更を誤ってコミットしてしまわないようにするためです。--skip-worktree
は、まさにあなたが望むものです。
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] git add -A」と「git add .」の違い。
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] ステージングされた変更を表示するにはどうしたらいいですか?
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] ローカルにあるファイルを無視するようにgitを設定するにはどうすればよいですか?
-
[解決済み] git は修正された変更のみを追加し、追跡されていないファイルは無視する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。
-
[解決済み] "fatal: This operation must be run in work tree." というメッセージが表示されるのはなぜですか?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Gitでファイルの変更を追跡しない、無視する方法とは?
-
[解決済み] ローカルにあるファイルを無視するようにgitを設定するにはどうすればよいですか?
-
[解決済み] gitからファイルを一時的にアントラックする
-
[解決済み] Git リポジトリにファイルを保持し、変更を追跡しない
-
[解決済み] [Solved] ファイルを 'git commit' して、その内容の変更を無視することはできますか?
-
[解決済み] .gitignoreを使わずにGitがファイルを無視するようにするには?