Git Bashをちょっと使ってみる(3)

2020/01/19

Git

t f B! P L

前回は、

Git BashとコマンドプロンプトとPowerShellの違い

を学びました。なんか、ものすごく勉強したような気がします。
さて、今回から、いよいよGit Bashを使っていきます。どきどきですね。プログラマーらしくなれるでしょうか。

UnixのコマンドとGitのコマンドを区別する

Unixって、何なのか。さっき調べたところでは、古いOSだとか。そこから派生したOSがLinuxとか、MacOSなんだとか。そして例の黒いやつに、コマンド(命令)を打ち込んでコンピュータを操るのだとか。

あー、でもこんなことをあれこれ調べていくと、どんどん深みにはまってしまいます。
書きたいのはこんなことじゃありません。
Git Bashに打ち込むコマンドには2種類あるということです。

1. Unixのコマンド(Linuxのコマンドと同じようなものらしい)
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」という語なのかはよくわかりませんが、「ファイルにタッチしたよ(触ったよ)」という意味でしょうか。でも、「ファイルを新規作成せよ」というコマンドがあってもよさそうですけどね。不思議です。

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コマンドを使って、あちこちに移動するわけです。このことをしっかり覚えておけば、迷うことはありません。

と、知ったかぶりをしていますが、実は僕も、

WindowsでGitを始めたらまず確認!Git Bashの設定&ショートカット

で学んだばかりです。Git Bashの初期設定の仕方などの説明してあり、とてもいいページです。

まとめ

少しはプログラマーらしくなったでしょうか。少なくとも、意味もなく、黒い画面を出しておくと、見た人が勝手に、複雑なことをしているんだろうなと思ってくれます。実際にはほとんど何もできなくても。ふふふ。

今回は、コマンドにはUnixコマンド(Linuxコマンドもほぼ同じ)とgitのコマンドの2種類あることを勉強し、まずは前者のコマンドをいくつか学びました。

他にもいろいろコマンドはあるようですが、それを全部勉強してたら人生が終わってしまいます。ここらへんで打ち切って(実は僕も知っているのはこれくらい)、必要になったらそのつど学習することにしましょう。そうだ、そうだ。早く次に行こう。

QooQ. Powered by Blogger.