特定のGitコミットを取り除く
コミットや特定のコミットを元に戻す可能性のある理由は2つあります.
シナリオA :機能ブランチで作業して、後で特定の変更を実現するとき、もはや関連性がありません.
シナリオB :リモートに作業ブランチを押すと、プルリクエストを作成するだけで、ブランチを比較して、ローカルリポジトリが同期していないため、おそらくあなたの仕事に関連していないコミットがあります.
修正方法
シナリオAの場合次のように実行できます.
ヒントは、実行することによってすべてのハッシュと一緒にコミットをリストすることができます
ヒントは、Rebaseは、現在の変更を取ると別の枝の上に積み重ね、それゆえ我々は選択的にコミットを選択し、他の人を拒否することができます.
エディタを開いて、開いたエディタでレコードを削除するだけで、特定のコミットを削除できます.エディタには、コマンドの指示があります.
コマンドを開いたエディタは次のようになります.
それです.楽しいコーディング!
シナリオA :機能ブランチで作業して、後で特定の変更を実現するとき、もはや関連性がありません.
シナリオB :リモートに作業ブランチを押すと、プルリクエストを作成するだけで、ブランチを比較して、ローカルリポジトリが同期していないため、おそらくあなたの仕事に関連していないコミットがあります.
修正方法
シナリオAの場合次のように実行できます.
git revert <commit-hash>
どこ<commit-hash>
は指定したコミットハッシュです.ヒントは、実行することによってすべてのハッシュと一緒にコミットをリストすることができます
git log --oneline
シナリオB :我々のブランチから複数のコミット/変更を削除する必要がある場所では、実行してターゲットベースブランチと対話的に再利用できますgit rebase -i <target-branch>
これにより、現在の作業ブランチ内のすべてのコミットが一覧表示されます.ヒントは、Rebaseは、現在の変更を取ると別の枝の上に積み重ね、それゆえ我々は選択的にコミットを選択し、他の人を拒否することができます.
エディタを開いて、開いたエディタでレコードを削除するだけで、特定のコミットを削除できます.エディタには、コマンドの指示があります.
コマンドを開いたエディタは次のようになります.
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
運動を完了し、エディタを閉じると、ReBaseは自動的にその方法で動作します.それです.楽しいコーディング!
Reference
この問題について(特定のGitコミットを取り除く), 我々は、より多くの情報をここで見つけました https://dev.to/segaz2002/getting-rid-of-specific-git-commits-2ob3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol