はじめに
株式会社パレットリンクの@takemiuです。
私はIT系の専門学校を卒業し、新卒でエンジニアとして入社しました。
チーム開発の経験はなく、個人開発も一度経験した程度だったため、入社後の研修では初めて経験することがたくさんありました。
その中でも、私が最後までなかなか理解できなかったのが GitHub です。
「Push?Pull?Merge?何をすればいいの?」
という状態で、チーム開発では何度も周りの人に助けてもらいました。
今思えば初歩的なことかもしれませんが、当時の私にとってGitHubはとても難しいものでした。研修後、実際の開発でGitHubを使い続ける中で、少しずつその意味や使い方が分かるようになりました。
この記事では、そんな私が実際に使ってみて分かった Branch・Push・Pull・Merge について、自分なりの覚え方も交えてまとめます。
Branchとは?
PushやPull、Mergeが分からなかったのはもちろん、そもそも「Branch(ブランチ)」という言葉もよく分かっていませんでした。
研修中は何度もmainブランチで作業してしまい、「mainで作業したらダメ」と言われても、
「なんで?」
という状態でした。
今では、Branchは 作業する場所を分けるためのもの だと考えています。
mainブランチをみんなが使う共有の場所だとすると、自分が作業するときは自分用のBranchを作り、そこで作業します。
そうすることで、作業途中の変更がそのままmainに入ってしまうことを防げます。
Push・Pull・Mergeとは?
研修中は、Push・Pull・Mergeの違いがなかなか覚えられませんでした。
しかし、研修が終わってから社内の既存アプリを改修する中で、実際にGitHubを使う機会が増えました。何度も自分でBranchを作り、変更して、Pushして、Pullして……と繰り返しているうちに、少しずつそれぞれの役割が分かるようになりました。
今では、自分なりに次のような流れで覚えています。
- 自分の作業場所(Branch)を作る
- 自分のBranchでファイルを編集する
- GitHubに自分の変更を出す(Push)
- 「この変更を入れていいですか?」と確認する(Pull Request)
- 「いいよ!」となったら取り込む(Merge)
- GitHubの最新状態を自分の作業場所に取り込む(Pull)
言葉だけで覚えようとすると分かりにくかったのですが、実際に何をしているのかをイメージするようになってから覚えやすくなりました。
自分の中では、次のようなイメージです。
- Branch = 自分の作業場所を作る
- Push = 自分の変更をGitHubに出す
- Pull Request = 「これ入れていい?」と確認する
- Merge = 変更を取り込む
- Pull = 最新の変更を自分のPCに持ってくる
実際に使ってみて分かったこと
GitHubのPush・Pull・Mergeなどは、知っている人からすると初歩的なことかもしれません。
でも、当時の私にとってはかなり難しいものでした。
研修中は「ここを押せばいい」と教えてもらえば操作はできても、
「なぜこの操作をするのか」
までは理解できていませんでした。
研修後、社内の開発で実際にGitHubを使うようになり、何度も操作する中で、少しずつそれぞれの意味が分かるようになりました。
そこで、ただ操作方法を覚えるのではなく、
「今、自分は何をしていて、変更がどこからどこへ移っているのか」
を考えるようにしました。
すると、PushやPull、Mergeがバラバラの操作ではなく、一つの流れとしてつながって見えるようになりました。
最初は本当に分からなかったからこそ、自分の言葉で説明できるくらいまで理解することができ、大きな成長を感じました。
まとめ
GitHubは、私にとって最初はとても難しいものでした。
今思えば初歩的な内容かもしれませんが、分からない状態でチーム開発をすることは想像以上に大変でした。
実際に使いながら「今何をしているのか」を考えることで、少しずつ理解できるようになりました。
この記事が、私と同じように
「Push?Pull?何が違うの?」
となっている人の参考になれば嬉しいです。
パレットリンクでは、日々のつながりや学びを大切にしながら、さまざまなお役立ち記事をお届けしています。よろしければ、ぜひ「Organization」のページもご覧ください。
また、私たちと一緒に未来をつくっていく仲間も募集中です。ご興味をお持ちの方は、ぜひお気軽にお問い合わせください。一緒に新しいご縁が生まれることを楽しみにしています。