Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
85
Help us understand the problem. What is going on with this article?
@makua

git pull --rebaseをpushする前にやろうという話。

これはなに?

いままでは気にしていなかったけど、git pull --rebase はpushする前にした方がいいよと言われた。
でもよくわからなかったので調べたのでそのまとめ。

git pullって?

git fecth + git mergeのこと。

つまり、リモートの更新をローカルに持ってくるコマンドのショートカット版。
たとえば、topic branchgit pull origin master をすると、topic branchにmasterをmergeすることになる。

じゃあgit pull --rebase は?

git fetch + git rebaseのこと。

たとえば、topic branchgit pull --rebase origin [main branch] をすると、topic branchに[main branch]をbaseにしてrebaseすることになる。

[topic-branch] $ git pull --rebase [main branch]

違いがわかりにくいって?わからなくていいや。とりあえずgit pull --rebase を使ってからpushしよう。 気になる人は、分かりやすいサイトがあるから見るといいよ。ちなみにこれを理解するのに8時間くらいかかりました。業務時間ずっと考えてたことになりますね。

図にすると?

checkoutした直後は下記の状態になる。

develop        o-o-o
              /
master o-o-o-o

これがしばらく進むとmasterでの開発が進んで下記の状態になる。

develop        o-o-o
              /
master o-o-o-o-o-o
  • このままpushするとconflictが起きやすい。そこで下記のようにしたい。
develop             o-o-o
                   /
master  o-o-o-o-o-o

この時使うといいのがgit pull --rebaseなのだ。よくわからなければとりあえずこれをすると良い。ちなみにこの状態がfast fowardと呼ばれる状態で、branchとして綺麗だし、差分が少ないのでconflictが起きづらいので非常に良い

conflictは普通に起こるんですよね。ほんと。

main branchとtopic branchで同じファイルを変更していた場合は、conflictが起こる。というか直してって言われる。

基本的に、branchをきれいな状態にするという思想でいいと思う。これがgit pull だと下記の状態になるのでちょっときたない。

develop        o-o-o
              /   /
master o-o-o-o-o-o

参考になる。

85
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
makua
waiting for deploy 気にしたらおしまいよ

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
85
Help us understand the problem. What is going on with this article?