SlideShare ist ein Scribd-Unternehmen logo
1 von 21
SVN 経験者のための GIT 入門




         Aiming 大阪スタジオ
                 エンジニア
                  安井彰一
アウトライン

    SVN と GIT の比較

    これだけ覚えよう
      –   トピックブランチ
      –   各コマンドの説明

    実際の使用例

    その他便利なコマンド紹介
SVN と GIT の比較

    SVN            
                       GIT
                                pull
          update
                               branch
                                          こ
           作業                   作業
                                          こ
                                          が
                                          重
                             add/commit
      (update)
                              squash

          commit
                               push
                                          要
これだけ覚えよう

    ブランチという概念

    トピックブランチ

    git pull –rebase
       –    git fetch

    git checkout

    git add -u

    git commit

    git rebase -i

    git push
ブランチという概念

    svn の trunk/release と同じ

    特定のコミットの別名
      –   ただし、コミットする度に指す先が変わる

    リモートブランチ
      –   他の人と共同作業しているブランチ

    ローカルブランチ
      –   自分しか使わないブランチ
           •   好き勝手できる!!!
トピックブランチ

    特定の作業用のブランチ
     –   新機能実装 / バグの修正 / コメントの修正 / リファ
         クタ

    何をするにしてもこのブランチを作成する。

    これがあることで、作業の切り替えが便利に。
     –   今の作業を置いといて、急ぎのバグ修正をす
         る。
     –   typo 見つけたので見つからないうちに修正

    push するまで他人に全く影響が出ない!
git pull (--rebase)

    rebase オプションにより svn update と同等
      –   git pull --rebase

    他人の変更を取得し、自分のブランチとマージ

    fetch と merge(rebase) の組み合わせ
      –   git fetch;git merge origin/master
      –   (git fetch; git rebase origin/master)

    ローカルブランチで使用しないこと!
      –   基本は master ブランチで使用
      –   (origin/master – master - ローカルブランチ )
git fetch

    svn update と同等
      –   ただし対象は origin/master などリモートブラン
          チ

    他人の変更 ( 最新のリモートブランチ ) を
    取得する
git checkout

    svn に該当するコマンドはない
     –   現在のローカルのファイルに対し、
         該当コミットのファイルを取得するなど
         一部同じような動作もある
     –   svn checkout と混同しないようにしよう

    特定のブランチ ( コミット ) に移動する
     –   git checkout -b でブランチ作成・移動が一発で可
         能
git add (-u)

    svn に該当するコマンドはない
     –   svn では常時 git add -u されている状態
     –   svn add と混同しないようにしよう

    次のコミットに使用するファイルを選択する
     –   git add -p で行単位での指定も可能

    どうせ後から改変できるから
     –   git add -u .
git commit

    svn commit に似ている
      –   git では add されないとコミットされない
      –   git commit -a で svn commit と見た目は同じ挙動
          でも全然違うので気をつけよう

    新しいコミットを作る

    現在の修正が不要になったとしてもコミットすべし!
      –   しまった、あの変更だけは取っておきたかった
          ということがないように・・・。

    何か変更したらとりあえず git commit !
      –   git commit -a -m”`date`” とかを alias してもいいか
          も

    git commit –amend で1つ前のコミットと統合できる
git rebase ( -i )

    svn に該当するコマンドはない
      –   svn update と感覚は似ているかも

    特定のブランチ ( コミット ) に対して
    自分のブランチのコミットをくっつける
      –   git cherry-pick を繰り返す
      –   あくまで主体は「特定のブランチ」の方
          git checkout –ours ファイル名 で取ってこれるのは
          「特定のブランチ」のファイルであることに注意

    git reset なんかもあるけどこっちの方がわかりやすい
git rebase ( -i )

    pick

    reword

    edit

    squash

    fixup

    exec
git rebase ( -i )

    pick
       –     コミットを使用する

    reword
       –     コミットメッセージを改変する

    fixup
       –     コミットを1つ前のコミットにまとめる

    edit
       –     コミットの内容を修正する

    消したいとき
       –     その行を消す
