📃

gitとは

2025/03/09に公開

はじめに

私は会社に入社してから初めて Git というものに出会った。
大学ではプログラミングの授業があったり、卒業研究でコードを書く機会があったが、
「ソースコードを管理する」という意識はなく、Git を使うこともなかった。

そのため、入社して初めて Git に触れたとき、
「これは何のためのツールなのか?」
「どのようなメリットがあるのか?」
といったことを理解しないまま、とりあえず使っていた。

しかし、実際に業務で使っていくうちに、Git の便利さや必要性を実感するようになった。
そこで、これから Git を使い始める人に向けて、Git とは何か、どのように役立つのか を簡単にまとめた記事を書こうと思もう。

Git とは

Git(ギット)は、プログラムの変更履歴を記録し、管理できるツール。
たとえば、ドキュメント作成で「修正前のバージョンに戻したい」と思った時、
Git を使えば、過去の状態に戻したり、変更の履歴を追ったりすることが簡単に可能となる。

Git の特徴

  • 履歴管理ができる
    変更内容を記録し、過去の状態に戻せる

  • 複数人で開発できる
    チームでの共同作業がスムーズになる

  • 無料で使える
    オープンソースで誰でも利用可能

Git の基本用語

以下に開発でよく使う基本的な用語をまとめた。

  • ブランチ(branch)
    メインの開発ラインとは別に新しい変更を試すための分岐。
    ブランチを使うことで、他の作業に影響を与えずに新しい機能を開発したり、バグを修正したりすることが可能になる。
    これにより、複数の開発者が同時に異なる機能等を実装できたりする。

  • リポジトリ(repository)
    ファイルやフォルダの履歴を管理するための場所。
    この中にソースとか Git で管理してるものが存在する。

    リモートリポジトリ:GitHub や GitBucket などのオンライン上にあるリポジトリ
     ローカルリポジトリ:自分の PC 内にあるリポジトリ。

  • クローン(clone)
    リモートリポジトリを自分の PC にコピーする。

  • コミット(commit)
    ローカルリポジトリに変更内容を保存すること。
    ファイルを修正した後、コミットすることで、その変更が履歴として記録される。

  • プッシュ(push)
    ローカルリポジトリの変更をリモートリポジトリ(GitHub など)に送信する操作。

  • 衝突(conflict)
    複数の開発者が同じファイルを異なるブランチで編集した場合、変更を統合する際に競合が発生すること。

  • プルリクエスト(pull request)
    他の開発者に変更をレビューしてもらい、リポジトリに統合するための仕組み

  • マージ(merge)
    異なるブランチの変更を統合する操作。

  • フェッチ(fetch)
    リモートリポジトリの最新の変更をローカルに取得する操作。
    ただし、この時点ではローカルの作業ツリーには影響しない。

  • プル(pull)
    フェッチとマージ(変更の統合)を同時に行う操作。
    リモートの変更をローカルに取り込むときに使う。

Git の仕組み

Git の基本的な仕組みを理解すると、上記の用語への理解が高まると思うので以下に記載する。

  • リモートリポジトリとローカルリポジトリ
     git をクローンすると、リモートリポジトリの内容をローカル PC にコピーして
     ローカルリポジトリが作成される。

  • ファイルの変更とコミット
     ソースコードを編集したら、その変更を記録するためにコミットで履歴に登録する(ローカルリポジトリに変更が登録される)。

  • リモートリポジトリへのプッシュ
     プッシュを使って、ローカルの変更をリモートリポジトリに送信する。
     送信されれば他の開発者と共有が可能になる。

  • リモートの変更を取得
     他の開発者が変更を加えた場合、フッチプルを使ってローカルリポジトリを
     最新の状態に更新できる。

git-flow

チーム開発でのブランチ管理を体系化したワークフロー。
開発の流れを明確にし、効率よくコードを管理するための手法。
それぞれのブランチには、以下の役割が存在する。

  • main(メインブランチ)
    本番環境にデプロイされるコードを管理
  • develop(開発ブランチ)
    開発中のコードを統合
  • feature(機能ブランチ)
    新しい機能を開発
  • release(リリースブランチ)
    本番環境にリリースする準備
  • hotfix(ホットフィックス)
    緊急のバグ修正

Git 操作が簡単にできるクライアントツール

たくさんあるが、主に会社でよく使うツールを挙げていく。

  • GitBucket
    GitHub ライクな機能を持つオープンソースの Git リポジトリ管理ツール。
    プルリクやレビュー等々 GitHub でできるようなことは大体できる。

  • SourceTree(ソースツリー)
    Git の操作を簡単に行える GUI(グラフィカルユーザーインターフェース)ツール。
    ターミナルでコマンドを入力することなく、視覚的に Git の操作を行うことが可能。

  • GitHub
    Git の仕組みをオンラインで使えるサービス。
    自分の作成したコードをクラウド上に保存し、どこからでもアクセスできるようになる。
    また、GitHub Actions(ギットハブ アクションズ)と呼ばれる、GitHub 上で自動的にコードのテストやデプロイを行うためのツールも存在する。

GitHubで編集を提案

Discussion