まず、解決策 (潜在的に危険)。次に、git の使用方法に関する不要な警告:
危険な解決策
ステップ 1: リベース。
(難易度:中 --- 危険度:中)
コミット SHA や HEAD~4 などのコミットを示すコマンドを使用しgit rebase -i <something>
ます(対話的にリベースするコミットの数で 4 を置き換えます)。<something>
このコマンドは、対話型リベースの使用方法を説明するいくつかの段落を含むエディターを開きます。そこから重複したコミットを簡単に削除できますが、安全のためにブランチを別のブランチに保存する必要があります。git rebase -i
は、使い方を学ぶのに非常に便利なコマンド/スイッチです。
ステップ 2: 強制的に押します。
(難易度: 低 --- 危険度: 高)
git push origin <branch name> --force
変更をプッシュします。これは危険です。なぜなら、そのブランチからプルする人は同期しなくなり、ブランチを削除して再度フェッチする必要があるからです。ステップ 2aに従う必要があります。あなた以外に誰もそのブランチを使用していない場合は、プッシュを強制しても安全です。
ステップ 2a: 他の全員を更新します。
(難易度:中 --- 危険度:中)
git branch -D yourbranch # Delete your branch
git checkout origin/yourbranch # Check out the remote-tracking branch
git checkout -b yourbranch # Recreate the branch
GitHub と統合する CI ツールは影響を受けません。
警告
git-flow
または同様のプロセスを使用する必要があります。2 人のユーザーが同じブランチにプッシュしないようにしてください。そうしないと、常にマージの競合が発生します。また、マスターにマージされたコミットや、複数の人がプルしたコミットをリベースしないでください。プッシュを強制する場合は、リベースされたコミットがマージされているすべてのマシンのすべてのレポのすべてのブランチにステップ 2aを適用する必要があります。マスターにあったコミットをリベースすると悪夢です。