前の記事はこちら
Gitの基本的な操作を学ぼう
用語
ステージング
コミットに含めるファイルやディレクトリの変更内容を記録するところ
コミット
前回コミット時の状態とステージングに登録されたファイルやディレクトリの差分(追加・変更・削除)を、リポジトリに記録する
プッシュ
リモートリポジトリに対して、ローカルリポジトリでコミットした変更内容を反映する
プル
ローカルリポジトリに対して、リモートリポジトリに行われた変更内容を反映する
ブランチ
リポジトリの分岐。デフォルトではmasterブランチのみ存在するが、ソースコードを修正するときにはmasterブランチをコピーして他の修正用ブランチを作成し、修正用ブランチでの変更が完了したらmasterブランチに変更内容をマージする。こうすることで、複数人での変更作業が可能になる。
基本的なステップ
- コミットするファイルを選んでステージングに追加する。
- ステージングに登録された変更内容をコメントをつけてコミットする。
- ローカルリポジトリにコミットされた内容をリモートリポジトリにプッシュする。
ファイルの作成
では、実際にローカルポジトリで変更管理してみましょう。まずは、ローカルリポジトリでファイルを作成します。
$ touch test1
$ touch test2
$ ls -l
total 0
-rw-r--r-- 1 hoge staff 0 10 12 18:09 test1
-rw-r--r-- 1 hoge staff 0 10 12 18:09 test2
2ファイル作成できましたね。
ファイルをステージングに追加
次に、git statusというコマンドを実行してみましょう。
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
test1
test2
nothing added to commit but untracked files present (use "git add" to track)
Untracked files に、先ほど作成したファイルがありますね。
ちなみに、On branch masterというのは、今はローカルリポジトリのmasterブランチで作業していますよ、ということです。
では、test1のファイルだけをコミットするためにgit addでステージングに追加しましょう。
$ git add test1
$ $ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: test1
Untracked files:
(use "git add <file>..." to include in what will be committed)
test2
test1ファイルのみがステージングに登録されました。
ファイルのコミット
では、続いてtest1のファイルをコミットします。
$ git commit -m "first commit"
[master (root-commit) 71380d5] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test1]
git statusで確認すると、test1はコミットしたのでステージングからなくなりました。
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
test2
nothing added to commit but untracked files present (use "git add" to track)
git logでコミットログが確認できます。
$ git log
commit 71380d52bbb6b7e0cd649748b1d75ea0b39f71eb (HEAD -> master)
Author: hoge <hoge@email.com>
Date: Sat Oct 12 19:01:50 2019 +0900
first commit
リモートリポジトリにプッシュ
いよいよ、ローカルリポジトリにコミットした内容をリモートリポジトリにプッシュして反映させます。
次のコマンドで、originというリモートリポジトリのmasterブランチにプッシュします。
$ git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 206 bytes | 206.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/hoge/sample.git
* [new branch] master -> master
リモートリポジトリに、ローカルリポジトリの変更が反映されました。

リモートリポジトリからプル
次に、リモートリポジトリの変更内容をローカルリポジトリに反映します。
まず、リモートリポジトリのGit HubでREADMEファイルを追加しましょう。
READMEに適当な内容を入力し、「Commit new file」ボタンをクリックします。
READMEには、マークダウンが使用できます。
では、リモートリポジトリの変更(READMEの追加)をローカルリポジトリ側に反映させます。
次のコマンドで、originというリモートリポジトリのmasterブランチからプルします。
$ git pull origin master
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/hoge/sample
* branch master -> FETCH_HEAD
f733bfe..7022b44 master -> origin/master
Updating f733bfe..7022b44
Fast-forward
README.md | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 README.md
READMEファイルがローカルリポジトリに追加されましたね。
$ ls -l
-rw-r--r-- 1 hoge staff 38 10 12 22:17 README.md
-rw-r--r-- 1 hoge staff 0 10 12 19:13 test1
-rw-r--r-- 1 hoge staff 0 10 12 19:13 test2
