私がやりたいことは、その質問ですでに説明されています。しかし、私はその問題を実用的でより一般的な方法で解決したいと考えています。したがって、ユースケースは次のとおりです。
web.config
いくつかのファイル、createDb.sql
またはその他のファイルにいくつかのローカル変更があります- 変更はローカル マシンにのみ固有であるため、これらのファイルをコミットしたくありません。
- これらのファイルはバージョン管理されている必要があり、さらに一部のファイル (特に SQL スクリプト) は頻繁に変更されるため、これらのファイルの更新を受け取りたい
- 他のすべてのファイルをコミットしたい
- 摩擦なく、1 つのコマンドでそれを実行できるようにしたい (posh-git を使用するため、powershell は大歓迎です)
使用すると言われているリンク先のソリューションは実用的git add -p
ではありません。チャンクを常に手動で選択するのは退屈ですか、それとももっと便利な方法がありますか?
たとえば、次のいずれかが機能します。
- インデックスに追加する前に作業コピーにあるファイルをフィルタリングする機能がある場合、
git -add -A -EXCEPT web.config crateDb.sql
. 次に、git エイリアスをそれにマップできます。それだけです。 - スタッシュの適用を解除する機能がある場合。ある特定のスタッシュに含まれる変更を作業コピーから削除するという意味です。
git stash -deapply
そのため、各コミットの前に次のようなことを行う必要がありますが、これも問題ありません。
この問題は非常に一般的であり、現在解決策がないのは奇妙です。たとえば、TortoiseSVN には "ignore-on-commit" 機能があり、Perforce ではそのタイプのローカル変更を別のチェンジリストに保存し、決してサブミットしないようにできます。