LoginSignup
0
0

More than 3 years have passed since last update.

Gitを学ぶ 1日目 Gitとは

Last updated at Posted at 2021-03-25

はじめに

 この記事は現代のソフトウェア開発では欠かせない技術となっているGitについて、記事の著者が学習した内容をアウトプットするためのものである。したがって、この記事に書かれた内容は必ずしも正しいとは限らない。
 もし、間違っていることを書いていたり、誤解していることなどが見受けられたら、是非コメント等にて教えていただけるとありがたい。また、著者は「いちばんやさしいGit&Githubの教本」を用いて学習を行っている。本記事にて興味が湧いた方はぜひご購入いただきたい。

Gitとは

 GitとはLinuxカーネルのソースコード管理システムとして、2005年に誕生したバージョン管理システムである。特徴としては、次々と発生するファイルの変更をバージョンとして記録し、記録した地点へいつでも戻れる仕組みがあることである。

コミットとは

 ユーザが記録を保存する操作を「コミット」するという。また、その記録自体もコミットと呼ぶ。これは、ファイルの状態に加え、コミットを行ったユーザの情報やコミットを行った時刻なども記録される。

リポジトリとは

 コミットを貯めていく作業スペースを「リポジトリ」と呼ぶ。すでにGitで管理されているプロジェクトに参加する場合はリポジトリをクローン(ローカルにコピーする)して使う。新規でプロジェクトを立ち上げる場合は、リポジトリも新しく作成する。
 リポジトリにはローカルリポジトリとリモートリポジトリがある。

  • ローカルリポジトリ -> 手元のパソコンで作成する自分専用
  • リモートリポジトリ -> ネット上の複数人で共有するリポジトリ

 自分の作業はローカルリポジトリで行い、ある程度作業を進めたらリモートリポジトリにそれを反映させる。別の作業を行っている人は、その内容をまた自分のローカルリポジトリに取得して作業を続けていく。

ワークツリー

 ワークツリーはワーキングツリー、作業ディレクトリとも呼ばれ、編集の開始地点となる。ワークツリーにあるファイルは最後にコミットした状態から手が加わっていない(unmodified)状態にある。そこから何らかの編集を行うと、ファイルは変更済み(modified)状態となる。新規ファイルを作成した場合、そのファイルの状態は未追跡(untracked)状態となる。

ステージングエリア

 ワークツリーでコミットしたい内容を一度ステージングエリアに登録する。これによってmodified状態のファイルが、staged状態に変化する。ステージングエリアはインデックスとも呼ばれることがある。

Gitディレクトリ

 Gitディレクトリはコミットを格納する場所である。コミットを行うと、ステージングエリアに追加したファイルが、それ以降変更の入らないデータとしてGitディレクトリへ格納される。コミットによって、ファイルの状態は再びunmodified状態になる。

ローカルリポジトリの操作

よく使うコマンドを以下に示す。

  • ローカルリポジトリを作成する。
ローカルリポジトリの作成
$ git init
  • 指定したファイルをステージングエリアに登録する。
ステージングエリアに登録
$ git add FilePath
  • コミットを作成する。
  • -mオプションをつけることで、コミットメッセージを書ける。
コミットを作成
$ git commit
-mオプション
$ git commit -m "コミットメッセージ"
  • リポジトリの状態を確認する。
リポジトリの状態を確認
$ git status
  • ファイルの差分を確認する。
  • オプション無しの場合は、ワークツリーとステージングエリアの差分を表示する。
  • --cachedオプションをつけると、ステージングエリアとGitディレクトリの差分を表示する。
ファイルの差分を確認
$ git diff
  • コミット履歴を確認する。
コミット履歴を確認
$ git log

今回の記事はこれにて終了とする。

次回の記事
Gitを学ぶ 2日目 Gitコマンドの続き

参考文献

[1] "Git". Wikipedia. https://ja.wikipedia.org/wiki/Git, (参照 2021-03-25)

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