web-dev-qa-db-ja.com

変更したファイルの一部をコミットで提供されないようにするにはどうすればよいですか?

TortoiseGit1.8.3を使用しています。ファイルの1つであるMakefileを変更しましたが、GitCommitで毎回コミットすることを提案したくありません。 「削除して無視リストに追加」に追加しましたが、役に立ちません。変更したファイルの一部をコミットで提供されないようにするにはどうすればよいですか?

Makefileが読み取り専用としてリモートリポジトリにあり、ローカルで編集できるようにしたいのですが、TortoiseGitはコミットを提案しません。

私がGit-bashに欲しかったこと: https://www.kernel.org/pub/software/scm/git/docs/git-update-index.html

26
Alex

TortoiseGit 1.8.15、Git2.6.1に対する回答。コマンドラインに戻る必要はありません。すべての機能はTortoiseGitで直接利用できます。この関数にアクセスするさまざまな方法を要約してみました。私は読者が「変化しないと仮定する」の意味を知っていると思います。 ここに簡単なドキュメントがあります この機能について。または、 --assume-unchanged またはgit ls-files に関する元のドキュメント。


ファイルに「変更されていないと想定」のフラグを立てます

TortoiseGitには3つの可能性があります:Commitダイアログでは、Working Treeダイアログ(変更をチェック)またはLog Messagesダイアログ(Working dir changesエントリが選択されている場合のみ)。これらのダイアログの1つから、以下を実行します。

  • ファイルを右クリックして、エントリAssume Unchangedを選択します


Windowsエクスプローラーの任意のファイルリストから、次の手順を実行します。

  • ファイルを右クリックして、プロパティを選択します
  • Gitタブに移動します
  • エントリをチェックAssume valid/unchanged

ファイルから「変更されていないと仮定」フラグを削除します(上記を元に戻します):

TortoiseGitでは、Working Treeダイアログからのみフラグを削除できます(変更を確認してください)。

  • ダイアログの左下隅:オプションShow ignore local changeds flagged filesをチェックしてください
  • assumed validまたはskip worktreeフラグが付いているすべてのファイルは、通常の変更されたファイルの下に表示されます
  • ファイルを右クリックしてUnflag as skip-worktree or assume-unchangedを選択します


Windowsエクスプローラーの任意のファイルリストから、次の手順を実行します。

  • ファイルを右クリックして、プロパティを選択します
  • Gitタブに移動します
  • エントリのチェックを外しますAssume valid/unchanged
50
user23573

私が質問を正しく解釈している場合、AlexはTortoiseGitを使用して実行された--assumed-unchangedアクションを元に戻す方法を知りたがっています。

これを修正するためにコマンドラインGitを使用する必要はありません:

  1. Windowsエクスプローラーでこのアクションを実行したファイルに移動します。
  2. 右クリックして[プロパティ]を選択し、
  3. [Git]タブを選択すると、[有効/変更されていない]の横にあるチェックボックスが表示されます。
  4. チェックを外すと、コミットによって無視されなくなります。

enter image description here

29
deaddancer

それでも問題が解決しない場合は、コマンドラインインターフェイスに移動して、次のことを確認する必要があります。

Makefileが読み取り専用のリモートリポジトリにあり、ローカルで編集できるようにしたいのですが、TortoiseGITはそれをコミットするように提案しません。

これは異なります:

必要なもの:

git update-index  --really-refresh --no-assume-unchanged Makefile

これにより、Makefileをソース管理下に置きながら、gitに対してMakefile「invisible」へのローカル変更が行われます。

ローカルmodifにgit reset に抵抗したい場合は、;

git update-index --skip-worktree Makefile
3
VonC

承認された答えは良いですが、ここでの対話とオプションを探している場合は、簡単な助けがあります:

enter image description hereenter image description hereenter image description here

2
raisercostin