LoginSignup
0
0

More than 1 year has passed since last update.

Gitの概要

Last updated at Posted at 2021-06-18

はじめに

この記事は初学者の学習内容の記録用です。
記載内容に間違いがありましたら、ご指摘いただけると幸いです。

Gitとは

バージョン管理ツールの一つで
ソースコードのバージョン管理に使用される。

Gitの特徴

  • リモートとローカルでソースコードを管理する
    分散型バージョン管理システム(Distributed Version Control System)
  • ローカルでは更に「ワークツリー」「ステージ」「ローカルリポジトリ」に
    分かれてソースコードを管理する
  • スナップショットを取って変更したファイルをまるごと記録する(差分管理ではない)
  • コミット時に一つ前のバージョンを記録しているので過去にさかのぼっていける

Gitのメリット・デメリット

メリット

  • ブランチを素早く作れるので、複数人で同じファイルを編集している際でも
    並行して作業しやすい
  • ローカルにステージがあることで記録したい単位でファイルを管理しやすい
  • ローカルにリポジトリがあることでオフラインでもバージョン管理できる
  • Github Flowに沿って開発するとコードレビューを
    masterへのマージの都度できて品質向上につながる

デメリット

  • 機能がたくさんあり複雑である

Git基本用語

 用語    解説 
リポジトリ スナップショットを記録するデータの保管場所 
ステージ コミットする変更を準備する場所
ワークツリー ファイルの変更の作業場所 
コミット  ファイルの変更を確定し記録すること
ブランチ プロジェクトの履歴を分岐させたもの 
フェッチ  リモートリポジトリの内容をローカルリポジトリに取り込むこと
マージ  ブランチを統合すること
プル  ローカルで作業中のブランチにフェッチとマージを一度にすること
コンフリクト マージの際に変更したファイルの場所がかぶっていたときに起こる
プッシュ コミットした内容をリモートリポジトリに送ること
プルリクエスト プッシュした内容のレビューを依頼し、問題なければマージしてもらう

Gitで最初にやること

  1. Gitをインストール
  2. Githubアカウントを登録し、リモートリポジトリを作成
  3. .gitignoreファイルにGithubにアップロード・バージョン管理しないファイル
    (パスワード、外部リソース接続情報などの設定ファイル・キャッシュファイル)
    を定義する
    ※Githubでリポジトリの新規作成時に各言語・FWごとにテンプレートがあるので
    自動生成がおすすめ【GitHub】.gitignoreのテンプレートを言語・FWごとに自動生成
  4. ローカルでリモートリポジトリとの紐付けをする(git remote add)
  5. 管理対象フォルダ・プロジェクトを初期化する(git init)

Gitを使って個人的にバージョン管理するフロー

  1. ファイルをワークツリーで変更する
  2. 記録したいファイルをステージに登録してインデックスを作成する(git add)
  3. 記録を確定させたいインデックスをコミットする(git commit)
  4. 作業が一区切りついたらリモートにプッシュする(git push)

Gitを使ってチーム開発するフロー(Github Flow)

  1. masterブランチから作業用ブランチを作成
  2. 作業用ブランチでファイルを変更してコミット
    (上記:Gitを使って個人的にバージョン管理するフローと同じ)
  3. 作業用ブランチをGitHubへプッシュ
  4. プルリクエストを送ってコードレビューを依頼
  5. コードレビューでOKが出ればmasterブランチにマージ
  6. masterブランチをデプロイ
  • masterはリリース用ブランチです。
  • 開発する機能・修正などの作業の単位で別にブランチを作成して作業します。

参考・学習したサイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0