Gitの基礎を理解しよう

  • ブックマーク
  • -
    コピー

 Gitという言葉は、愚かで不快な人を意味するイギリス英語のスラングに由来しています。

大将

今日話したいのはそんなことじゃない!

 Gitを全く使ったことがない人は、この記事をきっかけに今日から使っていきましょう。
 しかし、Gitって初心者にとっては超難しい概念ですよね。私も1年くらい前からつかいはじめましたが、正直最初はなんのために使うのかよくわかりませんでした。

 友人とアプリを作ろうという話になり、起業して受託開発をするようになったときに初めてGit、そしてGithhubを使い始めました。

大将

最初は見様見真似で、なんか使えたらかっこいいよねくらいでした。

 SUNABACOプログラミングスクールでもGit、Githubについても学びますが、ここが一番つまずいている……

大将

おれですらめちゃつまずいたんで、友人にお金払って家庭教師してもらったことがありましたw

 ということで、この特定の記事では、Gitとは何か、なぜGitが必要なのかを説明するから、感謝しなさい!!

Git上級者向けの記事▼

あなたがまだ知らないGitの3つの便利なコマンド

Gitとはなにか

 Gitは、オープンソースの分散バージョン管理システムです。

大将

意味わからないですね。

 Gitの目的は、さまざまなユーザーからの操作によって時間の経過とともに変化するプロジェクトとファイルを追跡することです。

大将

意味わからないですね。

 Gitは、プロジェクトの進行状況に関する情報をリポジトリに保存します。リポジトリには、プロジェクトへのコミット、またはヘッドと呼ばれるコミットへの一連の参照があります。この情報はすべて、プロジェクトと同じフォルダーの.gitというサブフォルダーに保存され、ほとんどのシステムでは、デフォルトでほとんど非表示になっています。

大将

この説明でなに言ってるかわかっている人は理解していると思って大丈夫です。

 Gitは、1つのプロジェクトで数人が行った変更を追跡し、さまざまな部分で作業したコードを1つのプロジェクトにマージします

 なぜこのようなことが必要なのでしょうか。

 このようにすると、誰かがバグが発生したときに、commitを実行することで、バグが発生しているコードを追跡できます。変更に問題がなければ、デフォルトでmaster(あるいはmain)と呼ばれるメインブランチに変更をcommitしていきます。

 次に、コードをGitHubまたはBitBucketにアップロードして、ユーザーがコードを表示、pull、またはpushできるようにします。

 複数人で作業していると、進捗が異なっていきますよね。Aさんはボタン機能をつけて、Bさんはチャット機能を作っていた場合、最終的にはそれらを統合する必要があります。また、バグが発生しているのかどうなのか、途中のところに戻りたいときとか、さまざまなケースが開発中には考えられます。そういったことを解決できるのがGitという感じです。

やってみるかあ

 Gitを使用するには、Gitをマシンにダウンロードする必要があります。 https://git-scm.com/にアクセスして、自分の環境に最も適合したバージョンをダウンロードしてください。
 Gitのインストール中に一つやっていただきたいのが、通常のコンソールウィンドウでもGitを実行することを選択してください! これにより、gitコマンドを使用してコマンドプロンプトでGitを実行できるようになります。
 インストールが完了したら、Git bashを開き、プロジェクトをテストして作業フォルダーを作成「mkdir」します。 作業フォルダに「cd」で移動したら、ファイルを作成し、そこに適当なコードを記載しましょう。 例えば、test.pyというファイルに、

print("hogehoge")

gitレポジトリの初期化

 すべての変更はリポジトリで追跡されるのですが、gitを使用するためにまず一番最初に行うことがあります。gitリポジトリの初期化です。作ったフォルダ内で、次のコマンドを実行してください。

git init

 そうすると非表示のgitフォルダーが作成されます。非表示なんで見えないんですが、macなら

ls -a

 で確認できると思います。

変更のコミット

 新しいコードを追加したり、ファイルに変更を加えたりしていったとき、この機能をいつ、誰が追加したかを追跡するには、インデックスに変更を追加する必要があります。新しい行を追加したら、まずインデックスに変更をaddします。これをステージングと呼びますが、インデックスは、コードの増分行をメインプロジェクトにまとめて追加する前に、どこまで進んだかを追跡するプラットフォームのようなものと考えてください。やり方は、

git add test.py

 あるいは、

git add .

 git add . は変更があったらファイルを全てステージングできます。複数のファイルを変更した場合はこちらで良いでしょう。

