私のマスターブランチでいくつかの変更を行い、コミットせずに開発ブランチにチェックアウトしました。エラーがスローされることを期待していましたが、その代わりに、マスターブランチの変更が開発ブランチとマージされました。これに代えてgit:ブランチを切り替えると私のコミットされていない変更が実行されてマージされる
$ git checkout development
Switched to branch 'development'
M pom.xml
Your branch is up-to-date with 'origin/development'.
私がチェックアウトする前に、私の変更を隠しておくか、コミットすることができるように、私は、以下のエラーを期待していた。それが起こったか、どのように私はそれを防ぐことができる理由
error: You have local changes ....; cannot switch branches.
誰もが知っています再び起こります?
もっと正確に言えば、最初の手での私のチェックアウトコマンドは間違いでした。私はそれをしてはいけません。だから、私はエラーが投げられることを期待していた。これはgitのデフォルトの動作ですか? – leventunver
はい、AFAIK gitのデフォルトの動作です。 –
作業ツリーの変更は、コミットしない限り、ブランチの一部ではありません。別のブランチをチェックアウトするとき、Gitは新しいブランチの影響を受けるファイルの内容と矛盾がなければ、それらを保存します。 – axiac