1
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 1 year has passed since last update.

git pullとmergeを極力使わず、fetchとrebaseに統一する

Last updated at Posted at 2022-05-25

はじめに

git mergeは、コミットメッセージが作られるので履歴が汚い
git pullは、Gitがよしなにマージするので意図しないマージが発生する時がある
ことから、pullとmergeは使わずにできるだけgit fetchgit rebaseに統一するようになった。

git pullの代替コマンド

ターミナル
$ git fetch origin    ←リモートの情報をoriginにダウンロード
$ git checkout ブランチ名
$ git rebase origin/ブランチ名    ←ダウンロードした情報を反映

fetchとcheckoutの順番はどっちでも良い。

git mergeの代替コマンド

例えばmasterブランチの差分を取り入れたい場合

$ git fetch origin    ←リモートの情報をoriginにダウンロード
$ git checkout ブランチ名
$ git rebase origin/master    ←ダウンロードしたmasterの情報を取り入れる

こちらもfetchとcheckoutの順番はどっちでも良い。

rebase -iでは色々なことができる

例えばgit rebase -i HEAD~3とすると、デフォルトのエディタが開き以下の表示になる。

ターミナル
pick コミットID① コミットメッセージ①
pick コミットID② コミットメッセージ②
pick コミットID③ コミットメッセージ③

コマンドの説明...

これを編集して

pick コミットID① コミットメッセージ①
pick コミットID③ コミットメッセージ③

コマンドの説明...

として保存&終了すると、コミットID②のコミットが消える。
git logで確認してみてください。

上記以外にも、コミットメッセージを変更したりコミットをsquash(まとめる)こともできる。
git rebase iなどでググってみると良い。

1
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
1
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?