0
1

More than 3 years have passed since last update.

エラーが出てpush出来なくなった!![error: failed to push some refs to]

Last updated at Posted at 2021-01-04

●現象
エラーが出て、pushが出来ない

●エラー内容
error: failed to push some refs to "~~"

●原因は?
コンフリクトが出来ていたのをgit lab上で直したため、
リモート上のコミット履歴と、ローカルでのコミット履歴に差ができてしまいエラーが起きている。

以下のような状況です。

■ローカル
コミット履歴B(レビューの修正事項)
コミット履歴3
コミット履歴2
コミット履歴1

■リモート
コミット履歴A(コンフリクトの解消)
コミット履歴3
コミット履歴2
コミット履歴1

●対処法は?

今回は以下の手順で解決しました。
①修正作業をしたローカルの[sample_branch]をコピーし、[sample_branch_copy]を作成
②ローカルの[sample_branch]を削除
③リモート上の[sample_branch]をローカルに反映(コンフリクト解消したコミット履歴Aを獲得)
④コピーした[sample_branch_copy]から、修正作業を取り出す
⑤新しく反映したローカルの[sample_branch]に、取り出した作業内容も追加反映
⑥[sample_branch]を改めてコミット、pushする

●操作コマンド

git branch sample_branch_copy
# コピーを作成

git branch -d sample_branch
# ローカルのブランチを削除

git fetch
# リモートブランチをローカルに反映(リモートのsample_branchを取得)
ブランチ名:sample_branch_copy
git reset --soft HEAD^
#コミットを取り消し、作業中の状態に戻す(直線のコミットの取消)

git stash
# 修正した作業を取り出す
ブランチ名:sample_branch
git stash pop
# 修正した作業内容を反映
git branch
git log
# 上記コマンドでブランチ・コマンドの状況を常に確認する

●エラーを今後起こさないためには、、、

今回のケースでは、git lab上でコンフリクトを修正したため起こってしまいました。
そのため、今後はローカル上でコンフリクトを修正することで回避することが可能です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1