SourceTreeでリベースして強制プッシュの手順

  • 4
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

ドキュメントの対象ユーザ

  • SourceTree By Atlassianを使っている、かつ、コマンドラインは苦手(≒ターミナルでgitコマンド打ちたくない)
  • 元(例master)から分岐させたブランチ(例development)で作業して、 masterをリベースせずにコミットしてmasterにプルリクしたらところコンフリクトが発生 した(橙色の三角形)
    Kobito.F9qGu3.png

  • コードをどう直せばいいかわかるけど、SourceTree上での手順がわからないので知りたい

やること概要

  • SourceTreeでリベースして強制プッシュ(タイトルまんま)

手順

SourceTreeでリベース

  1. masterブランチをチェックアウトする
    Kobito.ViY40T.png

  2. プルして最新にする
    スクリーンショット 2016-06-22 18.26.32.png

  3. developmentブランチをチェックアウトする
    スクリーンショット 2016-06-22 18.28.09.png

  4. グラフからmasterブランチの最新のコミットを選択し右クリックして リベース を選択
    Kobito.87CkK4.png

  5. リベースの確認とマージで競合ダイアログをOKする
    スクリーンショット 2016-06-22 18.28.43.png
    スクリーンショット 2016-06-22 18.28.50.png

コンフリクトを解消

  1. ファイルステータスでコンフリクトを確認
    コンフリクトが起きたファイルが表示されているのでそれらの内容を確認する。
    スクリーンショット 2016-06-22 18.28.59.png
    スクリーンショット 2016-06-22 18.29.31.png
    エディタでも確認
    スクリーンショット 2016-06-22 18.30.49.png

  2. コンフリクトを解消する
    エディタでコンフリクトを解消させる。(みりみりがんばりましょう)
    スクリーンショット 2016-06-22 18.30.58.png

リベースの続行

  1. 作業ツリーのファイルをIndexにステージする
    スクリーンショット 2016-06-22 18.31.07.png

  2. コンフリクトを示すアイコン(橙色の三角形)が無くなることを核にする
    スクリーンショット 2016-06-22 18.31.50.png

  3. SourceTreeのメニューの 操作→リベースを続ける を実施(リベースを続行しますかダイアログはOKですすめる)
    スクリーンショット 2016-06-22 18.32.07.png
    スクリーンショット 2016-06-22 18.32.23.png

強制プッシュ

  1. 強制プッシュの準備をする。
    SourceTreeはデフォルトでは強制プッシュが無効なので、環境設定→全般を開いて 強制プッシュを許可にチェックを入れる
    スクリーンショット 2016-06-22 18.37.09.png

  2. 強制プッシュを実施する
    プッシュを行う。途中のダイアログの左下に 強制プッシュ にチェックボックスが現れている。これにチェックを入れてOKを押して強制プッシュをする。強制プッシュを確認ダイアログが出てもそのままOKですすめる。
    スクリーンショット 2016-06-22 18.37.48.png
    スクリーンショット 2016-06-22 18.37.59.png

Bitbuketでコンフリクトが解消されていることを確認する。

Bitbucketのdevelopmentブランチに接続して、コンフリクトが解消されたことを確認しましょう。
Kobito.s942Bp.png
これで終わりです

備考

  • 強制プッシュは慎重に行ってください。一人で更新を勧めているブランチであれば最新が手元にあるため事故が起きても取り返しがつきますが、2人以上で更新をしているブランチでは最新が必ずしも手元にあるとは限らないため、強制プッシュにより問題が起きる可能性があります。
  • 強制プッシュは使いたくないので、コミットする前はリベースするようこころがけましょう。
  • Bitbuketでなくても、Githubでも同様だと思う。

参考