git push

    svn commit
      –   ここで初めて他人に影響が出る

    リモートブランチに変更を反映
実際の使用例

    ベクトルクラスに operator+ を作ろう

    operator+ を operator+= で実装 → コミット

    正しくできたか printf で調べてみる → コミット

    関係ないけど Vector のスペルが違う!
      –   別ブランチで修正してくる

    operator+= の実装にミスを発見・修正 → コミット

    operator+ が正しく動くことを確認

    rebase して、 operator+= の修正と
    operator+ の実装を push して終了      デモ
その他便利なコマンド紹介

    git status -sb ( svn status )
       –    現在の変更を見る

    git log ( svn log )
       –    ログを見る

    git show ブランチ ( コミット )
       –    該当のコミット ( ブランチ名は最新コ
            ミット )
            の内容を見る
その他便利なコマンド紹介

    git reset
       –    HEAD を移動する
       –    コミットを分割する時などに
       –    git reset –hard は
            危険なので注意して使用すること

    git reflog
       –    しまった!と思ったらこれで復元
       –    ただし、コミットされていない変更は
            復元できません!!!
その他便利なコマンド紹介

    git rebase –onto ブランチ A ブランチ B
       –     A に rebase するけど、 B の変更は含まない

    git mergetool
       –     コンフリクトした時用

    git gc
       –     パフォーマンスの改善に

    git merge
       –     rebase よりこちらを推奨したいが、
             不要なコミットも混ざる
質疑応答
ご清聴ありがとうございました。

Weitere ähnliche Inhalte

Andere mochten auch

BellAds Official Presentation - Customers
BellAds Official Presentation - CustomersBellAds Official Presentation - Customers
BellAds Official Presentation - Customersbelladsnetwork
 
Flashをcocos2dxで再生
Flashをcocos2dxで再生Flashをcocos2dxで再生
Flashをcocos2dxで再生AimingStudy
 
股票形态学
股票形态学股票形态学
股票形态学balkline
 
Netwerk bouwen nh2.0 bim - hoe doen anderen het - ooijevaar - bevlogen bouw...
Netwerk bouwen nh2.0   bim - hoe doen anderen het - ooijevaar - bevlogen bouw...Netwerk bouwen nh2.0   bim - hoe doen anderen het - ooijevaar - bevlogen bouw...
Netwerk bouwen nh2.0 bim - hoe doen anderen het - ooijevaar - bevlogen bouw...BouwenNH2punt0
 
130228 kunnen corporaties nog investeren woonwaard - bouwen nh2.0
130228 kunnen corporaties nog investeren   woonwaard - bouwen nh2.0130228 kunnen corporaties nog investeren   woonwaard - bouwen nh2.0
130228 kunnen corporaties nog investeren woonwaard - bouwen nh2.0BouwenNH2punt0
 
Makalah salat
Makalah salatMakalah salat
Makalah salatIben Zani
 
gitを使う準備をしよう - 中級編
gitを使う準備をしよう - 中級編gitを使う準備をしよう - 中級編
gitを使う準備をしよう - 中級編Sanae Yamashita
 
Gitの使い方(rabese -i編)
Gitの使い方(rabese -i編)Gitの使い方(rabese -i編)
Gitの使い方(rabese -i編)y42sora
 
1日で始めるglsl
1日で始めるglsl1日で始めるglsl
1日で始めるglslAimingStudy
 
テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善Mizuho Wakai
 
The Essential Part 108 Air Cargo Security Guide July 2012
The Essential Part 108 Air Cargo Security Guide July 2012The Essential Part 108 Air Cargo Security Guide July 2012
The Essential Part 108 Air Cargo Security Guide July 2012Professional Aviation Services
 
rebaseにまつわる3つの誤解
rebaseにまつわる3つの誤解rebaseにまつわる3つの誤解
rebaseにまつわる3つの誤解ymmt
 
Git, Github超入門
Git, Github超入門Git, Github超入門
Git, Github超入門Tomoki Saito
 
はじめようGit
はじめようGitはじめようGit
はじめようGittechscore
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 

