Help us understand the problem. What is going on with this article?

conflictしたときにGitHub Desktopをつかって解決!

More than 1 year has passed since last update.

こちらは東京理科大学 Advent Calendar 2016の19日目の記事です。

今日はGitHub Desktopをつかった、比較的簡単(だと思われる)conflictの解消の仕方をかいていきます。
ターミナルとGitHub Desktopを混ぜて使っているのでこの通りにやると画面の切り替えが面倒かもしれません。
ターミナルに慣れたいけどgitはまだこわい初心者の人にはおすすめかな?
ちなみに、開発中にリモートのmasterがどんどん更新されていったときにその変更分を自分が作業しているbranchに取り込みたいと思った時は、手順の2と3を行えば取り込めます。

GitHub Desktopとは

簡単にgitの基本操作を行えるツールです。
コードを変更した時に差分が簡単に見られたり、コードは元にもどさないまま1個前のcommitを簡単に取り消せたりするので便利です。
基本的な使い方はGitHub Desktopの使い方 - Qiitaが参考になります。

conflictの解消方法

1 gitHubでconflictしてるよ!と言われる

pushしてpull requestをだすとconflictしてるよといわれます。
conflict

2 localのmasterを更新

自分のbranchでcommitしていない変更があればしておきます。
そしてmaster branchに移動をします。
以下の$マークはターミナルでコマンドを打ったことを明示するためにつけているだけなので実際には打ちません。

$ git checkout master

そしてリモートから最新のmasterの情報を自分のmaster branchにもってきます。

$ git pull origin master

これでlocalのmaster branchが最新の状態になりました。

3 master branchの変更分をとりこもうとする

conflictしているbranchに移動をします。
そしてGitHub Desktopをみると左上のUpdate from masterボタンが押せるようになっているので押すと下のような画面になります。
conflictしていなければ、ボタンを押すことでmasterの変更分が取り込まれるcommitが問題なく生成されます。
GitHub Desktop1

4 conflict内容を確認し、変更

先ほどの画面が出たあとEditorを開くとconflictした部分が以下のように書き変わっています。

.container {
<<<<<<< HEAD
  width: 30%;
||||||| merged common ancestors
  width: 60%;
=======
  width: 90%;
>>>>>>> master
  margin: 0 auto;
}

これはどういうことかというと、

.container {

/// conflictしたbranchの変更分 ///
<<<<<<< HEAD
  width: 30%;

/// おおもとのコード ///
||||||| merged common ancestors
  width: 60%;

/// リモートの変更分 ///
=======
  width: 90%;
>>>>>>> master

  margin: 0 auto;
}

ということです。

これを見比べて、残しておくコードを決め、変更してcommitします。
今回は以下のようにコードを残しておくことにしました。

.container {
  width: 30%;
  margin: 0 auto;
}

5 commitする

最後にGitHub Desktopに戻ってcommitをします。

GitHub Desktop2
すると、masterの変更分が取り込まれてconflictが解消できます!

まとめ

これはconflict解消法の1例です。
慣れてきたらさらに早く解消できる方法を探してみてください。

東京理科大学 Advent Calendar 2016の19日目の記事でした。

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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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