0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Github】Github(リモート)のhistoryにローカル上を合わせる方法

Last updated at Posted at 2021-09-04

背景

こんにちは。エンジニアのたまご、風見優人です。
Githubってエラーが起きたりして厄介な存在じゃないかと
プログラミング初心者は思っているのではないでしょうか?

私もそんな悩みを抱えているプログラマー卵初心者ですw

こんなエラーが起きたので、
どうやって解消するかを解説していけたらと思います。

コミットの履歴が違うがために起きたエラー

まず初めに...リモートにプッシュしようとすると
リモートとローカル上のコミットの歴史(history)が違うがために
エラーが発生してしまいました。

原因

私としたことが、通常であればリモートレポジトリーを
github上で作成をしたらローカル上から初めてのpushを
リモートにすると思うのですが...

私は先にgithub上でreadmeファイルをコミットしてから
そのあとにローカルからrails newで作成したファイル一式を
リモートにpushを試みたのです。

(おいおい、そりゃローカルとリモートのコミットの歴史が
違うのでpushできずにエラーになってまうわいww)

解決方法

REBASEを使用せよ!

そんで、それってどうやって直すの?
って話になると思うのですが

Gitのコマンドには便利な機能があって
REBASE機能をつかうことでリモートのコミットの歴史と
同じ状態にローカルもすることができるんですね~。

コマンド実行順番

① git pull --rebase origin main
⇒ mainの部分はリモートにある履歴を一致させたい
  ブランチ名に合わせましょう。
  (人によってはmainではなくてmasterとかの人もいるかもしれません)

上記コマンドをすることで
 リモートの履歴をローカルの履歴を合わせられます。

② git status
⇒ git statusでどのファイルがローカルの
  ステージングに上がっているのか上がっていないのか
  チェックをします。

image.png

こんな感じにステージングされていない
ファイルは赤く表示されますよ♪

③ ファイルを修正
今回は赤くなってしまったファイルが
もともとあったローカルのファイルと
コンフリクトを起こしてしまったので
コンフリクトが起きたファイルを開いて修正します。

④ git diff ファイル名
これをすることで修正したファイルの
差分を確認することができます。

⑤ git add ファイル名
今回の場合はファイル名はコンフリクトが起きた
README.mdファイルになります。

git add をしてステージングに乗せてください。

⑥ git rebase --continue
これをすると、rebaseの状態から抜け出すことができます。

⑦ ESC :q で変な画面から脱出
変な画面が出るので
ESCを押して、一番下の行に:qをいれて
enterでぬけだしてください。

⑧ git push origin -f ブランチ名
最後にリモートにプッシュするのですが
pushする際に通常のプッシュでは
rebaseした時点で過去の履歴を強制的に合わせたと
ローカルが判断しpushできない状態になのです..

なので強制的にpushします!

-fは強制プッシュのやり方です。

これにて、リモートのコミット歴とローカルのコミット歴が
一致したことになりました。

まとめ

・リモートのコミット歴に合わせる際はrebaseを使用せよ
・rebaseをするとローカルからリモートにプッシュできなくなるので
 強制プッシュをせよ

参考になりましたら、
いいねとチャンネル登録を宜しくお願いいたします!
(youtuberか?!wwww)

LGTMを押していただけるとモチベーションUPに繋がります^^

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?