Andere mochten auch (20)

Git超入門
Git超入門Git超入門
Git超入門
 
BellAds Official Presentation - Customers
BellAds Official Presentation - CustomersBellAds Official Presentation - Customers
BellAds Official Presentation - Customers
 
Flashをcocos2dxで再生
Flashをcocos2dxで再生Flashをcocos2dxで再生
Flashをcocos2dxで再生
 
Highlights 2011
Highlights 2011Highlights 2011
Highlights 2011
 
股票形态学
股票形态学股票形态学
股票形态学
 
Netwerk bouwen nh2.0 bim - hoe doen anderen het - ooijevaar - bevlogen bouw...
Netwerk bouwen nh2.0   bim - hoe doen anderen het - ooijevaar - bevlogen bouw...Netwerk bouwen nh2.0   bim - hoe doen anderen het - ooijevaar - bevlogen bouw...
Netwerk bouwen nh2.0 bim - hoe doen anderen het - ooijevaar - bevlogen bouw...
 
130228 kunnen corporaties nog investeren woonwaard - bouwen nh2.0
130228 kunnen corporaties nog investeren   woonwaard - bouwen nh2.0130228 kunnen corporaties nog investeren   woonwaard - bouwen nh2.0
130228 kunnen corporaties nog investeren woonwaard - bouwen nh2.0
 
Chn2
Chn2Chn2
Chn2
 
Makalah salat
Makalah salatMakalah salat
Makalah salat
 
gitを使う準備をしよう - 中級編
gitを使う準備をしよう - 中級編gitを使う準備をしよう - 中級編
gitを使う準備をしよう - 中級編
 
Gitの使い方(rabese -i編)
Gitの使い方(rabese -i編)Gitの使い方(rabese -i編)
Gitの使い方(rabese -i編)
 
Git rebase
Git rebaseGit rebase
Git rebase
 
1日で始めるglsl
1日で始めるglsl1日で始めるglsl
1日で始めるglsl
 
Pallet Sock September 2013
Pallet Sock September 2013Pallet Sock September 2013
Pallet Sock September 2013
 
テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善
 
The Essential Part 108 Air Cargo Security Guide July 2012
The Essential Part 108 Air Cargo Security Guide July 2012The Essential Part 108 Air Cargo Security Guide July 2012
The Essential Part 108 Air Cargo Security Guide July 2012
 
rebaseにまつわる3つの誤解
rebaseにまつわる3つの誤解rebaseにまつわる3つの誤解
rebaseにまつわる3つの誤解
 
Git, Github超入門
Git, Github超入門Git, Github超入門
Git, Github超入門
 
はじめようGit
はじめようGitはじめようGit
はじめようGit
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 

Ähnlich wie SVN経験者のためのGIT入門

Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
RedmineとGitとスクラム
RedmineとGitとスクラムRedmineとGitとスクラム
RedmineとGitとスクラムTakashi Okamoto
 
今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話iPride Co., Ltd.
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座貴一 末田
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルComputational Materials Science Initiative
 
Git-dojo In Sendagaya.rb
Git-dojo In Sendagaya.rbGit-dojo In Sendagaya.rb
Git-dojo In Sendagaya.rbJun Fukaya
 
バージョン管理
バージョン管理バージョン管理
バージョン管理Misa Kondo
 
20120324 git training
20120324 git training20120324 git training
20120324 git trainingTakeshi AKIMA
 
git 初めの一歩
git 初めの一歩git 初めの一歩
git 初めの一歩Shin Yoshida
 
Gitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめGitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめNatsumi Kashiwa
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回kinme modoki
 
バージョン管理システムチュートリアル
バージョン管理システムチュートリアルバージョン管理システムチュートリアル
バージョン管理システムチュートリアルRyo Igarashi
 

Ähnlich wie SVN経験者のためのGIT入門 (20)

Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
Git overview (v 0.96)
Git overview (v 0.96)Git overview (v 0.96)
Git overview (v 0.96)
 
RedmineとGitとスクラム
RedmineとGitとスクラムRedmineとGitとスクラム
RedmineとGitとスクラム
 
