2017-08-15 16 views
0

私はVisual StudioでTFSで作業していますが、私は3つのブランチを持っています。私たちのレポでは、各ブランチにconfigsファイルを持つ2つのソリューションがあります。それらの設定ファイルはであり、コミットしたままにする必要があります。しかし、私のマシンでは、正しいdbを指すように設定ファイルを変更する必要があります。Visual Studio Git - コミットされたファイルとスイッチブランチを無視できません

私は git update-index --skip-worktree App.configを試してみた

私は枝を切り替えるために行くときしかし、私は以下のエラーメッセージが出ます:また

Output from visual studios

git rm --cached App.config 

でそれは.gitignoreファイルを作成したときにそれがあります私が欲しくないRepoからApp.configが削除されました。

私の目標は、ファイルに対して行った変更を無視するだけですが、ファイルをオンラインのgitリポジトリに保存することです。

+0

ローカルマシンでどのブランチがチェックアウトされていますか?どのVisual Studioを使用していますか?また、GitExtensionsのようなGUIを使用していますか? – BikerDude

+0

彼らはすべてチェックアウトされています。 VS 2017を使用すると、ドロップダウンリストを使用して切り替えることができ、ローカルマシン上のファイルを自動的に更新します。私はGUIとしてTortoiseGitを持っていますが、私は現在VSを使っています。 – DevEng

+0

すごいです。したがって、説明と同様に、ドロップダウンから選択したファイルのみがチェックアウトされ、残りはローカルに存在しますがチェックアウトされていません。 これらのブランチに対して行った変更は、自動的にオンラインにプッシュされません。 – BikerDude

答えて

0

git update-index --skip-worktreeは、変更がインデックスに表示されるのを隠すだけで、変更は消えません。ブランチを切り替えている場合は、設定ファイルを更新する必要がありますが、ローカルの変更によってその変更ができないようにする必要があります(これは、ファイルがインデックスから隠されているかどうかに関係なく適用されます)。

これは私が最近使用しているワークフローです:

  1. は、ローカルテスト用ブランチを作成だけコミットします。私はそれをtestと呼ぶでしょう。 configの変更をそこにコミットします。
  2. 通常どおりローカルブランチで作業してください。私はそれをworkと呼ぶでしょう。あなたが行くように小さな変更をコミットします(これはとにかく良い練習です)。
  3. 更新された設定ファイルでテストを実行する必要がある場合は、testをチェックアウトし、workの上にリベースします。 (あなたはこれをたくさんやっている場合は、いくつかのキーストロークを保存するためにworkを追跡するtestを設定することができます。)test一度
  4. workの上にある、あなたがgit checkout testあなたの修正のconfigsを使用することができ、またはgit checkout workコーディング再開します。
  5. 変更を公開する準備ができたら、rebase --interactiveを実行して、すべての一時的なコミットを1つ(またはそれ以上)の公式の変更にスカッシュします。 workからプッシュし、再度ローカル変更を行うまでtestのままにします。
関連する問題