スタッフブログ

STAFF BLOG

アプリ開発日誌

2022.04.05

Gitって何?

みなさん、開発作業でのソースコード管理では何のシステムを利用していますか?
最近はGitが主流のようです。EDAでもGitでソース管理をしています。
色々と便利なGitですが、Gitのことをどれくらい理解し、活用できているのか…。

言語化してみて理解を深めたいと思います!
※この記事はGit初心者の方向けです。

そもそもGitって何だ?

Gitは分散型バージョン管理システムのひとつです。図にするとこんな感じ。

分散型:複数のコンピュータなどに分散して機能を持たせること

スクリーンショット 2022-04-01 16.32.01

AさんとBさんが、サーバ上にあるリモートリポジトリからソースをローカルに持ってきて、それぞれ作業することができます。
ローカルで作業することによって、作業がバッティングすることを防ぐことができます。

バージョン管理:変更履歴を記録・追跡する管理方法

スクリーンショット 2022-04-01 16.31.51

「いつ・どこで・誰が・何を・どのように」作業したかを管理する方法です。
ファイルを上書きしてしまっても、上書き前に戻すことが可能です。
バージョン管理でいうと、Gitの他に、Subversion、CVSなどが代表的なシステムとなります。

Gitは「分散型かつバージョン管理を行える」システムです。

Gitでできること

とっても便利!Gitでできることをまとめました。

チームで共有できる

game_issenose
ネットワークを経由して、1箇所に置いてあるリモートリポジトリを共有することが可能です。
個人で修正した内容を統合し、再度チームに共有することもできちゃいます。

色々な種類のファイルを管理できる

thumbnail_file_icon_text
Gitで管理できるものはソースコードだけではありません。
Excelファイルやtxtファイル、バイナリファイルなど何でもあげることができ、更新履歴も管理できます。「更新前の情報が知りたい!」ということが、テキストファイルでもあるので、更新履歴を共有できるのは便利ですよね!

過去のバージョンに戻すことができる

time_machine
開発作業をしていると、対応した箇所を過去の作業に戻したいな、ということがよくあります。
そんな時でも簡単に過去のバージョンに戻すことができます。

Git用語集

よく使ったり、知っておいた方が良いGitの用語集です。

リポジトリ

ファイル(ソースなど)やファイルの変更履歴を保存する場所を「リポジトリ」と呼びます。
サーバに置いてある「リポジトリ」は「リモートリポジトリ」となります。
開発者はローカルに「リポジトリ」を持ちます。普段は「ローカルリポジトリ」で作業をし、好きなタイミングで「リモートリポジトリ」に反映することが可能です。

「リモートリポジトリ」の内容をローカルに持ってくることで、他の開発者に影響を与えずに作業ができるようになります。

ブランチ

1つのプロジェクトから編集履歴を分岐させて記録していく機能のことです。
ブランチを分けて作業することにより、プロジェクト本体に影響を与えないようにします。
並行して複数人が作業することも可能となります。

ワークツリー

作業中のディレクトリのことです。

インデックス

作業中のワークツリーとリモートリポジトリの間にある中間領域です。
リモートリポジトリにコミットする準備を行う場所のことです。
インデックスにてリモートリポジトリに更新する必要があるファイルの選択や、保存内容の確認を行うことができます。
リモートリポジトリには必要な変更だけ保存することができるということです。

クローン

リモートリポジトリを自分のローカル環境に保存する機能です。

コミット

作業内容をローカルリポジトリに保存する機能です。
コミットすることで追加変更日時・追加変更内容が保存されます。

プッシュ

ローカルリポジトリにあるファイルをリモートリポジトリに送信して保存する機能です。
開発後はリモートリポジトリに保存して反映させましょう!

マージ

複数のブランチを一つにまとめる機能です。
基本的にメインになるブランチがあり、そこに作業者がそれぞれ作業した内容をマージして行きます。各自が修正した内容を一つのブランチに反映させる作業です。

フェッチ

リモートリポジトリの内容をダウンロードする機能です。
リモートリポジトリの最新情報を知りたい場合などに使用します。
ダウンロードするだけなので、ダウンロードした情報はローカルブランチに反映されません。