今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
 
Git-dojo In Sendagaya.rb
Git-dojo In Sendagaya.rbGit-dojo In Sendagaya.rb
Git-dojo In Sendagaya.rb
 
git ~start PullRequest~
git ~start PullRequest~git ~start PullRequest~
git ~start PullRequest~
 
Git 勉強会
Git 勉強会Git 勉強会
Git 勉強会
 
バージョン管理
バージョン管理バージョン管理
バージョン管理
 
20120324 git training
20120324 git training20120324 git training
20120324 git training
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
Git(japanese)
Git(japanese)Git(japanese)
Git(japanese)
 
dvcs-kyoto
dvcs-kyotodvcs-kyoto
dvcs-kyoto
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
Git Workshop 20130720
Git Workshop 20130720Git Workshop 20130720
Git Workshop 20130720
 
git 初めの一歩
git 初めの一歩git 初めの一歩
git 初めの一歩
 
Gitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめGitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめ
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回
 
バージョン管理システムチュートリアル
バージョン管理システムチュートリアルバージョン管理システムチュートリアル
バージョン管理システムチュートリアル
 

Mehr von AimingStudy

Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話AimingStudy
 
デザイナーがMELスクリプトを書いて工数削減した話
デザイナーがMELスクリプトを書いて工数削減した話デザイナーがMELスクリプトを書いて工数削減した話
デザイナーがMELスクリプトを書いて工数削減した話AimingStudy
 
剣と魔法のログレス(PC版)の自慢と課題
剣と魔法のログレス(PC版)の自慢と課題剣と魔法のログレス(PC版)の自慢と課題
剣と魔法のログレス(PC版)の自慢と課題AimingStudy
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVCAimingStudy
 
3D描画基礎知識
3D描画基礎知識3D描画基礎知識
3D描画基礎知識AimingStudy
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築AimingStudy
 
AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AimingStudy
 
C++のビルド高速化について
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化についてAimingStudy
 
Adobe scoutの紹介
Adobe scoutの紹介Adobe scoutの紹介
Adobe scoutの紹介AimingStudy
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門AimingStudy
 

Mehr von AimingStudy (11)

Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
 
デザイナーがMELスクリプトを書いて工数削減した話
デザイナーがMELスクリプトを書いて工数削減した話デザイナーがMELスクリプトを書いて工数削減した話
デザイナーがMELスクリプトを書いて工数削減した話
 
剣と魔法のログレス(PC版)の自慢と課題
剣と魔法のログレス(PC版)の自慢と課題剣と魔法のログレス(PC版)の自慢と課題
剣と魔法のログレス(PC版)の自慢と課題
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVC
 
Unityと.NET
Unityと.NETUnityと.NET
Unityと.NET
 
3D描画基礎知識
3D描画基礎知識3D描画基礎知識
3D描画基礎知識
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
 
AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発
 
C++のビルド高速化について
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化について
 
Adobe scoutの紹介
Adobe scoutの紹介Adobe scoutの紹介
Adobe scoutの紹介
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門
 

