[解決済み] git update-index --assume-unchanged on directory
質問
git 1.7.12
指定されたディレクトリ以下のすべてのファイルをassume-unchangedとしてマークしたいのですが。
-
git update-index --assume-unchanged dir/
は、"Ignoring path."を与えます。 -
git update-index --assume-unchanged dir/*
は、追跡されていないファイルに遭遇するため、すぐに失敗し、そのため "fatal: Unable to mark file" と表示されて終了します。 -
マークするファイルのリストを生成してみてください。
cd
を目的のディレクトリに移動しgit ls-files | tr '\n' ' ' | git update-index --assume-unchanged
. これはエラーメッセージを出しませんが、ファイルのマーク付けには成功しません。 コマンドの最初の部分git ls-files | tr '\n' ' '
は、マークしたいすべてのファイルをスペースで区切ったリストを正しく生成します。 このコマンドの出力をコピーしてコマンド ラインに貼り付けるとgit update-index
コマンドは機能します。 パイプで動作しないのは何ですか?
いいえ、それは私が追加するのに十分ではありません。
dir
を .gitignore に追加するだけでは不十分です。 これらのファイルはリポジトリにある必要がありますが、望ましくない変更がローカルで行われるため、ユーザーがプルを行えるように無視する必要があります。
どのように解決するのですか?
git update-index
は、ファイル名を標準入力ではなく、コマンドラインから入力することを望んでいます。
ステップ 1:
cd
を、変更されていないとしたいフォルダーにコピーします。
ステップ2:
このどちらかを行うことができます。
git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')
または
git ls-files | tr '\n' ' ' | xargs git update-index --assume-unchanged
ただし、どちらの場合でも、空白を含むファイル名は問題になります。それがある場合は、これを使うとよいでしょう。
git ls-files -z | xargs -0 git update-index --assume-unchanged
編集: @MatthewScharley 氏の意見を取り入れて
git ls-files -z
.
Windowsコマンド
注意してください。 Windowsの場合は Git Bash を使ってこれらのコマンドを実行します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Gitでファイルの変更を追跡しない、無視する方法とは?
-
[解決済み] ローカルにあるファイルを無視するようにgitを設定するにはどうすればよいですか?
-
[解決済み] gitからファイルを一時的にアントラックする
-
[解決済み] .gitignoreを使わずにGitがファイルを無視するようにするには?
-
[解決済み] git logで特定のパスの変更を無視するようにする
-
[解決済み] Jenkins Pipeline Git SCM を認証情報でチェックアウトする?
-
[解決済み] Gitの本番環境へのプッシュ(FTP)
-
[解決済み] プル前にローカルとGitHubのリポジトリの差分を確認する方法 [重複]について
-
[解決済み] Git Repo から既存のファイルを削除する