どの非対話型gitコマンドがBeforeからAfterへの変更を実現しますか?
前:
A---B---C---D
後:
A---C'---B'---D'
どの非対話型gitコマンドがBeforeからAfterへの変更を実現しますか?
前:
A---B---C---D
後:
A---C'---B'---D'
あなたの場合、インタラクティブをリベースできます。git rebase -i HEAD~4
次に、ピックを並べ替えることができます
たとえば、ブランチにさらに 3 つのファイルを追加してみましょう。
git add A
git commit -m "A"
git add B
git commit -m "B"
git add C
git commit -m "C"
ショートログは次のようになります。
$ git shortlog
(3):
A
B
C
B を C で並べ替えたい場合:
$ git rebase -i HEAD~2
pick 1f9133d B
pick 33f41be C
次のように並べ替えるだけです。
pick 33f41be C
pick 1f9133d B
書き終わったら、ショートログを参照してください。
$ git shortlog
(3):
A
C
B
並べ替えることで、すべてのコミットで同じことができます。それはあなたが見るものはあなたが得るものであり、それはかなりクールです:)
これを試して:
git reset --hard A
git cherry-pick C
git cherry-pick B
git cherry-pick D
という方法もあるのかもしれgit rebase
ませんが、よくわかりませんでした。
非対話的な方法で git rebase --interactive を実行するにはどうすればよいですか? を参照してください。非インタラクティブな方法で git rebase --interactive を使用するため。
次に、コミットを並べ替えるための正式な基準がある場合は、それをスクリプト化できます。たとえば、元のコミット日付でコミットを並べ替えるために git マージを本当にフラット化するを参照してください。