100日後にエンジニアになるキミ - 55日目 - Git - Gitの使い方

昨日までのはこちら

[100日後にエンジニアになるキミ - 42日目 - クラウド - クラウドサービスについて](https://qiita.com/otupy/items/d1765f1541a104ed6133)

[100日後にエンジニアになるキミ - 36日目 - データベース - データベースについて](https://qiita.com/otupy/items/7af17635d576677606dc)

[100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1](https://qiita.com/otupy/items/6d1e5453f530e07b7aec)

[100日後にエンジニアになるキミ - 18日目 - Javascript - JavaScriptの基礎1](https://qiita.com/otupy/items/2f71d5f9c754b29d9555)

[100日後にエンジニアになるキミ - 14日目 - CSS - CSSの基礎1](https://qiita.com/otupy/items/61a97863f6df14171994)

[100日後にエンジニアになるキミ - 6日目 - HTML - HTMLの基礎1](https://qiita.com/otupy/items/cd2315dcb38671cfded0)

[100日後にエンジニアになるキミ - 53日目 - Git - Gitについて](https://qiita.com/otupy/items/0abaad82a7f3fea73f1f)

最近の開発ではGitが欠かせません。
本日はGitの使い方についてです。

## Gitとは

Git(ギット)はプログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。

ソフトウェアになるので誰でも使うことができますが
PCやサーバーにインストールすることになります。

概念や用語については前回分をご参照ください。

[100日後にエンジニアになるキミ - 53日目 - Git - Gitについて](https://qiita.com/otupy/items/0abaad82a7f3fea73f1f)

## Gitの使い方

まずはじめにちゃんとコマンドが使えるかどうかは確認しておきましょう。

バージョンコマンドを使えるかどうか見ます。

```terminal
git --version
```
git version 2.21.1 (Apple Git-122.3)

コマンドが使えるならバージョン情報が出てきます。
ここでコマンドが使えなければ`Git`のインストールを行いましょう。

[100日後にエンジニアになるキミ - 54日目 - Git - Gitの導入方法](https://qiita.com/otupy/items/e950f3d244a71115fde5)


### リポジトリの作成(init)

初めは何もない状態です。
リポジトリを作成してみましょう。

リポジトリ作成は`init`コマンドで行えます。

コマンドはコンソールなどで行いますが、どこに作るのかは
現在いるディレクトリに作成しますので、`cd`コマンドなどで
リポジトリを作りたいディレクトリにあらかじめ移動しておいてから
コマンドを実行してみましょう。

```terminal
cd xxxxxx/xxx/
git init
```
Initialized empty Git repository in /Users/xxxxxx/xxx/.git/

上記のようなメッセージが出たら、リポジトリ作成成功です。

リポジトリは`.git`という名前のディレクトリとなり
その中に管理用のファイルを保存します。

`.git`の中をみてみましょう。

```terminal
ls -ls .git/
```
total 24
8 -rw-r--r--   1 gm3293  staff   23  5 14 17:09 HEAD
8 -rw-r--r--   1 gm3293  staff  137  5 14 17:09 config
8 -rw-r--r--   1 gm3293  staff   73  5 14 17:09 description
0 drwxr-xr-x  13 gm3293  staff  416  5 14 17:09 hooks
0 drwxr-xr-x   3 gm3293  staff   96  5 14 17:09 info
0 drwxr-xr-x   4 gm3293  staff  128  5 14 17:09 objects
0 drwxr-xr-x   4 gm3293  staff  128  5 14 17:09 refs

管理ファイルが見えればOKです。

このあとの流れとしてはディレクトリの中にファイルを作成し
`git add`でインデックスにファイルを追加し
`git commit`でリポジトリにコミットします。

### リポジトリの状態を確認する(status)

リポジトリの状態は`status`コマンドで確認できます。

試しに確認してみましょう。

```
git status
```
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

リポジトリを作ったばかりなので特に何もないですね。

### インデックスにファイルを追加する(add)

それではここにファイルを作って、それをインデックスに追加してみましょう。

```sample.html
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>HTML5サンプルだよん</title>
    </head>
    <body>
        <p>HTML5の本文</p>
    </body>
</html>
```


テキストエディターやviなどでこれを作って置いておきます。

`git add　ファイル名`でファイルを追加することができます。
追加できたらもう一度`status`を見てみましょう。


```
git add sample.html
git status
```
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

   new file:   sample.html

先ほど`add`コマンドで追加したファイルが出てきていますね。
これでリポジトリ管理するファイルをインデックス追加することができました。

ファイルの変更内容等をインデックスに追加することを`ステージング`と表現することがあります。

既にステージングの対象になっている内容を`git diff --cached`で確認できます。

`git add .`ではカレントディレクトリにある
全てのファイルを追加の対象とすることができます。

### リポジトリに登録を行う(commit)

インデックスへの追加が終わったら次はリポジトリに登録を行います。

リポジトリへの登録は`commit`コマンドで行います。
登録時にはメッセージ(コメントみたいなもの)が必要になるので
併せてコマンドで送り込みます。

`git commit -m ‘メッセージ内容’`

```
git commit -m 'first commit'
```
[master (root-commit) 63c0e3e] first commit
 Committer: XXXXXXXX <XXXXXXXX@XXXXXXXX.local>
your configuration file:

 git config --global --edit

After doing this, you may fix the identity used for this commit with:

 git commit --amend --reset-author

 1 file changed, 10 insertions(+)
 create mode 100644 sample.html

先ほど追加したファイルがコミットされたというメッセージが出れば
コミット成功です。

ここまでの操作で`ローカルリポジトリ`への登録が終了という形になります。

`status`で確認してみると

```
git status
```
On branch master
nothing to commit, working tree clean

未登録のものは残っていないようですね。


### リポジトリ管理下のファイル一覧(ls-files)

コミットされたファイルの一覧を取得してみましょう。
`ls-files`コマンドで取得できます。

```
git ls-files
```
sample.html




## まとめ

GitやGitHubは現在の開発では欠かすことができない物です。
Gitをインストールして使えるようにしておきましょう。

まず最初はリポジトリの作り方とローカルリポジトリへの登録方法を覚えておきましょう。


君がエンジニアになるまであと45日

## 作者の情報
乙pyのHP：
http://www.otupy.net/

Youtube：
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter：
https://twitter.com/otupython