git status

 をすると、addできているかどうか確認できます。

 緑のフォントで書かれている場合、それらのファイルは正常にaddされたファイルです。一方で上の画像のように赤でマークされているものは、変更があったらがまだステージに追加されていないよ、ということになります。 なので、問題がないのであれば、addしてcommitしてください。

 変更をcommitするには、次のコマンドを使用します。

git commit -m "This is the initial commit"

 -m " "の部分は、””内に続くものがコミットメッセージに当たります。これは、将来の自分や他の開発者に、そのコミットで追加された内容をメモっておくような感じです。

大将

そのコミットで自分はなにをしたのかの見出し的な。

 例えば、git commit-m "Added login page"とした場合は、loginページを作りましたよ、みたいな。

ログを振り返る

 特定のプロジェクトに取り組んでから数か月が経ったとしましょう。Gitを使用してその進捗状況を追跡したい場合、git logというコマンドを使うとコミット履歴を表示し、履歴を確認できます。

Githubにアップロードする

 オンラインで他のメンバーもアクセスできるようにコードを共有するには、コードをGitHubまたはBitBucketにアップロードします。

大将

あ、Node JS開発者への注意なんですが、node_modulesフォルダーはアップロードしないでください。このフォルダは重いのと、package.jsonファイルに必要なパッケージが記載されているので、各々がnpm installやyarn addをしたほうがはるかに楽です。これにはgit ignoreというものが必要なのですが、こちらはまた今度でいいでしょう。

ちなみに、echo node_modules >> .gitignore

です。

 Githubのアカウントを作ったら、githubのページにいって、右上に、

 New repositoryというのがあるので、そちらをクリック!

 リポジトリに名前と説明を付けます。説明は、なんのプロジェクトなのかですね。なんのアプリなのかとか色々。後ほど変更できますので、硬くならずに。

 プロジェクトのホームディレクトリのすぐ下に表示される.READMEファイルを使用してプロジェクトを初期化することができます。.readmeファイルには、プロジェクト、プロジェクトの使用方法、進行状況、およびその他の情報に関する詳細を記入することができます。

 ローカルに今作ったリモートリポジトリをリンクさせるには、次のコマンドを実行してください。

git remote add origin https://github.com/自分のアカウント名/リポジトリの名前.git

コードをリポジトリにpushするには、次のコマンドを使用します。

git push -u origin master

 あるいは、

git push -u origin main

 masterかmainかは、自分の使っているブランチ名に合わせてください。

 ちなみに、ブランチを確認する方法は、

git branch

 です。

 これにより、アプリがマスターブランチあるいはメインブランチにpushされます。

 別のマシンからコードをpullするには、空のgitリポジトリを初期化(git init)してから、次のコマンドを使用してリポジトリをpullします。

git pull https://github.com/自分のアカウント名/リポジトリの名前.git

ブランチ

大将

ブランチも少し混乱する機能ですね。

 大規模なプロジェクトに取り組んでいて、実験的な機能を追加したいとします。それが機能するか、受け入れられるかわからない場合は、新しいブランチを作成してそのブランチで作業することにより、メインツリーから分岐することができます。

大将

というかブランチをきって作業をしていただきたいです。

 masterとかmainは基本的には最新のリリース状態にしておきたいです。それにもかかわらず、勝手に機能を追加した場合、バグがあってリリース状態のものが壊れたりしたら困るじゃないですか。だからブランチをきってそちらでテストと開発をしながら、問題がなければmasterやmainを更新していくという流れです。

 ブランチはいくつでも作成できます。ブランチを作成するには、次のコマンドを使用します。

git branch ブランチの名前

 プロジェクトにあるブランチのリストを表示するには、次のコマンドを使用します。

git branch --list

 緑でアスタリスクが付いているブランチは、現在作業中のブランチです。ブランチを切り替えたり、コード変更のさまざまなレイヤーをコミットしたり、履歴をログに記録したりできます。 ブランチを切り替えるには、次のコマンドを使用します。

git checkout 切り替えたいブランチ名

まとめ

 Gitに関するこの基本的な知識があれば、Gitを使用して、開発者のチームとコードを共有したり、変更を追跡したり、プロジェクトに変更をコミットしたり、寄稿者を承認したり、ブランチを使用して実験的な機能を作成したり、コードをmergeしたり、テンプレートのコードをpullしたりできます。これらは、開発者の日常生活で非常に役立つ機能です。

大将

まあぶっちゃけ慣れですね。

 わからないければいつでも質問をどうぞ!

 SUNABACOプログラミングスクールでもGit, Githubを教えています。

References

https://medium.com/@onejohi/git-understanding-the-basics-ba004a20dacc
  • ブックマーク
  • -
    コピー