変更をコミットしていない場合
変更が他のブランチと互換性がある場合
これは、OPが新しいブランチにコミットすることを望んでおり、変更が上書きをトリガーせずにターゲットブランチと互換性がある場合にも適用されるため、これは問題のケースです。
John Brodieが承認した回答のように、新しいブランチをチェックアウトして作業をコミットするだけです。
git checkout -b branch_name
git add <files>
git commit -m "message"
変更が他のブランチと互換性がない場合
エラーが発生した場合:
error: Your local changes to the following files would be overwritten by checkout:
...
Please commit your changes or stash them before you switch branches
次に、作業を隠して新しいブランチを作成し、隠しておいた変更をポップして、競合を解決します。
git stash
git checkout -b branch_name
git stash pop
新しいブランチを作成した後で、これらの変更を行ったかのようになります。次に、通常どおりコミットできます。
git add <files>
git commit -m "message"
変更をコミットした場合
コミットを元のブランチに保持したい場合
この場合に適したツールであるチェリーピッキングを使用したCarl Norumの回答を参照してください:
git checkout <target name>
git cherry-pick <original branch>
コミットを元のブランチに残したくない場合
この潜在的な重複についてjoeytwiddleの回答を参照してください。上記の手順のいずれかを適切に実行し、元のブランチをロールバックします。
git branch -f <original branch> <earlier commit id>
変更をGitHubなどの共有リモートにプッシュした場合は、何をしているのかわからない限り、このロールバックを試行しないでください。