ここでは、基本的なコマンドついてのもう少し詳しい説明を書いて行きます。
最初はすべて理解する必要はないので、なんとなく理解しておきましょう。
ここでリポジトリを作るときにも出てきた add, commit とは一体何なのかを説明します。
まずは add ですが、Git にはインデックスという「どのファイルを管理対象にするか」を記録するエリアがあります。そこにファイルやフォルダを追加(add)するためのコマンドです。
そして commit とは、ディレクトリやファイルの追加・変更・削除等を記録したひとかたまりのことをいいます。
言い方を変えると、add でインデックスに追加された変更をログとして記録しているものです。
この commit がとても重要です。commit すると commit した時点の最新インデックスと、一つ前の commit を比較し、変更点を記録します。commit を元に、過去のある時点の状態に戻すこともできます。commit にはメッセージをつけることができ、過去の commit を見た時にどのような変更がされたのかをわかりやすくするために「定型的で簡潔」に書きます。
add の使用例
// 今いるディレクトリ以下のすべてのファイル、ディレクトリを add
$ git add .
// リポジトリ全体のすべてのファイル、ディレクトリを add
$ git add -A
// 変更されたファイルを add(新しく作ったファイルは add されない)
$ git add -u
// 任意の拡張子のファイルすべてを add
$ git add \*.[任意の拡張子]
// 追加されるファイルを調べる
$ git add -nどのファイル、ディレクトリを add したいかを確認して使っていきましょう。
commit の使用例
// コメントをつけて commit
$ git commit -m "[コミットメッセージ]"
// 特定のファイルのみを commit
$ git commit [ファイル名]
// 今いるディレクトリ以下のすべてのファイル、ディレクトリを commit
$ git commit .
// リポジトリ全体のすべてのファイル、ディレクトリを commit
$ git commit -a
// 直前の commit を取り消す
$ git commit --amend-m を付けないとエディタが起動し、そこでコミットメッセージを入力しないといけないので、vim に慣れてない場合は-m をつけましょう。
コマンドは以下のように使うこともできます。
例)
// コミットメッセージをつけて特定のファイルをコミット
$ git commit -m "[コミットメッセージ]" [ファイル名]
// 現在のディレクトリ以下のすべてのファイルをコミットメッセージをつけてコミット
$ git commit . -m "[コミットメッセージ]"ちなみに、-mを指定しない場合には以下のようなファイルが開かれます。
この一行目からコミットメッセージを書いて、保存しファイルを閉じたらコミットが完了されます。
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch main
# Your branch is up to date with 'origin/main'.
#
# Changes to be committed:
# modified: README.md
#また、コミットメッセージは複数行に渡って書くことができ、以下の様に書きます。
1行目: コミットメッセージの概要
2行目: 空白
3行目: コミットメッセージの詳細
何かコミットに対してメモすることがある場合や、変更理由があまりにも長くなる場合には 3 行目を使いましょう。
ここでは push, pull のもう少し詳しい説明をします。
先ほどとりあえずでコマンドを覚えたと思いますが、origin ってなに?など思っていると思います。
実は
$ git push origin [ブランチ名]をもっと詳しく書くと
$ git push [リモートサーバの URL] [ローカルのブランチ名]:[リモートのブランチ名]となります。つまり、origin とはリモートサーバの別名なのです。
リポジトリをつくったときに
$ git remote add origin [コピーしたリンク]をしたと思います。
これはリモートサーバの URL に “origin” というニックネームをつける、というコマンドになります。
これにより先程のコマンドが origin(リモートサーバ)に push するという意味になるということがわかったと思います。
次に [ローカルのブランチ名]:[リモートのブランチ名] の説明をします。
これは名前の通り、ローカルの[ローカルのブランチ名]ブランチをリモートの[リモートのブランチ名]ブランチに push するという意味になります。
この時ローカルとリモートのブランチ名が同じならばそのブランチ名だけで指定することができるので、
$ git push origin [ブランチ名]これだけで大丈夫ということになります。
ローカルの作業中に間違えて別のブランチでコミットしていた、という時に正しいリモートブランチに push することが可能になります。
この応用として以下はリモートブランチの削除コマンドとなります。
$ git push origin :[リモートのブランチ名]なぜ削除になるのかというと、「何もないものをリモートのブランチに push する」というコマンドになるので、「リモートブランチの削除」と同義になります。
また、リポジトリを作った時に
$ git push -u origin mainをしたと思います。この“-u”をすることによって、origin と main がデフォルトになります。
なので、main に push や pull するときには
$ git push
$ git pullで大丈夫になります。
個人的にpushをするときには、
$ git push origin HEADをよく使っています。
add, commit, push, pull はよく使うので、この内容は頭に入れておいてください。