Git BashとコマンドプロンプトとPowerShellの違い
を学びました。なんか、ものすごく勉強したような気がします。
さて、今回から、いよいよGit Bashを使っていきます。どきどきですね。プログラマーらしくなれるでしょうか。
UnixのコマンドとGitのコマンドを区別する
Unixって、何なのか。さっき調べたところでは、古いOSだとか。そこから派生したOSがLinuxとか、MacOSなんだとか。そして例の黒いやつに、コマンド(命令)を打ち込んでコンピュータを操るのだとか。
あー、でもこんなことをあれこれ調べていくと、どんどん深みにはまってしまいます。
書きたいのはこんなことじゃありません。
Git Bashに打ち込むコマンドには2種類あるということです。
1. Unixのコマンド(Linuxのコマンドと同じようなものらしい)
2. Gitのコマンド
2. Gitのコマンド
この区別がわかるまでに1週間ほどかかりました。人生の貴重な時間を失ってしまいました。
二つのコマンドはどうやって区別するのでしょうか。
1. Unixのコマンド
mkdir
cd
ls
touch
2. Gitのコマンド
git init
git add
git commit
git push
そう、何のことはない。2のgitがついたコマンドがGitを操るコマンドで、それ以外がUnixコマンドだということです。Unixのコマンドでは、フォルダを作ったり、別のフォルダに移動したり、そのフォルダの中をのぞき見たり、新しいファイルを作ったりすることができます。要するに、Windowsを自由自在に(?)操れるということです。すごい!
何度も言いますが、これがわかるまでに1週間かかりました。素人とはこんなものです。
Unixのコマンドを使って
さて、Git Bashを起動しましょう。
こんなのが出ます。ここはぼかしを入れてありますが、
Yojiroo Hirosaki@pc-name MINGW64 ~
$
となっています。緑色の名前とパソコン名があって、「MINGW64 ~」とピンクのがあります。「MINGW64」が何なのか。そんなことは知りません。興味があれば調べてください。「~」については後で説明します。
2行目の「$」はお金のことではありません。ドルなんか全然持っていません。
$は、この後に
$ ls
というふうにコマンドを打ち込んでいく、その目印です。
ではさっそくWindowsを操ってみましょう。
Yojiroo Hirosaki@pc-name MINGW64 ~
$ mkdir git-test
と打ち込んで、Enterを押してみます。
何事もなかったように、
Yojiroo Hirosaki@pc-name MINGW64 ~
$
と出るはずです。この黒いやつは愛想のないやつです。ミスがあれば教えてくれますが、うまくいけばすましています。つまり、何もエラーがでなかったというのは、ちゃんと命令が実行されたということを表しています。
「mkdir」は「make directory」のことで、「ディレクトリを作ってちょうだい」とパソコンに命令したのです。ディレクトリとはフォルダのことだと考えておけばいいでしょう。
つまり、「mkdir git-test」というのは、「git-testという名前のフォルダを作らんかい」という命令だったのです。
本当にパソコンが言うことを聞いたかどうか、確認してみましょう。
エクスプローラを開いて、
ローカルディスク(C:) > ユーザー > Yojiroo Hirosaki(ユーザーの名前)
をダブルクリックしていきます。すると、「Yojiroo Hirosaki(ユーザーの名前)」フォルダの中に、あ~ら、不思議、いつのまにか「git-test」フォルダができています。
このフォルダの中に何か入っているでしょうか。確認のために、ダブルクリックで開いてみましょう。何もありません。作ったのはフォルダだけですから当然です。
git-testの中にフォルダを作る
Git Bashに戻り、今度は、Yojiroo Hirosaki@pc-name MINGW64 ~と入力してやりましょう。
$ cd git-test
すると、
Yojiroo Hirosaki@pc-name MINGW64 ~/git-testとなり、上の行の「~」が「~/git-test」に変わります。
$
これは、今、おまえは「git-test」ディレクトリ(フォルダ)にいるぞということです。
cdは「change directory」のことで、cd git-testは、「git-testというディレクトリに移動するべし」という意味です。
ここでさらに、
$ mkdir git-test1と入力してみましょう。
調子に乗って、もう一つ、
$ mkdir git-test2と入力してみます。
エクスプローラでgit-testフォルダを開いて見ると、git-test1とgit-test2というフォルダができています。
すごいです。なんか、全能感に満たされます。この黒い画面で、今俺はWindowsを自在に操っているのだ!
ディレクトリを移動する
ここで、$ cd git-test1と入力すると、
Yojiroo Hirosaki@yojiroo-pc MINGW64 ~/git-test/git-test1と表示されます。これは、「今、git-test1フォルダに入ったよ」という意味です。
$
上の階層に戻るには、
$ cd ..あるいは
$ cd ../とします。
やってみましょう。
Yojiroo Hirosaki@yojiroo-pc MINGW64 ~/git-test上の行の右端がまた、「git-test」になっていますね。今、あなたはここにいるのです。今いる場所のことを、「カレントディレクトリ」と言います。
$
この黒い画面ではこんなふうにして、フォルダを移動します。
えっ、面倒くさいって? 確かに。
でも、プログラマーっぽくてかっこよくないですか。
ファイルを作成する
今度はファイルを作成してみましょう。
Yojiroo Hirosaki@yojiroo-pc MINGW64 ~/git-test
$ touch file1.txt
と、git-testディレクトリで、touchに続いて適当なファイル名「file1.txt」を打ち込むと、空のファイルが作られます。
touchは本来、後ろに記述したファイルの最終更新日を変更するコマンドです。でも、touchの後ろに指定したファイルが存在しなければ、ファイルが新規に作成されます。これを利用して、ファイルを作っているのです。
何で「touch」という語なのかはよくわかりませんが、「ファイルにタッチしたよ(触ったよ)」という意味でしょうか。でも、「ファイルを新規作成せよ」というコマンドがあってもよさそうですけどね。不思議です。
touchは本来、後ろに記述したファイルの最終更新日を変更するコマンドです。でも、touchの後ろに指定したファイルが存在しなければ、ファイルが新規に作成されます。これを利用して、ファイルを作っているのです。
何で「touch」という語なのかはよくわかりませんが、「ファイルにタッチしたよ(触ったよ)」という意味でしょうか。でも、「ファイルを新規作成せよ」というコマンドがあってもよさそうですけどね。不思議です。
git-testフォルダを開いて見てみましょう。ちゃんと「file1.txt」があります。ダブルクリックしてみると、空であることがわかります。
すごいですね。ファイルまであっさり作成できるんです。
ディレクトリ(フォルダ)の中身を見る
ここで、
Yojiroo Hirosaki@yojiroo-pc MINGW64 ~/git-test
$ ls
とlsコマンド(エルとエスです)を入れると、
file1.txt git-test1/ git-test2/
と表示されます。
lsコマンドは、「List directory」の略で、「ディレクトリの中身をリストにして表示せよ」という命令です。git-testフォルダには、file1.txtというファイルと、git-test1とgit-test2の二つのフォルダがあることを教えてくれています。親切なのです。
「MINGW64 ~」の「~」って何?
$ cd ..
と入力してみましょう。一つ上の階層に上がります。
Yojiroo Hirosaki@yojiroo-pc MINGW64 ~
$
となります。Git Bashを最初に起動したときも、こうなります。これってどこのディレクトリにいるんでしょうか。
これは、git-testフォルダが入っているフォルダだから、
Yojiroo Hirosaki
のフォルダですね。これは、Cドライブの「ユーザー」フォルダの中にあります。「ユーザー」と日本語になっていますが、実態は「Users」と英語です。日本語は見せかけだけなんです。つまり、
C:\Users\Yojiroo Hirosaki
です。
この「Yojiroo Hirosaki」がGit Bashを起動したときの最初のディレクトリ(フォルダ)です。つまり、「~」は「Yojiroo Hirosaki」なのです。最初の場所であるこのディレクトリを「ホームディレクトリ」と言います。ここから、cdコマンドを使って、あちこちに移動するわけです。このことをしっかり覚えておけば、迷うことはありません。
と、知ったかぶりをしていますが、実は僕も、
で学んだばかりです。Git Bashの初期設定の仕方などの説明してあり、とてもいいページです。
まとめ
少しはプログラマーらしくなったでしょうか。少なくとも、意味もなく、黒い画面を出しておくと、見た人が勝手に、複雑なことをしているんだろうなと思ってくれます。実際にはほとんど何もできなくても。ふふふ。
今回は、コマンドにはUnixコマンド(Linuxコマンドもほぼ同じ)とgitのコマンドの2種類あることを勉強し、まずは前者のコマンドをいくつか学びました。
他にもいろいろコマンドはあるようですが、それを全部勉強してたら人生が終わってしまいます。ここらへんで打ち切って(実は僕も知っているのはこれくらい)、必要になったらそのつど学習することにしましょう。そうだ、そうだ。早く次に行こう。