ブランチはここで「問題」です
修正はまだコミット中です - 同じブランチでまだ発生しているため、次のようになります。
- マスターでのコミット
- ブランチを「新しいローカル ブランチ」に切り替える
- そこに変更を加える
git commit を実行すると、「新しいローカル ブランチ」に新しいノードが追加され、マスターに触れることさえありません。
オプション 1: master ブランチで git commit --amend
$ git checkout master
// apply changes here
$ git commit --amend
これにより、マスターブランチの現在のヒントを置き換える新しいコミットが作成されます(あなたまたは他の人がすでにそこで作業していない限り、以前のコミットがプッシュされたなどの場合を除き、おそらくそこで行った以前のコミットです)。
オプション 2: master ブランチで git commit
$ git checkout master
// apply changes here
$ git commit -m "New commit, new commit message"
エレガントではありません。でも押したら?とても魅力的な。
オプション 3: 「新しいローカル ブランチ」で git commit し、cherry pick と squash を実行する
// changes applied on local branch creating commit with SOME_SHA
$ git checkout master
$ git cherry-pick "new local branch name here"
これにより、「新しいローカル ブランチ」の先端でコミットによって導入された変更が適用されます。ブランチがあまりにも異なる場合、競合が発生する可能性があります。
$ git rebase -i
ここで、コミットを 1 つにまとめる必要があります。変更をプッシュしていない場合にのみ行ってください。
あなたが私に尋ねると、やや上のオプションです。:-)
「いやだ!押した!」オプション
オプション 2、または...git revert SHA-of-original-commit
すべての変更とコミットが続きます。
その元のコミットの何かが実際に悪い/有害である場合にのみ使用します。