はじめに
就活中です。前職はGitLabに関係のある仕事をしてずっとGitLabを使っていました。
とはいえ多く使われているのはGitHub。GitHubも使えるようにならないと、と思って触り始めたのですが、いまさら気づきました。
IT系の経験はインフラ構築がメインで、コードを書いたことがほとんどないため、そもそも、Gitを使い慣れていない…
実はインフラ系の後、長くWeb制作・更新代行をやっていまして、その時はgitで管理していました。一度コンテンツを誤って消してしまった時はgitで助けられました。
でも、一人で仕事をしていたので、GitHubも使わず、pushもpullもプルリクもコンフリクトも未経験。
まー触っているうちに思い出してなんとかなるでしょ、と練習しはじめたけど、全然思ったように操作できません。
Git&GitHub入門!
そこで、初心に帰って勉強することに。 「わかばちゃんと学ぶ Git使い方入門」 を買いました!
わかばちゃん、よろしくね!
この本の内容を参考にしつつ、ほんっとに初級からやっていくことにしました。
最終目的
IaCに興味があって、Terraformを使いたくてUdemyの講座を受講しました。実践は未経験です。
TerraformのコードをGitで管理してGitHubやGitLabで便利にAWSでの環境構築ができるらしいので、そういうのを仕事レベルでできるようになりたいです(わかってないのでおかしいこと書いているかもしれません)。
環境
環境はWindows11です。
Git
わかばちゃんたちはSourcetreeを使っていますが、私はGit for Windowsを入れて使っていました。
VS CodeのターミナルのデフォルトをGit Bashにするとべんり。
参考:
VS Codeで利用できるGitの拡張機能を使うことにしました。検索したところ多くの人が使っているようだったので、この2つを入れました。
GitLens
Git Graph
Gitのリポジトリを作ってみる
Gitを入れた後の最初のこれらの設定は別途Git Bashで実行。
git config --global user.name "satokawa-san"
git config --global user.email "satokawa-san@example.com"
フォルダを開く(作成)
VS Codeを新規ウィンドウで開き、メニュー「ファイル」→「フォルダーを開く...」。
フォルダー選択画面が表示されます。フォルダを作成してある場合はそれを選択、まだ作っていない場合は左上の「新しいフォルダー」をクリックしてフォルダー名を入れます。
リポジトリを初期化する
左端の「ソース管理(Ctrl+Shift+g)」のアイコンをクリックするとこういう画面になります。上の「リポジトリを初期化する」をクリック。
するとこういう画面になりました。何が起きたんだろう。
エクスプローラ(Ctrl+Shift+g)で見てもからっぽなので、Ctrl + @
でターミナルを開いて、ls -la
で見てみる。
.git
ができています。準備はできたようです。
最初のコミット
でっかく表示されている「Branchの発行」ボタンを押してみたくなる気持ちになりますが、我慢してなにかファイルを作ってみます。
ここで試しにGit Graphでコミットグラフを見てみます。「ソース管理」の、ちっちゃいアイコン「View Git Graph」をクリック。
ではファイルを作って、最初のコミットをします。
ファイルを作る
エクスプローラから新規ファイル作成アイコンをクリックします。
わかばちゃんたちはお好み焼きのレシピだったので、それに倣って…gyoza.txtを作ります。
最初の工程を入力。ファイル名が緑で、「U」が付いてる。Untracked、ですね。
ソース管理のアイコンにも「①」がくっついていて、なにかしなきゃいけない雰囲気。それを押すとこんな風に。
ステージする
コミットする
メッセージの欄にコミットメッセージを入れて、「コミット」ボタンをクリック!
ここで再びGit Graphを見てみます。コミット一個が点一個。
コミット2つ目
次の一行を追加します。
さっきは「U」だったのに今度はファイル名の横に「M」が付いています。Modifiedですね。色もオレンジに。
あ、ステージするのを忘れてました。でもこのダイアログで「はい」を選べば大丈夫。
調子に乗ってどんどん行を追加しコミットします。
過去のコミットにチェックアウト
「わかばちゃんと学ぶ…」では、教授がお好み焼きにコーラを入れてしまうエピソードがあります。
わたしも過去に戻りたくなったので、同じようにチェックアウトをやってみます。
右クリックしたらメニューが表示されました。ここで「Checkout...」を選択してみます!
すると「いいんですか?detached HEADになりますよ?」と確認が。練習だから、やってみます。
ファイルを見ると、たしかにキャベツに砂糖を振る前までしかありません。
(なにもせず)最新のコミットにチェックアウト
過去を変えたいのですが、それにはまだ修行が必要そうなので、なにも触らず、一旦、最新のコミットをした状態に戻します。わかばちゃんたちもそうしていたし。
しかしここでちょっとはまりました。
このようにGit Graphの最新のコミットのメッセージ上で右クリックし、Checkoutを選択すると、戻るもののまたdetached HEADになってしまいます。
なので、mainブランチの 「main」の文字の上で右クリック して、Checkout Branchを選択します。
または、 「main」の文字をダブルクリック。
とりあえず、今回はここまで!
detached HEADって何?
直訳すると、「頭が取れた」状態。いったいなんなのか。こちらでわかばちゃんと教授が詳しく説明してくれていました。ふむふむ。
検索すると「detached HEADに気付かずコミットしてしまった」などの体験談がたくさん出てきて、detached HEAD状態は避けなければいけないらしいです。
ちなみに「わかばちゃんと学ぶ…」の本の中ではdetached HEADは「無職」と表現されてました。ブランチに所属しているのが有職ですかね。
実際に無職の私には刺さりますね。みんなに避けられ、無職中に詰んだ実績も職に就かなければ消える…。
おわりに
間違ったことをやっているかもしれませんので、おかしいところがあったらご指摘下さい。