1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Git概要

Posted at

はじめに

はじめに、山浦清透氏の「Git: もう怖くないGit!チーム開発で必要なGitを完全マスター」というUdemyの講義を受けましたので、学習内容を整理したいと思います。
私は2年目のエンジニアですが、なんとなくGitを使っていましたが、再学習を兼ねて本講義を受講しました。分量もちょうど良いので、気になる方はぜひ受講してみてください。

Gitとは

そもそもGitとは、バージョン管理ツールです。バージョン管理とは、チームで1つのドキュメントを編集している時に、誰がどのような変更を加えたかを管理することを言います。

Gitには大きく2つの領域が存在します。
outline.png

① : ローカルリポジトリ
→自分のPC上に存在するリポジトリ

  • ワークツリー : ファイルを変更する領域
  • ステージ:コミットする変更を準備する領域
  • リポジトリ:コミットによりスナップショットを記録する領域

スナップショット : Gitリポジトリ内の全ファイルの状態

② : リモートリポジトリ
→オンライン上に存在するチーム全員の変更履歴を反映するためのリポジトリ

データ管理

Gitリポジトリ内でのデータ管理方法をコマンドと一緒に説明します。今回はindex.htmlというファイルをコミットする際のデータ管理を例とします。

  1. git addコマンドの実行
    →index.htmlのファイル内容を圧縮した圧縮ファイルAが作成されます。そして、インデックスにindex.htmlと圧縮ファイルAが記録されます。
  2. git commitコマンドの実行
    →インデックスのファイル構成をもとにツリー1が作成される。ツリー1が作成されたらコミット1が作成されます。コミット1には作成者や日付、親コミットなどの情報が記録されます。

commit.png

フェッチ

フェッチとは、リモートリポジトリからデータをローカルリポジトリに取り込む操作のことです。

fetch.png

ただし、フェッチで取得してきたデータはローカルリポジトリのremotes/リモート/ブランチというブランチに取り込まれるため、別途mergeコマンドで所望のブランチにマージする必要があります。

プル

プルもフェッチと同様にリモートリポジトリからデータをローカルリポジトリに取り込みます。フェッチとの違いは、プルでは、ローカルリポジトリの作業ブランチにマージする処理まで実施します。つまり、プルで取得する内容がhogeブランチで、ローカルの作業ブランチがmasterの時、変更内容をmergeブランチに取り込まれます。

ブランチとは

ブランチとは、コミットを指したポインタのことです。以下の例は、コミット1,2,3という順でコミットされた状態を示しています。コミット3の時点では、masterブランチのみだったが、featureブランチを作成した場合、それぞれのブランチはコミット3を指し示します。
さらに、HEADとは、現時点のブランチを指し示す役割を担います。

branch.png

つまり、ブランチを切ると、ブランチを切った時点の最新のコミットから派生してコミットを記録していきます。

マージとは

Fast Foward

Fast Fowardとは、ブランチが枝分かれしてなかった時はブランチのポインタを前に進めるマージ方法のことです。
ff.png

ff1.png

Auto Merge

Auto mergeとは、ブランチが枝分かれして開発していた場合、マージコミットという新しいコミットを作る方法のことです。
automerge.png

automerge1.png

リベース

リベースとは、変更を統合し、履歴をきれいに整えるための機能です。

rebase.png

マージとの違いはマージコミットの有無で、リベースではマージコミットが作成されないため、履歴がスッキリします。

タグ

タグとはコミットを参照しやすくするためのものです。

  • 注釈付きタグ : 特定のコミットオブジェクトのハッシュ値 + コメントを含んだタグ

  • 軽量タグ : 特定のコミットオブジェクトのハッシュ値を含んだだけのタグ

スタッシュ

コミットしたくない変更を一時的に非難する領域のこと

stash.png

ワーキングツリーやステージに変更を加えた後に、ブランチを切り替える時などに一時的に避難する時などに用います。fetch.png

Tips

コマンドにエイリアスを設定

エイリアスとは、コマンドの別名のことです。コマンド自体の文字数はそれほど多くないですが、頻繁に使うと入力が面倒です。そのため、Gitでは短い文字数のエイリアスを設定することができます。
以下コマンドを実行してください。

git config --global alias.<エイリアス> <コマンド>

ちなみに以下コマンドでconfigの状況を確認できます。

git config -l

.gitignore

.gitignoreとは、Gitでファイル管理をしたくないファイルを設定するファイルのことです。Gitでは、リポジトリ内のスナップショットを記録するため、大きいファイルを極力管理から外すべきです。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?