# 【入門】Gitの基本や勉強方法についてまとめておく！

> 当サイト【スタビジ】の本記事では、Gitの基本と勉強方法についてまとめていきます！Gitはコードやドキュメントのバージョンを管理する上で非常に重要なツールです。Gitについて理解しておくことで開発効率が大きく変わるのでぜひおさえておきましょう！

- URL: https://toukei-lab.com/git-learning
- 公開: 2022.11.29 / 更新: 2025.01.08
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
本記事では、Gitの基本と勉強方法についてまとめていきます！Gitについて理解しておくことで開発効率が大きく変わるのでぜひおさえておきましょう！
:::

Gitは<mark>エンジニアにとってなくてはならないツール</mark>です。

しかし、チーム開発が行われない現場では必ずしも必須ではないツールであり、<mark>Gitたまに使うけど仕事で使うとなると不安・・・</mark>みたいな状況も多くあると思っています。

かくいう僕自身もGitは個人で使っていたのですが、場当たり的に個人で使用しているレベルでチーム開発で使うとなると悪戦苦闘することが多かったので、この記事ではその経験をふまえて**Gitの基本と勉強方法**についてまとめていきたいと思います。

:::talk{who="robotan"}
gitってなんとなく苦手意識あるんだよなー！
:::

:::talk{who="umatan"}
Gitの苦手意識を払拭して使いこなせるようになっておこう！
:::

それでは見ていきましょう！

## Gitの基本・使い方

![stories pc](/wp-content/uploads/2021/01/All-the-data-bro-e1613475965440-1024x789.png)

この記事ではGitの使い方について簡単にまとめていきたいと思います！

Gitの使い方をしっかり理解して、使いこなしていきましょう！

### はじめに

それでは早速gitを使ってみましょう！

#### git init

リポジトリを新規に作成。

```python
git init
```

好きなディレクトリに移動してgit initコマンドを打ちましょう！

#### git clone \<url>

他のリモートリポジトリの情報を取得し反映

```python
git clone　<url>
```

既存の開発が行われているリモートリポジトリの情報を取得し反映していきます！

### ブランチを作成

Gitでは大元の開発フローから開発作業によって**分岐**が走ります。これがブランチです。

<mark>ブランチを作成し、各担当者が作業をして最終的に大元のブランチにマージしていく</mark>のがGitを使った開発の全体像です。

#### git branch 作成するブランチ名

新しいブランチを作成

```python
git branch 作成するブランチ名
```

#### git checkout -b 作成するブランチ名

新しいブランチを作成する際はgit checkoutを使うことも多いです。

新しいブランチを作成、新ブランチに移動

```python
git checkout -b 作成するブランチ名
```

#### git checkout -b 作成するブランチ名 派生元のブランチ名

派生させたいブランチを明示的に指定したい場合に使用

```python
git checkout -b 作成するブランチ名 派生元のブランチ名
```

#### git checkout リモートのブランチ名

先程は、ローカルでブランチを作成していく流れを見てきましたが、これはリモートのブランチをローカルに反映させたい時に使います。

例えば、リモートのブランチがremotes/origin/firstだった場合

remotes/originを取り除いて、

```python
git checkout first
```

と入れてあげるとリモートブランチをローカルに反映させることが出来ます。

