私は地元で働いています。ブランチ「b1」をチェックアウトして、いくつかの作業を行いました。ブランチ「b1」をそのままにしておきたいのですが、マスターに戻って「b1」をチェックアウトする前の状態に戻します。しかし、「git checkout master」を使用してマスターをチェックアウトすると、ブランチで行ったすべての変更は、コミットやマージなしですでにマスターにあります。私は何が間違っているのですか?
2 に答える
1
もう一度b1
チェックアウトする前に、変更をコミットしましたか?master
ブランチを切り替える前に変更をコミットまたは隠さない場合、変更はローカルファイルに残ります。したがって、チェックアウトしたブランチに表示されます。
于 2012-08-27T15:24:38.570 に答える
0
ブランチに加えた変更がb1
チェックアウトによって上書きされる場合、変更master
を隠したり、インデックスに変更をコミットしたりしない限り、git はチェックアウトを実行できません。次のようなエラーが表示されます
error: Your local changes to the following files would be overwritten by checkout:
/src/path/to/conflicting/file.java
Please, commit your changes or stash them before you can switch branches.
チェックアウトが滞りなく (何もコミットせずに) 完了した場合、2 つのブランチ間に競合はなく、git は作業ツリーをそのまま保持します。
あなたがする必要があるのは、チェックアウトb1
して、行ったすべての変更をコミットし、ローカライズしてからb1
checkoutすることmaster
です。master
変更はブランチにないはずです。
于 2012-08-27T15:27:33.187 に答える