Gitkrakenの使い方 

Gitkrakenを使用していてつまずいたことなどのぼやき記事

 

Pull とMargeを混同して考えていた件

以下ではpullとmargeを混同していた為、pullに迷走した自分がpullではなくmargeをするという考えが大切だったと気づくまでの軌跡です。

以下記事

 

f:id:kirikko_Scondcube:20200705003127p:plain

Gitkrakenのプロジェクト画面



pullとpushの注意点

pullかpushを初めてするときに以下の画面の注意文が出る。

f:id:kirikko_Scondcube:20200705003241p:plain

この画面でpull or push先を自分の使用しているブランチ(デフォルト)から変更可能みたい

 

危険なのはここでorign / デフォルト 

となっているものを別のブランチからpullしたいが為にデフォルト意外に変更してしまうこと。

そうすると以降pushする先がデフォルトの自分のブランチではなく、pullしてきた別のブランチになってしまう。

チーム開発などでメンバーのブランチからpullして自分のブランチでpushするつもりが、メンバーのブランチにpushするという危険が発生する。

 

→教訓

人のブランチをpullするのではなくクローンして進める。

そして別の人の作業内容と合体したい場合はプルリクエストを使う(後述)

 

 

Gitkrakenでのpullってそもそも何?という問題(疑問)

pullとは別のリモートリポジトリの内容をローカルに持ってくること

参考:https://zukulog098r.com/git/

 

であれば

pull先を指定し、自分の作業中のローカルブランチにpullすればブランチ[me]とブランチ[you]があったとして、[me]のなかに[you]を入れたければ[you]を指定しpullすれば解決すると仮説を建てられる。

 

しかし、、

 

Gitkrakenにはpull先を指定するコマンドが見当たらない!!!

上述の通り、一度push先pull先を変更すると変えられる方法がわからないから、デフォルトが無難、、

そしたらどうやってpullすればいいねん。

pullってもっとこう、簡単にpull先を指定→自分のローカルに落とせる(合体)出来る

と思ってたよ。

 

そこで気付きました。

Gitkrakenで他の作業ブランチをpullする方法が

 

Gitkrakenでのpullとは(解答)

REMOTEリポジトリに表示されているブランチをドラッグ&ドロップでLOCALブランチへ移動する。

f:id:kirikko_Scondcube:20200705005041p:plain

GitkrakenのREMOTEとLOCALの枠 ここでドラッグ&ドロップをする

そうすると自分のローカルにリモートからブランチをpull出来る。

 

つまり

pullはあくまでもリモートブランチをローカルに持ってくるだけなんだと気づく

 

ここで前述のpullの定義をもう一度

pullとは別のリモートリポジトリの内容をローカルに持ってくること

 

pullって持ってくるだけなんだ!ということね。

 

meブランチにyouブランチを持ってくることはpullではなくmargeだと気づく

私はpullにmargeを求めていたのだ。。

 

じゃあGitkrakenでmargeってどうやるねん。

 

 

Gitkrakenでmargeする方法

プルリクエストを出す。

これはGitkrakenからやってもGithubからやっても良い

 

①基本のmasterにプルリクエストするパターン

f:id:kirikko_Scondcube:20200705010232p:plain

Gitkraken上のPull Request画面

上記の画面ではtoshiブランチの内容をmasterブランチに追加するように

プルリクエストをしている。

画面では既に存在しているmasterのファイルの内容とtoshiブランチの同名ファイルの記述が異なっている為、コンフリクトになるよとコンフリクトが起きていることがわかる。

Titleを入力するとCreate Pull Requestが実行できるのでリクエストを送って、Githabでコンフリクトの解消を行いマージをする。

 

②ブランチからブランチにマージするパターン(これが本記事の最初に私がやりたかった[me]ブランチに[you]ブランチの内容を持ってきて合体させる方法

f:id:kirikko_Scondcube:20200705010827p:plain

ブランチからブランチへPull Requestをする内容を作成している画面

上記の画像ではkkkブランチの内容をtoshiブランチへマージする(合体)させるといったPull Requestを作成している。

この画像では①の時のようにコンフリクトの表示がない為、プルリクエストを作成後、Githab上ですぐにマージができる(コンフリクトがあると、その解消を実施後マージとなる)。

 

2020/7/4時点での疑問は以上

今回のことでpullとmargeの違いを少し理解できたように思う。