そのため、github でプロジェクトをフォークしましたが、最初に「プル」を行う必要がある「プッシュ」コマンドでエラーが発生したため、ローカルの変更をオリジン リポジトリにプッシュできませんでした。問題は、「プル」がすべてのローカル コミットを上書きし続けることです。
以下に例を示します。
github にプロジェクト A (リモート = アップストリーム) があり、それを自分のプロジェクト (リモート = オリジン) にフォークしました。次に、ブランチ「branch_a」を作成して、すべてのパッチの変更を追加し、このブランチをリモートのオリジン リポジトリにプッシュしました。このプロセス全体を複数のコミットで失敗させてしまったので、プル リクエストを送信して変更をプロジェクト A に送信するために、コミットを 1 つにまとめる必要がありました。
git rebase -i アップストリーム/マスター
4 つのコミットを見て、必要なものを選択し、他のコミットを削除しました
git push オリジン branch_a
受信したエラー:
! [拒否] branch_a -> branch_a (non-fast-forward) エラー: 一部の参照を 'https://github.com/#####/#####.git' にプッシュできませんでしたhistory、非早送り更新が拒否されました 再度プッシュする前に、リモートの変更 (「git pull」など) をマージしてください。詳細については、「git push --help」の「早送りに関する注意」セクションを参照してください。
プル コマンドを実行します。
git pull オリジン branch_a
受信したメッセージ:
- branch branch_a -> FETCH_HEAD 再帰によるマージ。libpex/インストール | 364 ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++ 1 ファイル変更、364 挿入 (+)、0 削除 (-) 作成モード 100644 libpex/INSTALL
プル コマンドによって完全に上書きされたローカル コミット (このファイルを約 10 回削除しようとしましたが、何度も削除されます)。
だから今、私は再び4つのコミットをすることに戻りました。私の人生では、正しいコミットを元のレポにプッシュすることはできません。これについて何ができますか?