2009-09-25 19 views
8

時々私はフィーチャーブランチに入っていますが、私はマスターで見たい無関係な変更を加えました。多くの場合、私はちょうど行うことができます。gitでブランチを切り替える

git checkout master 
git commit -m "..." filename 

しかし、私はチェックアウトを行うときに、時々私はそこにローカルの変更があるので、私はブランチを切り替えることができないという警告が表示されます。

なぜこれはときどき起こるのですか?このメッセージが表示されたら回避策がありますか?たぶん、隠れている?

答えて

15

Devin Ceartasが述べたように、これはブランチを切り替えると既にローカルに変更されたファイルが変更される場合に発生します。 (Gitはあなたが変更されないファイルのローカルの変更を持っていたときに文句を言う、または枝やマスターでもない上に存在する新しいファイルを追加しません。)

2つの方法でこれを回避:

  1. "git stash"変更し、masterに変更し、 "git stash apply"を実行します。その後、変更をコミットします。

  2. ブランチで必要な変更をコミットし、他の変更がある場合は "git stash"し、マスターに変更し、チェッカーがマスターで変更を選択します。

+5

4つの方法:3. "git checkout -m"で3ウェイマージを試みることができます。4. "git checkout -f"でチェックアウト(変更を失う)を強制することができます。 –

0

これも見ました。私はあなたのローカル変更が他のブランチの何か(他のブランチにない新しいファイルではなく)で変わることが問題だと思います。他のブランチを別のディレクトリでいつでもチェックすることができます。

+0

別のディレクトリで別のブランチを確認するにはどうすればよいですか? –

+0

git-new-workdirのヘルプを探してください。これにより、同じリポジトリに基づいた新しい作業ディレクトリを作成できます。 – Phil

+0

私は、git git repoのcontrib/workdirにあるスクリプトです。ありがとう! –

関連する問題