git入門 ~仕組みを理解する~ 第5回 実際にcommitツリーを作成しよう

2020年3月14日git-master

今回は実際にgitのコマンドを実行してcommitを作成していきましょう。

第2回 commitツリーをイメージする」と同じものを実際のgitコマンドで作成してみましょう。

gitでcommitツリーを作成する

第2回での図と照らし合わせながらgitコマンドでcommitツリーを作成してきます。

 

リポジトリを作成

ここでは、「git-test」ディレクトリを作成して、gitリポジトリを作成します。

/c/Git
$ mkdir git-test

/c/Git
$ cd git-test/

/c/Git/git-test
$ git init
Initialized empty Git repository in C:/Git/git-test/.git/

/c/Git/git-test (master)
$

リポジトリが出来上がったので、早速1つ目のcommitから作成していきましょう。

使用したgitコマンド

git init

 

1つ目のcommit-Aを作成

第2回で机上で作成したcommitは次の通りでした。

作業場所でfile-Aを新規作成

file-Aに名前(hash-A)を付けて倉庫に保管し、梱包エリアでファイル一覧にfile-Aを記録する

ファイル一覧に紐付く倉庫に保管されたファイルの名前(hash-A)をcommitに記録し、名前をcommit-hash-Aとして倉庫に保管する

それでは、実際のgitコマンドで実行していきます。

1つ目のcommitは丁寧に説明していきます。

working-directory(作業ディレクトリ)にfile-Aを作成します。

/c/Git/git-test (master)
$ echo 'aaa' > file-A

/c/Git/git-test (master)
$ ls
file-A

 

git statusコマンドで確認

少し寄り道をして、working-directoryにfile-Aを作成した段階でgitの状態を確認するコマンド「git status」と実行してみてください。

