2

最近、featureXを追加するために、マスターブランチにいくつかの変更を加え始めました。1つの新しいファイルを作成し、他の6つのファイルを編集しました。私は変更をコミットしていません。とりあえず、別のブランチでfeatureXで作業し、featureXが正しく機能することが確実になるまでマスターをそのままにしておきたいと思います。

featureXにこれらの変更を加える前に、新しいブランチを開始する必要があることはわかっていますが、マスターブランチに加えたコミットされていない変更をfeatureXブランチに取得し、マスターを以前のfeatureX状態に復元する方法はありますか?

4

2 に答える 2

4

新しいブランチ(git checkout -b your_new_feature)を作成すると、その役割を果たします。それ以外の場合は、次のことを試すことができます。

git stash
git checkout -b your_new_feature
git stash apply
于 2012-07-11T15:40:28.883 に答える
2

必要なのはstash、変更を削除してから、別の場所に適用することです。

git stash
git checkout -b other_branch
git stash apply

詳しくはgit stash こちらをご覧ください。


私が学ん(そして試した)ように、実際にはブランチにチェックアウトするだけで、gitはどのファイルが変更されたかを記憶します。それで

git checkout -b other_branch

十分なはずです。


注:学ぶことも重要git stashです。この場合、問題はありません。ただし、other_branchすでに存在する場合は、独自の変更がある可能性があるため、マージの競合が発生する可能性があります。その場合は単に書く

git checkout other_branch

次のようなメッセージで失敗する可能性があります。

エラー:「何でも」にローカルな変更があります。ブランチを切り替えることはできません。

このような場合は、上記の方法を使用してからgit stash apply、競合の可能性を解決する必要があります。

于 2012-07-11T15:39:33.813 に答える