Gitkrakenの使い方
Gitkrakenを使用していてつまずいたことなどのぼやき記事
Pull とMargeを混同して考えていた件
以下ではpullとmargeを混同していた為、pullに迷走した自分がpullではなくmargeをするという考えが大切だったと気づくまでの軌跡です。
以下記事
pullとpushの注意点
pullか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ブランチへ移動する。
そうすると自分のローカルにリモートからブランチをpull出来る。
つまり
pullはあくまでもリモートブランチをローカルに持ってくるだけなんだと気づく
ここで前述のpullの定義をもう一度
pullとは別のリモートリポジトリの内容をローカルに持ってくること
pullって持ってくるだけなんだ!ということね。
meブランチにyouブランチを持ってくることはpullではなくmargeだと気づく
私はpullにmargeを求めていたのだ。。
じゃあGitkrakenでmargeってどうやるねん。
Gitkrakenでmargeする方法
プルリクエストを出す。
これはGitkrakenからやってもGithubからやっても良い
①基本のmasterにプルリクエストするパターン
上記の画面ではtoshiブランチの内容をmasterブランチに追加するように
プルリクエストをしている。
画面では既に存在しているmasterのファイルの内容とtoshiブランチの同名ファイルの記述が異なっている為、コンフリクトになるよとコンフリクトが起きていることがわかる。
Titleを入力するとCreate Pull Requestが実行できるのでリクエストを送って、Githabでコンフリクトの解消を行いマージをする。
②ブランチからブランチにマージするパターン(これが本記事の最初に私がやりたかった[me]ブランチに[you]ブランチの内容を持ってきて合体させる方法
上記の画像ではkkkブランチの内容をtoshiブランチへマージする(合体)させるといったPull Requestを作成している。
この画像では①の時のようにコンフリクトの表示がない為、プルリクエストを作成後、Githab上ですぐにマージができる(コンフリクトがあると、その解消を実施後マージとなる)。
2020/7/4時点での疑問は以上
今回のことでpullとmargeの違いを少し理解できたように思う。