/c/Git/git-test (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        file-A

nothing added to commit but untracked files present (use "git add" to track)

git statusのメッセージを確認すると、

まだ一度もcommitを作成していない状態ですので、「No commits yet」と表示されています。

そして、「Untracked files:」とあり、「file-A」のファイル名が表示されています。

これは、「未追跡状態のファイル」つまり「staging-areaにないファイルがありますよ」ということです。

使用したgitコマンド

git status

git addコマンドでstaging-areaに追加

commit対象のファイル一覧を作成するためにstaging-areaにファイルを追加しましょう。

staging-areaにファイルを追加するには「git add」コマンド実行します。

/c/Git/git-test (master)
$ git add file-A

staging-areaに追加されたか確認してみましょう。

staging-areaの一覧を表示する「git ls-files」コマンドを実行しましょう。

/c/Git/git-test (master)
$ git ls-files
file-A

file-Aが表示されましたね。

また、「git add」コマンドはrepository(リポジトリ)にもファイルを追加しています。

サンプルの通りにコマンドを実行していれば、「git-test/.git/objects/」の中に「72」フォルダがあり、更にその中に「943a16fb2c8f38f9dde202b7a70ccc19c52f34」ファイルがあるはずです。

この「72」+「943a16fb2c8f38f9dde202b7a70ccc19c52f34」が「file-A」のhash値つまりrepository(リポジトリ)内での名前になります。

使用したgitコマンド

git add [ファイル名]

git ls-files

git statusコマンドで確認

staging-areaに追加した状態で「git status」コマンドで状態を確認してみましょう。

/c/Git/git-test (master)
$ git status
On branch master

No commits yet

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

「Untracked files:」の状態ではなくなりましたね。

working-directoryからstaging-areaに登録されるとこのようにcommitを作成できる状態になります。

git commitコマンドでrepositoryへcommitを登録する

repository(リポジトリ)へcommitを登録していきましょう。

登録の方法は「git commit」コマンドで行います。

commitを作成する際はcommitメッセージを入力する必要があります。

「-m」オプションを指定することでcommitメッセージを入力することができます。

commitメッセージは後々どのような変更を行ったかなどを知る重要なメッセージですので、実際の業務などでは他の人にわかるような内容を記載しましょう。

また、「-m」オプションを指定しない場合は、vimエディタが起動しそこでメッセージを入力することができます。

/c/Git/git-test (master)
$ git commit -m 'file-A add'
[master (root-commit) d7d2877] file-A add
 1 file changed, 1 insertion(+)
 create mode 100644 file-A
使用したgitコマンド

git commit -m 'コミットメッセージ’

 

作成したcommitを確認してみましょう。

commitの中身を確認する(git log)

確認する方法はいくつかありますが、一番よく利用するのが「git log」コマンドです。

早速実行してみましょう。

/c/Git/git-test (master)
$ git log
commit d7d2877dc111bbf6e1a7c966d991e867245291c6 (HEAD -> master)
Author: snow <snow@abc.com>
Date:   Wed Mar 18 21:13:29 2020 +0900

    file-A add

ログの内容を確認してみましょう。

commitの行に表示されている「d7d2877dc111bbf6e1a7c966d991e867245291c6」がcommitのhash値つまりcommitの名前です。

「HEAD -> master」ですが、こちらについては次回の「第6回 gitのbranch(ブランチ)はcommit-hashの別名(ポインタ)」で説明します。

Authorの行にはgitの初期設定で登録したユーザ名とメールアドレスが表示されています。

一番最後の行には、commitメッセージが表示されています。

利用したgitコマンド

git log

commitの中身を確認する(git cat-file)

ここからは通常確認することはないですが、commitオブジェクトの内容を更に確認してみましょう。

「git cat-file」コマンドでcommitオブジェクトの中身を確認することができます。

git cat-file -p d7d2877dc111bbf6e1a7c966d991e867245291c6

と実行してください。

指定するhash値について

hash値は先ほどgit logコマンドで確認したhash値を入力してください。

/c/Git/git-test (master)
$ git cat-file -p d7d2877dc111bbf6e1a7c966d991e867245291c6
tree 6d0660f7fe0da18023beaa97724a5fcf9eea7d3f
author snow <snow@abc.com> 1584533609 +0900
committer snow <snow@abc.com> 1584533609 +0900

file-A add

treeオブジェクトが1つありますね。

treeオブジェクトについては「第3回 commitツリーを作成するための3つのエリア」で説明しましたね。

さらに「git cat-file」コマンドでtreeオブジェクトの中身を確認しましょう。

git cat-file -p 6d0660f7fe0da18023beaa97724a5fcf9eea7d3f

指定するhash値について

hash値は先ほどtreeオブジェクトのhash値を入力してください。

/c/Git/git-test (master)
$ git cat-file -p 6d0660f7fe0da18023beaa97724a5fcf9eea7d3f
100644 blob 72943a16fb2c8f38f9dde202b7a70ccc19c52f34    file-A

treeオブジェクトの中身はblobオブジェクトが1つあり、file-Aであることがわかりました。

さらに「git cat-file」コマンドでblobオブジェクトの中身を確認しましょう。

git cat-file -p 72943a16fb2c8f38f9dde202b7a70ccc19c52f34

指定するhash値について

hash値は先ほどblobオブジェクトのhash値を入力してください。

/c/Git/git-test (master)
$ git cat-file -p 72943a16fb2c8f38f9dde202b7a70ccc19c52f34
aaa

file-Aを作成するときににechoコマンドで登録した「aaa」が表示されましたね。

利用したgitコマンド

git cat-file -p [確認したいオブジェクトのhash値]

エクスプローラーで確認する

.git/objectsフォルダを確認すると先ほど「git cat-file」で確認したオブジェクト3つが存在していますね。

/c/Git/git-test/.git/objects
├─6d
│      0660f7fe0da18023beaa97724a5fcf9eea7d3f
│
├─72
│      943a16fb2c8f38f9dde202b7a70ccc19c52f34
│
├─d7
│      d2877dc111bbf6e1a7c966d991e867245291c6

実際に必要な操作は「git add」「git commit」だけですがgitのリポジトリがどのようにファイル管理しているかを理解することでgitコマンドが行っている処理がわかるようになってきます。

 

2つ目のcommitからはスピードアップしていきます。

2つ目のcommit-Bを作成

作業場所でfile-Bを新規作成

file-Bに名前(hash-B)を付けて倉庫に保管する

梱包エリアでファイル一覧にfile-Aとfile-Bを記録する

ファイル一覧に紐付く倉庫に保管されたファイルの名前(hash-Aとhash-B)をcommitに記録し、名前をcommit-hash-Bとして倉庫に保管する

また、commit-hash-Bには変更元のcommitがcommit-hash-Aと記録する

 

ファイルの作成からcommitまでgitコマンドを実行します。

/c/Git/git-test (master)
$ echo 'bbb' > file-B

/c/Git/git-test (master)
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        file-B

nothing added to commit but untracked files present (use "git add" to track)

/c/Git/git-test (master)
$ git add file-B

/c/Git/git-test (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   file-B


/c/Git/git-test (master)
$ git commit -m 'file-B add'
[master 3e8a749] file-B add
 1 file changed, 1 insertion(+)
 create mode 100644 file-B

 

stagin-areaを確認してみましょう。

/c/Git/git-test (master)
$ git ls-files
file-A
file-B

2つのファイルがありますね。

 

続いてrepositoryの内容を確認してみましょう。

/c/Git/git-test (master)
$ git log
commit 3e8a749b6a72756998f920a0c6786902458c3341 (HEAD -> master)
Author: snow <snow@abc.com>
Date:   Thu Mar 19 21:29:43 2020 +0900

    file-B add

commit d7d2877dc111bbf6e1a7c966d991e867245291c6
Author: snow <snow@abc.com>
Date:   Wed Mar 18 21:13:29 2020 +0900

    file-A add

2つのcommitが作成されています。

今回作成した「3e8a749b6a72756998f920a0c6786902458c3341」のcommitの親commitに最初に作成したcommitが指定されているか確認してみましょう。

/c/Git/git-test (master)
$ git cat-file -p 3e8a749b6a72756998f920a0c6786902458c3341
tree b218866f5eee6b2c4c0dfb16a50f80d1dd8e01a2
parent d7d2877dc111bbf6e1a7c966d991e867245291c6
author snow <snow@abc.com> 1584620983 +0900
committer snow <snow@abc.com> 1584620983 +0900

file-B add

parentに1つ目のcommitのhash値「d7d2877dc111bbf6e1a7c966d991e867245291c6」が設定されていますね。

これで、2つのcommitがつながっていることがわかりました。

3つ目以降もどんどん作成していきます。

3つ目のcommit-Cを作成

作業場所でfile-Cを新規作成

file-Cに名前(hash-C)を付けて倉庫に保管する

梱包エリアで一覧表にfile-Aとfile-Bとfile-Cを記録する

ファイル一覧に紐付く倉庫に保管されたファイルの名前(hash-Aとhash-Bとhash-C)をcommitに記録し、名前をcommit-hash-Cとして倉庫に保管する

また、commit-hash-Cには変更元のcommitがcommit-hash-Bと記録する

 

ファイルの作成からcommitまでgitコマンドを実行します。

/c/Git/git-test (master)
$ echo 'ccc' > file-C

/c/Git/git-test (master)
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        file-C

nothing added to commit but untracked files present (use "git add" to track)

/c/Git/git-test (master)
$ git add file-C

/c/Git/git-test (master)
$ git commit -m 'file-C add'
[master b64a4ea] file-C add
 1 file changed, 1 insertion(+)
 create mode 100644 file-C

 

stagin-areaを確認してみましょう。

/c/Git/git-test (master)
$ git ls-files
file-A
file-B
file-C

ファイルが3つあります。OKですね。

 

続いてrepositoryの内容を確認してみましょう。

/c/Git/git-test (master)
$ git log
commit b64a4ea0401eefa42c3f3e530123c6edeb6fe80e (HEAD -> master)
Author: snow <snow@abc.com>
Date:   Thu Mar 19 21:55:12 2020 +0900

    file-C add

commit 3e8a749b6a72756998f920a0c6786902458c3341
Author: snow <snow@abc.com>
Date:   Thu Mar 19 21:29:43 2020 +0900

    file-B add

commit d7d2877dc111bbf6e1a7c966d991e867245291c6
Author: snow <snow@abc.com>
Date:   Wed Mar 18 21:13:29 2020 +0900

    file-A add

 

親commitも確認しましょう。

/c/Git/git-test (master)
$ git cat-file -p b64a4ea0401eefa42c3f3e530123c6edeb6fe80e
tree f91906459447b856dff968c24bcf859a261baa63
parent 3e8a749b6a72756998f920a0c6786902458c3341
author snow <snow@abc.com> 1584622512 +0900
committer snow <snow@abc.com> 1584622512 +0900

file-C add

2つ目のcommitがparentに登録されていますね。

2つ目のcommit-Bを取得する

倉庫からcommit(commit-hash-B)を取り出す

取り出したcommitの内容を梱包エリアに持ってくる

ファイル一覧はfile-Aとfile-Bが記録された状態になる

作業場所にfile-Aとfile-Bを配置する

 

repositoryからcommitの内容を取得するgitコマンドは「git checkout」です。

では、2つ目のcommitを取得してみましょう。

/c/Git/git-test (master)
$ git checkout 3e8a749b6a72756998f920a0c6786902458c3341
Note: switching to '3e8a749b6a72756998f920a0c6786902458c3341'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 3e8a749 file-B add

色々とメッセージが表示されますが、working-directoryとstaging-areaの状態を確認してみましょう。

 

working-directoryの内容を確認すると、

/c/Git/git-test ((3e8a749...))
$ ls
file-A  file-B

file-Aとfile-Bの2つの状態に戻りましたね。

 

続いてstaging-areaの内容を確認すると、

/c/Git/git-test ((3e8a749...))
$ git ls-files
file-A
file-B

こちらもfile-Aとfile-Bの状態に戻りました。

これで、いつでも指定したcommitを取得できることがわかりましたね。

利用したgitコマンド

git checkout [commit-hash]

4つ目のcommit-Dを作成する

作業場所でdir-Aを作成しdir-Aの中にfile-Dを新規作成

dir-Aに名前(dir-hash-A)を付けて倉庫に保管する

file-Dに名前(hash-D)を付けて倉庫に保管する

梱包エリアで一覧表にfile-Aとfile-Bとfile-Dを記録する

ファイル一覧に紐付く倉庫に保管されたファイルの名前(hash-Aとhash-Bとdir-Aとhash-D)をcommitに記録し、名前をcommit-hash-Dとして倉庫に保管する

また、commit-hash-Dには変更元のcommitがcommit-hash-Bと記録する

 

2つ目のcommitをcheckoutした状態で、commitを作成していきます。

/c/Git/git-test ((3e8a749...))
$ mkdir dir-A

/c/Git/git-test ((3e8a749...))
$ cd dir-A/

/c/Git/git-test/dir-A ((3e8a749...))
$ echo 'ddd' > file-D

/c/Git/git-test/dir-A ((3e8a749...))
$ git status
HEAD detached at 3e8a749
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        ./

nothing added to commit but untracked files present (use "git add" to track)

/c/Git/git-test/dir-A ((3e8a749...))
$ git add .

/c/Git/git-test/dir-A ((3e8a749...))
$ git status
HEAD detached at 3e8a749
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   file-D


/c/Git/git-test/dir-A ((3e8a749...))
$ git commit -m 'dir-A file-D add'
[detached HEAD 5802a30] dir-A file-D add
 1 file changed, 1 insertion(+)
 create mode 100644 dir-A/file-D

これまでと少し違うポイントは「git add .」としています。

「git add」はファイル名ではなく「.」を指定すると追加・変更した全てのファイルをstaging-areaに反映できます。

 

stagin-areaを確認してみましょう。

/c/Git/git-test/dir-A ((5802a30...))
$ cd ..

/c/Git/git-test ((5802a30...))
$ git ls-files
dir-A/file-D
file-A
file-B

file-Dはdir-A/file-Dとなっていますね。

 

続いてrepositoryの内容を確認してみましょう。

/c/Git/git-test ((5802a30...))
$ git log
commit 5802a30e2843c3a1c894b2223a5a3c2d9f4aded9 (HEAD)
Author: snow <snow@abc.com>
Date:   Thu Mar 19 22:35:34 2020 +0900

    dir-A file-D add

commit 3e8a749b6a72756998f920a0c6786902458c3341
Author: snow <snow@abc.com>
Date:   Thu Mar 19 21:29:43 2020 +0900

    file-B add

commit d7d2877dc111bbf6e1a7c966d991e867245291c6
Author: snow <snow@abc.com>
Date:   Wed Mar 18 21:13:29 2020 +0900

    file-A add

commitが3つしか表示されませんね。

これは、commitを木に見立てた場合に3つ目に作成したcommitが別の枝葉になっているからです。

「git log」コマンドはオプションを指定しない場合は最初のcommitから自分のcommitまでのルートのみが表示されます。

全てのcommitを確認する場合は、「git log –all」と「–all」をつけてコマンドを実行しましょう。

また、「git log –all –graph」とすることで枝が分かれているように表示することができます。

/c/Git/git-test ((5802a30...))
$ git log --all --graph
* commit 5802a30e2843c3a1c894b2223a5a3c2d9f4aded9 (HEAD)
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 22:35:34 2020 +0900
|
|     dir-A file-D add
|
| * commit b64a4ea0401eefa42c3f3e530123c6edeb6fe80e (master)
|/  Author: snow <snow@abc.com>
|   Date:   Thu Mar 19 21:55:12 2020 +0900
|
|       file-C add
|
* commit 3e8a749b6a72756998f920a0c6786902458c3341
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 21:29:43 2020 +0900
|
|     file-B add
|
* commit d7d2877dc111bbf6e1a7c966d991e867245291c6
  Author: snow <snow@abc.com>
  Date:   Wed Mar 18 21:13:29 2020 +0900

      file-A add

file-Cを追加したcommitが上から2番目に表示されていますね。

少しツリーらしくなってきましたよね。

5つ目のcommit-Eを作成する

作業場所でfile-Aを削除する

梱包エリアでファイル一覧からfile-Aを削除し、ファイル一覧にfile-Bとdir-Aとfile-Dが記録された状態にする

※倉庫からfile-Aは削除されない

ファイル一覧に紐付く倉庫に保管されたファイルの名前(hash-Bとdir-Aとhash-D)をcommitに記録し、名前をcommit-hash-Eとして倉庫に保管する

また、commit-hash-Eには変更元のcommitがcommit-hash-Dと記録する

 

file-Aの削除からcommit作成までを実行します。

/c/Git/git-test ((5802a30...))
$ rm file-A

/c/Git/git-test ((5802a30...))
$ git status
HEAD detached from 3e8a749
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    file-A

no changes added to commit (use "git add" and/or "git commit -a")

/c/Git/git-test ((5802a30...))
$ git add file-A

/c/Git/git-test ((5802a30...))
$ git status
HEAD detached from 3e8a749
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    file-A


/c/Git/git-test ((5802a30...))
$ git commit -m 'file-A delete'
[detached HEAD 10dd8d4] file-A delete
 1 file changed, 1 deletion(-)
 delete mode 100644 file-A

 

staging-areaからfile-Aが削除されているか確認してみましょう。

/c/Git/git-test ((10dd8d4...))
$ git ls-files
dir-A/file-D
file-B

file-Aが削除されていますね。

 

続いてrepositoryの内容を確認してみましょう。

/c/Git/git-test ((10dd8d4...))
$ git log --all --graph
* commit 10dd8d43f84488986c858a6b001c48b9d5358f90 (HEAD)
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 23:09:13 2020 +0900
|
|     file-A delete
|
* commit 5802a30e2843c3a1c894b2223a5a3c2d9f4aded9
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 22:35:34 2020 +0900
|
|     dir-A file-D add
|
| * commit b64a4ea0401eefa42c3f3e530123c6edeb6fe80e (master)
|/  Author: snow <snow@abc.com>
|   Date:   Thu Mar 19 21:55:12 2020 +0900
|
|       file-C add
|
* commit 3e8a749b6a72756998f920a0c6786902458c3341
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 21:29:43 2020 +0900
|
|     file-B add
|
* commit d7d2877dc111bbf6e1a7c966d991e867245291c6
  Author: snow <snow@abc.com>
  Date:   Wed Mar 18 21:13:29 2020 +0900

      file-A add

先ほどのcommitの次にfile-Aが削除されたcommitが作成されましたね。

6つ目のcommit-Fを作成する

作業場所でfile-Bを修正する

修正後のfile-Bに名前(hash-B2)を付けて倉庫に保管する

梱包エリアでファイル一覧にfile-Bとdir-Aとfile-Dを記録する

ファイル一覧に紐付く倉庫に保管されたファイルの名前(hash-B2とdir-Aとhash-D)をcommitに記録し、名前をcommit-hash-Fとして倉庫に保管する

また、commit-hash-Fには変更元のcommitがcommit-hash-Eと記録する

 

file-Bの修正からcommitの作成までやってみましょう。

/c/Git/git-test ((10dd8d4...))
$ echo 'bbb追加したよ' >> file-B

/c/Git/git-test ((10dd8d4...))
$ git status
HEAD detached from 3e8a749
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   file-B

no changes added to commit (use "git add" and/or "git commit -a")

/c/Git/git-test ((10dd8d4...))
$ git add file-B

/c/Git/git-test ((10dd8d4...))
$ git commit -m 'file-B update'
[detached HEAD ec63e48] file-B update
 1 file changed, 1 insertion(+)

 

staging-areaを確認します。

/c/Git/git-test ((ec63e48...))
$ git ls-files
dir-A/file-D
file-B

ファイルの一覧としては変化がないですね。

 

つづいてrepositoryの内容を確認してみましょう。

/c/Git/git-test ((ec63e48...))
$ git log --all --graph
* commit ec63e48359151e7473415a5fec3a4f00aee6cc94 (HEAD)
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 23:26:13 2020 +0900
|
|     file-B update
|
* commit 10dd8d43f84488986c858a6b001c48b9d5358f90
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 23:09:13 2020 +0900
|
|     file-A delete
|
* commit 5802a30e2843c3a1c894b2223a5a3c2d9f4aded9
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 22:35:34 2020 +0900
|
|     dir-A file-D add
|
| * commit b64a4ea0401eefa42c3f3e530123c6edeb6fe80e (master)
|/  Author: snow <snow@abc.com>
|   Date:   Thu Mar 19 21:55:12 2020 +0900
|
|       file-C add
|
* commit 3e8a749b6a72756998f920a0c6786902458c3341
| Author: snow <snow@abc.com>
| Date:   Thu Mar 19 21:29:43 2020 +0900
|
|     file-B add
|
* commit d7d2877dc111bbf6e1a7c966d991e867245291c6
  Author: snow <snow@abc.com>
  Date:   Wed Mar 18 21:13:29 2020 +0900

まとめ

今回は少し長くなりましたが、第2回で机上で作成したcommitツリーを実際にgitコマンドを利用して作成できました。

確認していない各commitの中身については、「git cat-file -p [hash値]」で確認できますので、中身の気になるオブジェクトを確認してみてもよいでしょう。

これまで「ファイル追加・修正」→「git add .」→「git commit -m 'xxx’」と呪文のようにコマンドを実行されていた方の理解が深まれば幸いです。

次回は、branch(ブランチ)について学んでいきましょう。

git-master

Posted by snow