あくまで独学でプログラミングを学んでいる限り、Gitはなかなかご縁がありません。一方で、何かとGitやGitHubの存在は目にする機会も多いので、いずれは使うことになるのだろうということもわかります。
実は、複数のパソコンでいろいろ作業をしていることもあり、勉強するための端末がその時間が取れたときでまちまちという点に悩んでいました。なので、ひとりGitで学習の進捗に合わせて写経したプログラムを共有できたらなあとは思っていたので、『ゼロから作るDeep Learning』を勉強し始めたのに合わせてGitも使ってみようと決断したわけです。
まあ、この用途からすればGoogle DriveでもOneDriveでもDropboxでもBOXでも、ファイル共有ができれば十分ではあります。が、どうせ触ってみたかったので、生意気にもGitでやろうと。生意気にも。
Git、GitHubについては、オンラインのコンテンツで勉強できないかなといろいろ見てきましたが、どうもきちんと学べる感じがしませんでした。途中まではできても、pushのところがうまくできなくてリモートリポジトリが作れなかったり、branchのところをあまり学べないままにpushすることになってしまったりして、うまく行きそうな感じがしない。
書籍については、ちょっと前のタイトルになってしまうと「仕様が変わってしまっていて、●ページから先に進めない」といったレビューも見かけたので、確かに難しいんだろうなあと。特にGitHubについては、わかっている人には問題なく付いていける仕様変更も、これから学ぶビギナーにとってはテキストと相違があるのはアジャストしにくい。なかなか書籍で対応するのが難しい分野でもあります。でも、『いちばんやさしいGit&GitHubの教本』の第2版がちょうど3月に出たところなので、いいタイミングかなと思いました。
GitHubのアカウント自体は持っていたので、
- Gitをあらためてインストールし、
- ローカルリポジトリを作って
- ステージングエリアにファイルとディレクトリを登録して
- ファイルの差分を確認して
- ファイル(とディレクトリ)をコミットする
というところまで、本を見ながらやってみました。リポジトリの中身は自分が共有したいファイルとディレクトリも含めてなので、本の通りではありませんが。
ちょっと戸惑ったところもありました。この書籍に従うと、いったんローカルのリポジトリを作ってコミットするところまではやりますが(Chapter3まで)、その次はサンプルとして用意されているリモートリポジトリをforkしてあれこれするという内容になっています(chapter4~7)。なので、自分の手元のファイルをpushしたかったんですが、それがストレートにできる構成にはなっていなかったのが、戸惑った原因かな。
ただ、GitHubの準備のところではSSH Keyの生成(ローカルでやる)や、GitHubへの登録について説明されていたので、実はやりたかったことのために必要なことは済むように構成されていました。あとはGitHub上でリポジトリを作ってみればまっさらのリポジトリのページに「
git remote add origin git@github.com:makostagram/********.git
git branch -M main
git push -u origin main
って入力するんだよ」とご親切に書いてあったので、無事にリモートにpushすることができました。はじめてうまくいったよ……。
今まで、なぜかgit branch -M main
をちゃんと解説してくれているドキュメントに行き当たれなかったので、これをやらずにpushばかりしてたんだということが、うまくできて初めてわかりました。何だろう、読解力が低いのかなー。
でも、1行目と3行目はただただそのまま打ち込んだだけですけどね。まあ、日本語に訳すと
リモートリポジトリにoriginを追加するよ。追加先はgit@mako...../.......gitね
mainっていうbranchを-Mする(作る)よ
originをmainブランチとしてpushするよ
ということかなあと理解しましたが…。このあたりの位置付けとオプションの意味は、これから勉強します(汗。
まだまだ穴だらけではありますが、これで写経も複数のパソコンで継続的にできるようになりました。さて、いろいろやってみるぞー。