1. ホーム
  2. git

[解決済み] 強制アップデート後のGitプル

2022-03-22 16:40:39

質問

でコミットを潰したところ git rebase を実行し git push --force (これは邪道ですが)。

さて、他のソフトウエアエンジニアは、履歴が違うので、その人がやっても git pull を使用すると、Git はマージします。これを修正する方法はありますか? rm my-repo; git clone [email protected]:my-repo.git ?

の反対のようなものが必要です。 git push --force しかし git pull --force は、意図した結果を得ることができませんでした。

解決方法は?

新しいコミットを受け取るには

git fetch

リセット

ローカルブランチのコミットをリセットするには、次のようにします。 git reset .

ローカルブランチのコミットを変更する場合。

git reset origin/main --hard

ただし、ドキュメントにあるように、注意が必要です。

インデックスと作業ツリーをリセットします。作業ツリー内の追跡対象ファイルに対する <commit> 以降の変更はすべて破棄されます。

もし、ローカルにある変更をすべて実際に保持したい場合は --soft 代わりにリセットしてください。これはブランチのコミット履歴を更新しますが、作業ディレクトリのファイルは変更しません(そしてあなたはそれをコミットすることができます)。

リベース

ローカルでのコミットを他のコミット/ブランチの上に再生するには、次のようにします。 git rebase :

git rebase -i origin/main

これはインタラクティブモードでリベースを実行し、リベースの対象となる履歴にないコミットを個別に適用する方法を選択できるようにします。

もし、削除したコミット( git push -f リベースの際に削除するか、あるいは単にそのブランチの歴史に再インクルードされるだけです。

ヘルプを使用する git command --help は、上記のコマンド(または他のコマンド)の詳細と例を参照してください。