エラーメッセージ
- サンプルコード:
➜ git:(test) git push origin test
! [rejected] test -> test (fetch first)
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
- 翻訳:
!(拒绝 ] 测试→首先测试(获取)
提示:更新被拒绝,因为远程包含您所做的工作
提示:没有本地。这通常是由另一个存储库推送引起的
提示:相同的ref。你可能想要首先集成远程更改
提示:(例如,'git pull…')然后再推。
提示:请参阅'git push—help'中的'Note about fast-forward '获取详细信息。
解決
分析: これは、ブランチをプッシュする前に最新のコードをプルしなかったため、バージョンが不一致になったことが原因です。
解決策: マージ前のコードにロールバックし、最新のコードをプルしてから、ブランチをプッシュします。
注: このソリューションは 2 つのブランチ間のマージ操作に適用できます。たとえば、テスト ブランチがバージョンをロールバックすると、テスト上のマージされたコードは失われます。テスト ブランチを正常にプルできた後、開発ブランチのコードを再度テストにマージします。したがって、必ずこのバージョンのコードを保持してから、前のバージョンにロールバックし、プルが成功するのを待ってから、コードを再マージしてください。
- 過去 2 つのコミットの履歴バージョンを表示する
➜ git:(test) git log -2 # 查看最近2次提交的历史版本
commit da20b931f4e04a61f0f9b4e4726a2e907e566fc6
Merge: 33df706e 6018c237
Author: 流星
Date: Wed Jan 19 09:58:40 2022 +0800
第二版
commit 6018c237278f5265e78314049d6642e493ebdb56
Author: 流星
Date: Wed Jan 19 09:57:50 2022 +0800
第一版
- 以前のバージョンにロールバックする
➜ git:(test) git reset --hard 6018c237278f5265e78314049d6642e493ebdb56
- 次に、プルしてブランチを更新します
➜ git:(test) git pull origin test
- 現在のブランチを再マージする
➜ git:(test) git merge dev
- 最後にプッシュアップ
➜ git:(test) git push origin test