
バージョン管理システムGitを使う上で必須なのがコマンド操作。
もちろんSourcetreeのようにGUIで操作する事もできますが、基本となるCUIは抑えておきたい部分です。
苦手意識を持たずGitのコマンドを是非ここで覚えておきましょう!
Gitの基本サイクル
まず概念としてGitの超基本的な基本サイクルを覚えておきましょう!
用語は後で説明しますが、本当に基礎的な流れは
- ファイルやディレクトリの作成・編集・削除を行う
- ステージする
- コミットする
この3つです。

ステージ・・・?
コミット・・・?
何言ってんだこいつ・・・
まるで意識高い系のような用語笑。
しかしこの辺の用語は意識高い系のカタカナビジネス英語のアレではなく、英語を基本とするGitの世界では覚えておくべき用語です。

それ終わったらコミットしといて!
なんて使います、なんなら意識が低いGitユーザーも使います(僕のことです)。
この作業はまず貯蔵庫を作成するところから始まります。
リポジトリの作成
それでは実際にリポジトリを作ってみましょう、Gitはリポジトリ作成が一番最初の仕事です。
リポジトリはファイルやフォルダの作成・編集・削除が全て記録されるGitの核となる部分です。
まず適当なところにテストの作業用ディレクトリを作っていきますが、CUIに慣れる為にこれも全てコマンドで行って行きます!
Windowsの方はGit Bash、Macの方はターミナルを開きましょう。
まず自分が今どこに居るのかを確認します、これはCUI操作で非常に重要な事なので癖をつけておいて下さい。
$ pwd
まずはpwdコマンドを使って今いる階層を確認します(不安になったらとりあえずpwdと覚えて下さい)。
通常Git Bash、ターミナルを開いた直後なら/Users/ユーザーディレクトリ/に居るはずです(Windowsの場合頭に/c/がついていると思います)。
ではここでtestというディレクトリ(フォルダ)を作成しましょう。
$ mkdir test
これで/Users/ユーザー名/testというディレクトリができたはずです。
念の為本当に作成できているか確認してみましょう。
$ ls
色々ばばーっとでてくると思いますが、その中にtestがあればOK!
ではtestディレクトリに移動します。
$ cd test
cdコマンドは今いる場所から移動する非常によく使うコマンドです。
念の為移動がちゃんとできたか確認します。
$ pwd /Users/ユーザー名/test
こんな表示になれば移動に成功しています!
ではここにリポジトリを作成して行きます。
$ git init
たった1つのコマンドでリポジトリ作成ができます、便利ですね・・・!
リポジトリが作成されると隠しディレクトリとして.gitという名前のディレクトリが自動的に作成されます。
$ ls -la
.gitがあればOK、無事にリポジトリの作成ができました!
とりあえず現在何もファイルが無い状態なので、touchコマンドで空のindex.htmlを作っておきます。
$ touch index.html
ここまでの作業で
- /usr/ユーザー名/testディレクトリがある
- /testディレクトリ直下に/.gitがある
- /test直下に空のindex.htmlというファイルがある
- リポジトリの作成が出来た
という状態になりました。
ステージする
今の状態をgit statusコマンドで確認してみましょう。
$ git status On branch master No commits yet Untracked files: (use "git add ..." to include in what will be committed) index.html nothing added to commit but untracked files present (use "git add" to track)
こんな表示がされたと思います。
お気づきかも知れませんが、既にこの/testディレクトリはGitから見ると「git initされた時には無かったファイルができているぞ!」という状態です。
という事で「次のコミット時にindex.htmlを含めるよ!」という指示を与える必要があります。
ファイルやディレクトリを次回コミット時に含める!という作業をステージと言います。
ステージされたファイルやディレクトリはインデックスというコミット待ちの領域に保存されます(ファイルそのものが保存される訳ではなく、「コミットを待っているよ!」という情報が保存されます)。
$ git add index.html
git addコマンドでindex.htmlは次回のコミットに含まれるようになりました、これをステージと言います。
$ git status On branch master No commits yet Changes to be committed: (use "git rm --cached ..." to unstage) new file: index.html
さっきと表示が変わりましたね!
- Gitがindex.htmlという新しいファイルを検知した
- index.htmlがステージされ、インデックスに追加された
ステージングはコミット前の準備、言い換えればコミットの宣言です。
ではコミットとは何か、続けて見て行きましょう!
コミットする
では基礎サイクル最後の作業、コミットです。
コミットはステージされたファイルやディレクトリの変更記録を確定させる作業。
コミットを行う事で一連のサイクルが終了します。
$ git commit -m "新規ファイル作成" [master (root-commit) 99b3194] 新規ファイル作成 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 index.html
コミットはgit commitコマンドで行います。
オプション-mを付与するとコミットメッセージと呼ばれるコメントをつける事ができます。
ちなみにコミットメッセージが無いということはあり得ません、もし-mオプションをつけ忘れたらエディタが起動してコミットメッセージをつける事になります。
今回は初めてのコミットなのでコミットメッセージをわかりやすく日本語にしてみましたが、通例では英語で書く事がほとんどです(プロジェクト内でルール化される事が多いでしょう、逆に自分一人なら自分さえ分かればOK)。
コミットされたらgit statusはどんな結果が返って来るでしょうか?
$ git status On branch master nothing to commit, working tree clean
さっきと無事表示が変わり、nothing to commit(コミットする必要があるものは無い=変化があったファイルは無い)という表示に変わりました。
ではもう一度テスト的に、今度はindex.htmlに文字列を追加してステージ、コミットしてみます。
#index.htmlに文字列を追加
$ echo "<p>テスト</p>" >> index.html
#ステータス確認
$ git status
On branch master
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: index.html
#ステージする(今回は全てのファイルを表す.を指定しています)
$ git add .
#コミットする
$ git commit -m "コミットメッセージ"
[master eaf9caa] [update]insert massage.
1 file changed, 1 insertion(+)
ファイルの状態が変わったらステージしてコミットする、これで基本的な流れはマスターできました!
基本をおさらいして練習してみよう
「え?Gitってこれだけ?楽勝じゃん!」って思いました?
まあそんな訳ないんですけどね・・・笑。
でもGitの基本はこのサイクルです、基本的にこれを繰り返す事になります。
まずはテスト用で良いので
- ファイルやフォルダの作成・編集・削除を行う
- ステージする
- コミットする
この3つを徹底的に覚えましょう。
Gitでやれることは数多くありますが、この3つをマスターしていないとお話になりません。
次は「Gitのブランチを学ぼう!ブランチは難しくないとっても便利な機能です!」でもっと実践で使うコマンドを解説します!
コメント