1. ホーム
  2. Git

git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。

2022-02-07 02:53:41

Androidのソースコードを修正する過程で、ローカルブランチをサーバーにプッシュする際に、以下のエラーが発生しました。

error: failed to push some refs to '[email protected]:/home/wsq/Extend/wsq/android/sprd/src/sc7731/android6.0/sc7731_m'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again. before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.






シナリオ

このプロジェクトは、非常に重要なものです。私はまず、最新の変更をサーバーにプッシュします。この時点でノードは:ノード1です。私のアップロードされたブランチの他の同僚は、自分のローカルな変更にチェックアウトし、変更の完了後、彼はサービス期間に彼のコードをプッシュする最初のものでした。さて、自分のローカルコードの修正(自分の修正と同僚の修正が衝突しないところ)がサーバーに終了し、同僚の修正したコードがマージされたところで、まずgit pullしてみましたが、特に異常は見当たりませんでした。しかし、git push origin HEADすると、 "Updates were rejected because the tip of your current branch is behind" と表示される。


理由

このエラーメッセージの理由は簡単で、順次関係です。


解決策

1. ローカルに新しいブランチを作成します:git branch test (コミットしたいブランチに基づきます)

2. シナリオ1で述べたノードに git push したいブランチを git checkout します。

3. git pull は同僚のコミットをすべてローカルに引き出します。

4. 4. git cherry-pickを使って、テストブランチからコミットごとに変更を取り込みます。

5. そして、git push origin HEAD を使ってブランチをサーバーにプッシュします。