リポジトリの作成して最初のコミットをする
Gitでプロジェクトを管理する際は、リポジトリを作成し、ファイルをリポジトリの追跡対象に含め、コミットする必要があります。ここでは、その流れを見ていきます。
VSCodeのSourceControlやSourceTreeといった、GUIで操作できる環境があればそれで操作しても問題ありません。現実的にコマンドで操作することはかなり少なく、GUIでの操作で十分なためです。
目次
最初の大まかな流れ
プロジェクトでGitを用いて管理したい場合、最初にするべきことは
- リポジトリを作成
- ファイルを追跡対象に追加
- ファイルをコミット
の3つです。一度追跡対象に含めてコミットしたファイルは、以後は簡単にコミットできます。
リポジトリを作成
Gitではリポジトリという概念があり、これを利用することで管理できるようになります。
Gitをプロジェクトで利用する際は、まずはそのプロジェクトをGitで管理できるようにする必要があります。
リポジトリとは
リポジトリはファイルなどの状態や履歴を保管する、ほかから分離された仮想的な場所として機能します。要は、各リポジトリの対象箇所だけ、履歴が記録され、様々な操作ができるということです。

画像のように、.git
という隠しフォルダが入っているフォルダがそのままリポジトリになります。履歴などはこの.git
フォルダに入っていますが、直接開くことはほぼありません。
作成
早速リポジトリを作成しましょう。まずはターミナルを開いて、リポジトリで管理したいフォルダまで移動します。フォルダは空でも大丈夫です。
$ cd "フォルダのパス"
Windows Terminalをインストールしていれば、フォルダ内で右クリックしたところにある起動ボタンから起動すると楽です。開いた時の場所が作業ディレクトリの状態で開きます。

移動したら、git init
と入力してください。init
は、リポジトリを作成するコマンドです。
$ git init Initialized empty Git repository in C:/XXXXX/git_sample/.git/
このような表示が出てきたら作成完了です。
Windowsの場合は隠しフォルダを表示すれば、.git
フォルダがあることが確認できます。

ファイルを追跡対象に追加する準備をする
リポジトリを作成したらリポジトリ内にファイルやフォルダを適当に追加し、git add 場所
を入力しましょう。
$ git add .
勘違いしがちですが、git add
は新規ファイルを管理対象に追加するのではなく、どの更新を適用するかの対象に追加する、というものです。
つまり、既存ファイルでもgit add
しなければコミット対象になりません。
コマンドを実行しても何も表示されませんが、これでひとまず追跡対象に追加する準備ができました。
フォルダ指定やワイルドカードを利用する場合は、次のような挙動になります。
-
.
- カレントディレクトリ以下のすべてのファイル
-
*
(ワイルドカード)*
すべて*.txt
全ての.txt
ファイルfoo/*
foo以下の全て。foo/
も同じ結果foo/*.txt
foo以下の全ての.txt
ファイルfoo/*/hoge.txt
foo以下にあるhoge.txt
場所は、複数並べることができます。
# imagesフォルダとscriptsフォルダ全体が追跡対象に追加される git add images/ scripts/
追加されているか確認する際は、git status
と入力します。
> git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: readme.md Untracked files: (use "git add <file>..." to include in what will be committed) foo/ hoge/
この例では、readme.md
のみ追跡対象とした場合です。new file
として記録されていますね。
逆に、追跡対象にしなかった (addしなかった) ものは、Untracked files
に含まれています。
コミット
ファイルの更新、追加、削除などを行ったとき、コミットするまではまだ履歴に登録されていません。コミットをすることで現在の状態が履歴に追加されます。
コミットする
直前でgit add
して追跡対象に追加したと思います。次は、その状態を履歴に追加する必要があります。
git commit -m "コメント"
と入力し、コミットしましょう。
$ git commit -m "initial commit" [master (root-commit) ffb70a8] initial commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 readme.md
コミットが完了しました。変更が適用されています!
-m
でコメント付与は必ず行いましょう。なくてもコミットはできますが、チーム開発をするにあたって重要です。進捗の見える化、レビューのしやすさ、過去の状態に戻すときの場所の探しやすさ、そもそもどんな変更をしたかなど、多くの利点があります。必ずコメントをつける癖をつけておきましょう。
コミットをすることで履歴に追加されました。gitは過去のバージョンと比較したり、戻したりできることが強みの1つで、バージョン=コミット履歴です。そのため、”コミット前に戻す”、”このコミットと現在を比較する”、という風な言い回しをしばしばします。
別のファイルをコミットしてみる
次は、別のファイルをgit add
で追加し、もう一度コミットしてみましょう。
$ git add . $ git commit -m "secondary commit" [master 8e4f678] secondary commit 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo/bar/hoge.txt create mode 100644 hoge/fuga.txt create mode 100644 hoge/hige.md
コミットが追加されました。コミットの情報には、コメント、コミット者などが記録されています。
addとcommitを一気に行う
変更したファイルすべてをコミットしたい場合、つまり、git add -a
git commit
としたい場合、git commit -a
の1行に省略できます。
新規作成したファイルはgit commit -a
でも対象になりません。git add
する必要があります。
コマンドでgitを利用する場合はよく使います。
コミットを取り消す
コミット直後にミスに気がつくなど、ちょくちょくコミットを取り消したい場合があります。その場合は、次のようなコマンドを叩くと取り消せます。
-
git reset --soft HEAD^
- 手元の変更は残しておいて、コミットしたという事実だけを取り消す場合
-
git reset --hard HEAD^
- 手元の変更もなかったことにする場合。危険なのであまり使いません。
これは取り消すときのテンプレのようなものです。git reset
は、特定のコミット前に戻すコマンドです。soft
はローカルの状態はそのままにコミットの位置だけ変更し、hard
はファイルの状態全てもそのコミット前に戻すというものです。
HEAD^
は、直前のコミットを指します。git reset 種類 コミット位置
と指定して戻しているわけです。つまり、HEAD^
をそれ以外のコミットIDを指定すれば、もっと過去のコミットに戻ることもできます。
コミットIDは、git log
を実行すると見れます。
まとめ
ファイルをコミット履歴に追加するには、まずgit add "ファイルやフォルダ"
として、コミット対象に含めます。その後、git commit -m "コメント"
として、コミットします。
この後はGitHubにリポジトリを作成して活用していきましょう。
