見出し画像

初めてのGitの学び方(Git入門)

2020/11/24 更新しました!

こんな人向けの記事です

Git教材で学習しても、実践的なイメージが沸かない人
いまいちピンとこない人
教材を進めやすくするお役に立てれば幸いです・・
※詳しい操作方法はここでは解説していません。

Gitって何?

Gitは分散型のバージョン管理システム。
単に、ファイルなどを更新した時に、その履歴を残すってこと。
細かくバックアップを残せる
分散型とは、各個人のローカル環境の中にそれぞれのgit環境が作られる。

画像4

例)AAA Cafeというサイトがあり、その改修案件を受注したと仮定して読み進めてみてください。

リモートリポジトリとローカルリポジトリ

「リポジトリ」とは
保管場所とかの理解で良いと思います。
▼リモートリポジトリ

AAA Cafaの最新ファイルの状態が管理されている。
みんなで共有するリポジトリ(保管場所)。
▼ローカルリポジトリ
自分のPC内で管理する個人のリポジトリ(保管場所)。

ここからは、実際の仕事上の流れを説明していきます!

①-1クローンする

最新の案件のファイルが格納されているリモートリポジトリを自分のローカルリポジトリにコピーしてくること
例)初めてその案件を行う時などはこちら
自分のPCに作業環境を整えるための作業

最新のAAA Cafeのファイルが欲しいから。
また、自分の作業環境を整えるのに必要だから。という理解でOK。
これを手元(ローカルリポジトリ)にDLしてから、編集作業を進める。
※GitHubというところからクローンする(後述)。

①-2フェッチしてプルする

リモートリポジトリをフェッチしてプルする
→例)以前にもこの案件の作業経験があり、以前クローンしたリポジトリが手元にある場合はこちら
自分のPC内にあるAAA Cafeのリポジトリを最新の状態にするための作業★

ローカル内(手元)にある案件のリポジトリは、DLしたモノなので、勝手に最新状態にはならない。
そのため、リモートにある最新の状態を「フェッチ」(確認して)「プル」(DL)をする事で、自分のローカル環境を最新の状態にできる。

フェッチ:リモートリポジトリの最新の内容を確認すること。
プル:リモートリポジトリの最新の内容を自分のローカルにDLする事。
※フェッチとプルは基本的にセットで行う。
※ブランチを切る前と、作業中も必要な時に定期的に行う作業。
※常に手元にある案件のリポジトリをリモート環境と同じ状態にしておく意識をつけると良い。

【ここまでのおさらい】

1、Gitとは、作業履歴を残すために使う道具(ツール)
2、みんなの作業履歴が格納された箱(リモートリポジトリ)と、個人の作業履歴を格納する箱(ローカルリポジトリ)がある
3、案件を始めるときは、自分の作業環境を最新にする必要がある(下記参考)
例えば・・・
▼AAA CafeのGitの状況(作業履歴)

あなた:作業期間 2019/08〜10
作業者Aさん:作業期間 2019/11〜12
作業者Bさん:作業期間 2020/3〜6
作業者Cさん:作業期間 2020/7〜9
あなた:作業期間 今現在からスタート
→今から作業を行うあなたのPC内の状態は、2019/10の状態のままで最新ではないため、「フェッチ」(確認して)「プル」(DL)をする事で、自分のローカル環境を最新の状態(作業者Cさんの行った作業履歴までを自分のPCに取り込む)にできる。
→2019/08〜10にあなたが作業していなく、今回初めての案件だった場合は、案件のリポジトリをクローン(コピー)する事で、作業者Cさんの行った作業履歴までを自分のPCに取り込む事ができる。

②作業ブランチを作成

自分専用の作業場を作ること。
「作業ブランチを切る」という言い方をしたりする。
master(もしくはdevelop)というリモート環境(最新のファイルが格納されている)を「親」として、自分の作業ブランチ(作業場)「子」を作る事。

※チーム開発を行う時は、チームリーダーのブランチ(作業場)を「親」として、自分のブランチ(作業場)「子」を作る事もある。
※作業ブランチの作成ルールや運用ルールは、会社により異なるので都度要確認。

画像3

③ファイルを編集する(コーディング)

→通常通り、コーディング作業を行う。

④コミットする

コーディングした内容をバックアップとしてGitに残す作業。
キリがいい時など、好きな時に残せる。

コミット
:自分のローカルの中だけで、履歴を保存する事。
※コミットする際は、コメントを残せる。コメントの内容は、作業内容を書いたりする。例)「PC TOPのナビ作成」や「スムーススクロールの修正」など。
※間違えてコミットしてもすぐに戻せる。