:::ref
[【Git】リモートからの取得とリモートへの反映で行っていること(fetch,pull,push)](https://qiita.com/forest1/items/db5ac003d310449743ca)
:::

#### git push -u origin 作成したブランチ名

リモートリポジトリに作成したブランチを登録。

```python
git push -u origin 作成したブランチ名
```

### ブランチを移動する

ブランチを移動する際もgit checkoutを使用します。

#### git checkout ブランチ名

ブランチ移動。

```python
git checkout ブランチ名
```

#### git checkout -f ブランチ名

強制的にブランチ移動するためには-fを付けます。

```python
git checkout -f ブランチ名
```

ファイルを変更していてその変更をコミットしていないと派生元以外の他のブランチに移動できないため、それを無視して強制的に移動したい場合は使いましょう！

### ブランチの状況を確認する

続いてブランチの状況を確認するためのコマンドについて見ていきましょう！

#### git show-branch

現在のコミット・ブランチ状況が分かる

```python
git show-branch
```

#### git branch

ローカルリポジトリのブランチ一覧確認

```python
git branch
```

#### git branch -a

ブランチ一覧をリモートリポジトリと共に確認

```python
git branch -a
```

#### 今いるブランチの派生元のブランチを確認

意図しないブランチから間違ってブランチを切ってしまった時・・・以下のコマンドで今いるブランチの派生元のブランチを確認できるんです！

```python
git show-branch | grep '*' | grep -v "$(git rev-parse --abbrev-ref HEAD)" | head -1 | awk -F'[]~^[]' '{print $2}'
```

:::related
[Gitで今のブランチの派生元ブランチを特定する](https://qiita.com/upinetree/items/0b74b08b64442f0a89b9)
:::

### ファイルの変更を反映

ローカルリポジトリでファイルを修正してそれをリモートリポジトリに反映させていきます。

#### git add ファイル名

特定のファイルをステージング環境に追加します。

```python
git add ファイル名
```

#### git add .

全ての変更ファイルを指定

```python
git add .
```

#### git commit -m “コミットメモ”

commitではaddで追加・修正した変更をリモートリポジトリに反映させるための準備をしていきます。

コミットの内容をメモしてリモートリポジトリへアップする準備をします。

```python
git commit -m "コミットメモ"
```

#### git status

変更修正されているファイルの状態を確認できるコマンド。

```python
git status
```

:::box
**・変更修正されているけど、git addされていないファイル**\
**・git addされているけどまだgit commitされていないファイル**
:::

などを一覧で確認することが可能です。

#### git push

リモートリポジトリにアップ

```python
git push
```

git addしてgit commitしたファイルをリモートリポジトリに反映させることが出来ます。

### 作業の変更を退避してブランチ移動

特定のブランチで作業をしていて、一旦のその作業を中断して他のブランチに移動したいとなった時、通常修正がコミットされていないとブランチを移動できません。

そんな時に中途半端な作業を退避して保存しておくことができます。

#### git stash -u

こちらによりコミットしていない変更は一旦退避されます。

```python
git stash -u
```

その上でブランチを移動し、戻ってきてまた作業を再開することが可能です！

#### git stash list

退避した作業をこのコマンドによって確認できます。

```python
git stash list
```

#### git stash pop stash@{番号}

退避していた作業を戻すと同時にstashした情報を削除するのがこのコマンドです。

```python
git stash pop stash@{番号}
```

番号にはstashした特定の番号が入っていますので、git stash listで表示して確認しましょう！

これで無事退避していた作業を戻して作業再開することが出来ます。

### ブランチを削除

不要になったブランチをいつまでも残しておくのは健全ではありません。

不要になったら削除しましょう！

#### git branch -d ブランチ名

マージ済みのブランチを削除

```python
git branch -d ブランチ名
```

#### git branch -D ブランチ名

マージ済みかどうかに関わらずブランチを削除

```python
git branch -D ブランチ名
```

### リモートリポジトリの変更情報をローカルリポジトリに取り込む

誰かが変更したリモートリポジトリの情報を自分で開発しているローカルリポジトリに取り込みたい場合は以下のコマンドを打ちます。

```python
git pull <リモートリポジトリ名称> <ブランチ名称>
```

```python
例）git pull origin first
```

この時ローカルブランチを取り込みたいブランチに移動しておく必要があります。

## Gitの勉強法

![Coding](/wp-content/uploads/2017/11/Coding-amico-e1617441754417-1024x921.png)

僕自信がたどったGitの勉強方法をまとめていきます。

:::box
**・Udemy講座で学ぶ**\
**・個人でGitを利用する**\
**・チーム開発に飛び込んでGitを使う**\
**・ひたすらググりまくる**
:::

### Udemy講座で学ぶ

Gitを勉強できるサービスはいくつかありますが、僕の場合は[Udemy](https://trk.udemy.com/kOqmZL)で勉強しました。

<https://toukei-lab.com/udemy-review>

Udemyは世界的最大の教育プラットフォームで非常にコスパよく様々な専門知識を学べるのでオススメです！

Udemyの以下の講座がGitを学ぶには分かりやすくオススメです！

#### [Git\:もう怖くないGit!チーム開発で必要なGitを完全マスター](https://trk.udemy.com/7aNZgA)

[![Udemy　コース　Git](/wp-content/uploads/2020/04/udemy-python17-min.jpg)](https://trk.udemy.com/7aNZgA)

<table class="table">
<tbody>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中4.5点" data-value="4.5"></span></td>
</tr>
<tr>
<th>【講師】</th>
<td><span>Webエンジニア</span></td>
</tr>
<tr>
<th>【時間】</th>
<td><span>5.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級</span></td>
</tr>
</tbody>
</table>

Git・Githubは開発や機械学習モデリングをチームで行う上で非常に重要なツールです。

そんなGitについて非常に分かりやすく解説してくれるコースになっています。

Gitって最初は何をやっているのかわかりにくいんですが、このコースを受講すればGitが裏でどのような処理を行っているのかが丸わかり！

<mark>動画に映し出される資料も分かりやすいですし講師の話し方も非常に聞きやすいです。</mark>

＼30日以内なら返金無料／

::button[このコースを見てみる]{href="https://trk.udemy.com/7aNZgA"}

Udemyには他にもたくさんのプログラミング周りのコースがたくさんあり、どれも非常に有用なので是非取り組んでみてください！

＼30日以内なら返金無料／

::button[Udemyのプログラミングコースをチェック]{href="https://trk.udemy.com/kOqmZLcourses%2Fdevelopment%2Fprogramming-languages%2F"}

<https://toukei-lab.com/udemy-recommend-programming>

### 個人でGitを利用する

Udemyである程度Gitについて学んで概要を理解した後は、実際に自分で手を動かして使ってみることが大事です。

先ほどのUdemyコースでは、自分の手を動かして学ぶ教材になっているのでその内容に沿って学んでもよいのですが、<mark>できれば自分でドキュメントやプログラムなどをGit管理してみましょう！</mark>

自分で0から試行錯誤してやってみると、あれ？この場合はどうするんだっけ？と疑問が湧き、学びが加速します。

### 現場で実際にGitを使う

個人での開発とチーム開発はやはり全然違います。

個人でGitを使っていたとしてもチームでGitが使えるとは限りません。

僕自身、実際にチーム開発に飛び込んでGitの使い方に戸惑った経験があります。

基本的に個人であればコンフリクトが起こることはありませんが、チームでGitを使っているとコンフリクトが起きます。

そのようなチーム開発で起きることを試行錯誤して解決していくうちにGitを使いこなせるようになっているはずです！

また、チームごとのGitのお作法などがありますので、ルールに則って開発を行いましょう！

郷に入れば郷に従えです。

### ひたすらググりまくる

もう後はひたすらググりまくるのが吉です。

開発の現場に飛び込んで、<mark>分からないことが起きたらひたすらググりまくる。</mark>

今の時代、多くの情報がGoogleには転がっているので、とりあえずググる姿勢が重要です。

分からない事象にぶち当たったらとりあえずググる！

## Gitの勉強方法　まとめ

本記事では、**Gitの勉強方法**について徹底的にまとめてきました。

:::talk{who="robotan"}
gitの勉強の仕方がなんとなく分かった気がする！
:::

:::talk{who="umatan"}
プログラミング技術と一緒に身につけちゃおう！
:::

Gitについてしっかり理解して使えるようになりましょう！

それでは見ていきましょう！

Gitはプログラミングを仕事にしていく上で非常に重要なスキルですのでなるべく早く身につけるようにしましょう！

<https://toukei-lab.com/udemy-recommend-programming>

<https://toukei-lab.com/recommend-programming-school>