SVN経験者のためのGIT入門

  • 1. SVN 経験者のための GIT 入門 Aiming 大阪スタジオ エンジニア 安井彰一
  • 2. アウトライン  SVN と GIT の比較  これだけ覚えよう – トピックブランチ – 各コマンドの説明  実際の使用例  その他便利なコマンド紹介
  • 3. SVN と GIT の比較  SVN  GIT pull update branch こ 作業 作業 こ が 重 add/commit (update) squash commit push 要
  • 4. これだけ覚えよう  ブランチという概念  トピックブランチ  git pull –rebase – git fetch  git checkout  git add -u  git commit  git rebase -i  git push
  • 5. ブランチという概念  svn の trunk/release と同じ  特定のコミットの別名 – ただし、コミットする度に指す先が変わる  リモートブランチ – 他の人と共同作業しているブランチ  ローカルブランチ – 自分しか使わないブランチ • 好き勝手できる!!!
  • 6. トピックブランチ  特定の作業用のブランチ – 新機能実装 / バグの修正 / コメントの修正 / リファ クタ  何をするにしてもこのブランチを作成する。  これがあることで、作業の切り替えが便利に。 – 今の作業を置いといて、急ぎのバグ修正をす る。 – typo 見つけたので見つからないうちに修正  push するまで他人に全く影響が出ない!
  • 7. git pull (--rebase)  rebase オプションにより svn update と同等 – git pull --rebase  他人の変更を取得し、自分のブランチとマージ  fetch と merge(rebase) の組み合わせ – git fetch;git merge origin/master – (git fetch; git rebase origin/master)  ローカルブランチで使用しないこと! – 基本は master ブランチで使用 – (origin/master – master - ローカルブランチ )
  • 8. git fetch  svn update と同等 – ただし対象は origin/master などリモートブラン チ  他人の変更 ( 最新のリモートブランチ ) を 取得する
  • 9. git checkout  svn に該当するコマンドはない – 現在のローカルのファイルに対し、 該当コミットのファイルを取得するなど 一部同じような動作もある – svn checkout と混同しないようにしよう  特定のブランチ ( コミット ) に移動する – git checkout -b でブランチ作成・移動が一発で可 能
  • 10. git add (-u)  svn に該当するコマンドはない – svn では常時 git add -u されている状態 – svn add と混同しないようにしよう  次のコミットに使用するファイルを選択する – git add -p で行単位での指定も可能  どうせ後から改変できるから – git add -u .
  • 11. git commit  svn commit に似ている – git では add されないとコミットされない – git commit -a で svn commit と見た目は同じ挙動 でも全然違うので気をつけよう  新しいコミットを作る  現在の修正が不要になったとしてもコミットすべし! – しまった、あの変更だけは取っておきたかった ということがないように・・・。  何か変更したらとりあえず git commit ! – git commit -a -m”`date`” とかを alias してもいいか も  git commit –amend で1つ前のコミットと統合できる
  • 12. git rebase ( -i )  svn に該当するコマンドはない – svn update と感覚は似ているかも  特定のブランチ ( コミット ) に対して 自分のブランチのコミットをくっつける – git cherry-pick を繰り返す – あくまで主体は「特定のブランチ」の方 git checkout –ours ファイル名 で取ってこれるのは 「特定のブランチ」のファイルであることに注意  git reset なんかもあるけどこっちの方がわかりやすい
  • 13. git rebase ( -i )  pick  reword  edit  squash  fixup  exec
  • 14. git rebase ( -i )  pick – コミットを使用する  reword – コミットメッセージを改変する  fixup – コミットを1つ前のコミットにまとめる  edit – コミットの内容を修正する  消したいとき – その行を消す
  • 15. git push  svn commit – ここで初めて他人に影響が出る  リモートブランチに変更を反映
  • 16. 実際の使用例  ベクトルクラスに operator+ を作ろう  operator+ を operator+= で実装 → コミット  正しくできたか printf で調べてみる → コミット  関係ないけど Vector のスペルが違う! – 別ブランチで修正してくる  operator+= の実装にミスを発見・修正 → コミット  operator+ が正しく動くことを確認  rebase して、 operator+= の修正と operator+ の実装を push して終了 デモ
  • 17. その他便利なコマンド紹介  git status -sb ( svn status ) – 現在の変更を見る  git log ( svn log ) – ログを見る  git show ブランチ ( コミット ) – 該当のコミット ( ブランチ名は最新コ ミット ) の内容を見る
  • 18. その他便利なコマンド紹介  git reset – HEAD を移動する – コミットを分割する時などに – git reset –hard は 危険なので注意して使用すること  git reflog – しまった!と思ったらこれで復元 – ただし、コミットされていない変更は 復元できません!!!
  • 19. その他便利なコマンド紹介  git rebase –onto ブランチ A ブランチ B – A に rebase するけど、 B の変更は含まない  git mergetool – コンフリクトした時用  git gc – パフォーマンスの改善に  git merge – rebase よりこちらを推奨したいが、 不要なコミットも混ざる