⑤プッシュする

プッシュ:リモートに保存する事。
※プッシュしたら元に戻さないのが前提と考えるので、間違いないか確認してからプッシュする方が良い。(元に戻せるけど少し面倒)
※この時点では、「親」であるmaster(もしくはdevelop)にはまだ記録されていない状態。(詳しくは⑦で説明)
リモートリポジトリに、「保存」をしたけど「公開」はしてないというイメージで良いかと(厳密には違うのですが・・ひとまずOK!)
※ここでリモートの意味は少しややこしいので、深く考えなくてOK。

⑥プルリク作成

全てのコーディング作業が完了して、作業内容をGitに上げたら(プッシュしたら)、プルリクを作成する。(プルリクエスト)
自分の作業した範囲はこうですよというまとめを作ること。
これを作ることで、コードレビューをしてもらえたり、マージしてもらう事ができる。
※プルリクは、Gitの機能ではなく、GitHubの機能(後述)
※プルリク作成タイミングは、会社によって様々なので都度要確認

⑦マージする

自分の行った作業を、最初にクローンした先(master、もしくはdevelop)のリモートリポジトリと同期する事。
こうする事で、自分の作業した履歴が、リモートリポジトリ(master、もしくはdevelop)に追加され、最新状態になる
※他にも作業者がいた場合、その作業者が「プル」をすると、この最新の状態がその作業者のローカルにDLされる
※プッシュは、自分の作業履歴をリモート環境に上げただけで、同期はマージしないと行われない。
※マージは、会社によって自分で行う場合や責任者が行う場合があるため、都度要確認。
※ほとんどの場合、master、もしくはdevelopへマージする前に責任者のレビューが入り、承認が降りてからマージとなる場合が多い。

【ここまでのおさらい】

1、master(もしくはdevelop)は案件の最新の履歴が格納されている箱
2、master(もしくはdevelop)が「親」、自分の作業ブランチが「子」
3、コーディング期間中の作業内容は、自分の作業ブランチに保存(コミット+プッシュ)する
4、コーディングが全て完了したら、作業内容を「親」に格納(マージ)する(ほとんどの場合、マージ前に責任者のレビューが入る)
5、マージするために必要な作業がプルリク作成(責任者にレビューをお願いする際にプルリクのURLを共有する)

GitHubとは

サービスの名前
公開されている自分や他者のソースコードを閲覧する事ができる
作業済みのファイルが格納されたフォルダみたいなもの
リモートリポジトリをクローンする際は、GitHub上で行う
プルリクのマージもこのGitHub上で行える
登録してアカウント取得すると、自分のリポジトリを作る事ができる
アカウント取得はこちら> https://github.co.jp/

画像2

SourceTreeとは

Git管理をターミナルでのコマンド操作ではなく、ツール上で行えて便利!
視覚的に操作できるので、操作が簡単で、制作現場でも利用されているツール Gitを使うならこちらをDLする事をおすすめします。(←個人的な意見)
企業でもSourceTreeを使って開発してるところもある。うちもそう。
DLはこちら> https://www.sourcetreeapp.com/

画像1

最後に

ここまで書いたことは、基本的なことのみで、全てではありません。
頻繁に使う機能(流れ)のみを紹介しています。

会社によって運用ルールが結構違います。操作自体は簡単なのですが、チームで共同作業をしたり、運用ルールがややこしい会社(制作会社や大企業だとややこしいのかも)だと、Git恐怖症になってしまう方も沢山います。私もそうでした・・。

そうならないための1番の方法は、少しでも操作に迷ったら、先輩や上司に確認することです。何度も聞いて申し訳ないという気持ちになったりしますが、間違えて面倒な状況になるより何倍もマシで最善策です!
理解できるまで何度も確認しましょう。嫌な顔されても気にせずに・・

あとは自分の個人のPCでGitの環境を作って色々好きに触ってみることで大きく理解が深まります。会社ではNGな操作も自分のPCでやってエラーを起こしてみて自分で解決してみたり・・

ここまで読んで下さった皆さんなら以下の「サル先生のGit入門」の内容がだいぶ理解できる様になっていると思います。
読み終わったら、GitHubのアカウントを作成して、SourceTreeをDLして、何でも良いので画像やファイルをGitにアップしてマージまでしてみてください。

頑張ってください!心から応援しています■\(^ ^)/■
▼サル先生のGit入門(画像をクリック)

画像5



この記事が気に入ったらサポートをしてみませんか?