プル

リモートリポジトリの内容をダウンロードし、ローカルリポジトリに反映させる機能です。
フェッチ(リモートリポジトリの最新の情報をダウンロード)とマージ(ダウンロードした情報をローカルリポジトリに反映)を同時に行います。

プルリクエスト

ローカルリポジトリでの変更内容を他の開発者にお知らせし、マージを依頼する機能です。

プルリクエストを行うと以下を行うことができるようになります。
・変更内容の通知・反映依頼(プルリクエストを行なった開発者)
・ソースコードのレビュー(プルリクエストを受けた開発者)
・メインブランチへの反映(プルリクエストを受けた開発者)

ソースコードのレビューでは、ソースに誤りがある場合などは差し戻しも可能です。
コメント機能があるため、ソースコードに関するコミュニケーションを取ることができます。

まとめ

そんなこんなでGitの説明をしましたが、いかがでしたか?
個人開発はともかく、チームで作業を行う場合、必ず出てくる様々な問題をうま〜くカバーして管理してくれるのがGitです。
勿論、全てをカバーすることは難しいので、コミュニケーションを取りながら楽しく開発していきたいですね★

「楽しく開発してみたい!」と言う方はぜひ弊社の求人ページからご応募ください!
一緒にお仕事ができる日を楽しみにしています!

BACK

お問合せ

イーディーエーに興味をお持ちいただいて
ありがとうございます!
スマホアプリに関するご相談、
お見積りや弊社へのご質問など、
お気軽にお問い合わせください。
担当者より折り返しご連絡させていただきます。

    お名前必須
    会社名
    メールアドレス必須
    電話番号必須
    お問合わせ種別必須
    お問合わせ内容必須

    アンケートにご協力ください。
    弊社サイトへはどのようにしてアクセスされましたか?

    個人情報のお取扱いに関する同意事項

    1.事業者の氏名又は名称

    株式会社イーディーエー

    2.個人情報保護管理者の氏名又は職名、所属及び連絡先

    個人情報保護管理者 小宮 保人
    Mail:[email protected]

    3.取得した個人情報の利用目的

    当フォームで取得した個人情報は、お問い合わせに関する回答のために利用し、目的外利用はいたしません。

    4.弊社が取得した個人情報の第三者への委託、提供について

    弊社は、ご本人に関する情報をご本人の同意なしに第三者に委託または提供することはありません。

    5.個人情報保護のための安全管理

    弊社は、ご本人の個人情報を保護するための規程類を定め、従業者全員に周知・徹底と啓発・教育を図るとともに、その遵守状況の監査を定期的に実施いたします。
    また、ご本人の個人情報を保護するために必要な安全管理措置の維持・向上に努めてまいります。

    6.個人情報の開示・訂正・利用停止等の手続

    ご本人が、弊社が保有するご自身の個人情報の、利用目的の通知、開示、内容の訂正、追加又は削除、利用の停止、消去及び第三者への提供の停止を求める場合には、下記に連絡を頂くことで、対応致します。

    株式会社イーディーエー 個人情報お問合せ窓口
    〒106-0032 東京都港区六本木7丁目14番23 ラウンドクロス六本木4F
    TEL:03-5422-7524 FAX:03-5422-7534
    Mail:[email protected]

    7.ご提供いただく情報の任意性

    個人情報のご提供は任意ですが、同意を頂けない場合には、第3項にあります利用目的が達成できない事をご了承いただくこととなります。

    8.弊社Webサイトの運営について

    弊社サイトでは、ご本人が弊社Webサイトを再度訪問されたときなどに、より便利に閲覧して頂けるよう「クッキー(Cookie)」という技術を使用することがあります。これは、ご本人のコンピュータが弊社Webサイトのどのページに訪れたかを記録しますが、ご本人が弊社Webサイトにおいてご自身の個人情報を入力されない限りご本人ご自身を特定、識別することはできません。
    クッキーの使用を希望されない場合は、ご本人のブラウザの設定を変更することにより、クッキーの使用を拒否することができます。その場合、一部または全部のサービスがご利用できなくなることがあります。