一般社団法人 全国個人事業主支援協会

COLUMN コラム

リモートと差分があってpushできない

 

業務で、Serverless Frameworkのソースコードを修正して、git pushしたが仲間が同じブランチにgit pushしていた。この場合コミットの差分が解消されていないと、ローカルからリモートにgit pushできない。

解消する方法は私の知ってる方法だと2個ある。

 

revertの場合

revertの場合だと「巻き戻し」と表現されることがある。

 

git revert コマンドは作業を前進させながら変更を安全に元に戻すことができる操作です。 コミット履歴でコミットを削除したり隔離したりするのではなく、新しいコミットを作成して指定した変更を打ち消します。 git revert では git reset よりも作業内容を消失するリスクを軽減できます。

 

公式のリンク

 

1個前のコミットに戻る方法

git revert HEAD

 

resetの場合

履歴が消えてしまうので使い方によっては注意が必要。使用するときには以下のオプションをつけます。

 

公式のリンク

  • --soft: コミットを取り消しても、変更内容はステージングエリアに残ります。
  • --mixed: コミットを取り消し、変更内容をワークツリーに戻します(デフォルト動作)。
  • --hard: コミットを取り消し、変更内容もすべて削除します。注意が必要です。

仕事では以下のコマンドを使いました↓

コミットを取り消し、変更内容をワークツリーに戻すコマンドの場合。

git reset --mixed HEAD^

 

最後に

仕事によっては、revertして新しいコミットを作って変更内容を以前のものに戻す方法が推奨されていたりしますが、現場によっては、resetする方法を使用してローカルとリモートの差分を解消するケースもあります。重要なのは、リモートのリポジトリを破壊しないようにすることです。

The following two tabs change content below.

橋本 純一

スマホアプリのエンジニアしてます。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア