web-dev-qa-db-ja.com

テキストの変更をすべて受け入れずにgit acceptモードを変更するにはどうすればよいですか?

Gitがファイルモード(chmod)の変更を無視するようにするにはどうすればよいですか? から反対の問題があります。テキストが変更されました。前者はコミットしますが、後者はコミットしません。これはgitで可能ですか?

(実際には、実行したい権限の変更に加えて、コミットしたいテキストの変更とコミットしたくないテキストの変更を加えました)

Update:ファイルへのテキスト変更のステージングを解除してから、git add -p再び、モード変更をステージングに組み込むために管理されたテキスト変更の一部を組み込みます。 (私のgitバージョンは1.5.4.3です)

34
Andrew Grimm

git add -iを使用すると、ファイルからインデックスにいくつかのハンクを選択的に追加できます。アクセス許可の影響を受けやすいかどうかはわかりませんが、chmod操作の後にハンクを追加すると、アクセス許可を明示的に更新しなくても、インデックスに正しく追加される可能性があります。

15
Bob Aman

あなたはできるはずです:

git update-index --chmod=(+|-)x <file>

インデックスに格納されている実行可能ビットを調整します。

その後、ファイルの内容に対する変更とは別にこれをコミットできます。

80
CB Bailey

Charlesの回答 は、ファイルモードとコンテンツの変更の両方をインデックスに追加していました。私はそれをこのように回避しました。

git update-index --skip-worktree --chmod=+x <file>
git update-index --no-skip-worktree <file>

あるいは、あなたは行うことができます

git update-index --chmod=+x <file>
git config interactive.singlekey 1
echo na | git reset -p
3
Steven Penny