1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VS CodeでGitに再入門してみる (ローカルリポジトリのみの作業)

Posted at

はじめに

就活中です。前職は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を新規ウィンドウで開き、メニュー「ファイル」→「フォルダーを開く...」。
image.png

フォルダー選択画面が表示されます。フォルダを作成してある場合はそれを選択、まだ作っていない場合は左上の「新しいフォルダー」をクリックしてフォルダー名を入れます。
image.png

リポジトリを初期化する

左端の「ソース管理(Ctrl+Shift+g)」のアイコンをクリックするとこういう画面になります。上の「リポジトリを初期化する」をクリック。
image.png
するとこういう画面になりました。何が起きたんだろう。
image.png
エクスプローラ(Ctrl+Shift+g)で見てもからっぽなので、Ctrl + @でターミナルを開いて、ls -laで見てみる。
image.png
.gitができています。準備はできたようです。

最初のコミット

でっかく表示されている「Branchの発行」ボタンを押してみたくなる気持ちになりますが、我慢してなにかファイルを作ってみます。

ここで試しにGit Graphでコミットグラフを見てみます。「ソース管理」の、ちっちゃいアイコン「View Git Graph」をクリック。
image.png

まだコミットがないですよとメッセージがでました。
image.png

ではファイルを作って、最初のコミットをします。

ファイルを作る

エクスプローラから新規ファイル作成アイコンをクリックします。
image.png

わかばちゃんたちはお好み焼きのレシピだったので、それに倣って…gyoza.txtを作ります。

image.png

最初の工程を入力。ファイル名が緑で、「U」が付いてる。Untracked、ですね。
image.png

ソース管理のアイコンにも「①」がくっついていて、なにかしなきゃいけない雰囲気。それを押すとこんな風に。
image.png

ステージする

gyoza.txtの右の「+」を押します。
image.png

表示が変わり、ファイル名の横が「U」から「A」に。
image.png

コミットする

メッセージの欄にコミットメッセージを入れて、「コミット」ボタンをクリック!
image.png

表示が変わりました。
image.png

ここで再びGit Graphを見てみます。コミット一個が点一個。
image.png

コミット2つ目

次の一行を追加します。

image.png

さっきは「U」だったのに今度はファイル名の横に「M」が付いています。Modifiedですね。色もオレンジに。

同様にメッセージを入れてコミットのボタンを…
image.png

あ、ステージするのを忘れてました。でもこのダイアログで「はい」を選べば大丈夫。
image.png

調子に乗ってどんどん行を追加しコミットします。

過去のコミットにチェックアウト

「わかばちゃんと学ぶ…」では、教授がお好み焼きにコーラを入れてしまうエピソードがあります。
わたしも過去に戻りたくなったので、同じようにチェックアウトをやってみます。

image.png
※砂糖じゃなくて塩を振りたかった

ニラを準備した時点まで戻ってみたいのです。
image.png

Git Graphだとこのようになっています。
image.png

右クリックしたらメニューが表示されました。ここで「Checkout...」を選択してみます!
image.png

すると「いいんですか?detached HEADになりますよ?」と確認が。練習だから、やってみます。
image.png

こんな状態になりました。
image.png

ファイルを見ると、たしかにキャベツに砂糖を振る前までしかありません。
image.png

(なにもせず)最新のコミットにチェックアウト

過去を変えたいのですが、それにはまだ修行が必要そうなので、なにも触らず、一旦、最新のコミットをした状態に戻します。わかばちゃんたちもそうしていたし。

しかしここでちょっとはまりました。
このようにGit Graphの最新のコミットのメッセージ上で右クリックし、Checkoutを選択すると、戻るもののまたdetached HEADになってしまいます。
image.png

なので、mainブランチの 「main」の文字の上で右クリック して、Checkout Branchを選択します。
または、 「main」の文字をダブルクリック。
image.png

こうなりました。
image.png

ファイルの中身も、戻っています。
image.png

とりあえず、今回はここまで!

detached HEADって何?

直訳すると、「頭が取れた」状態。いったいなんなのか。こちらでわかばちゃんと教授が詳しく説明してくれていました。ふむふむ。

検索すると「detached HEADに気付かずコミットしてしまった」などの体験談がたくさん出てきて、detached HEAD状態は避けなければいけないらしいです。

ちなみに「わかばちゃんと学ぶ…」の本の中ではdetached HEADは「無職」と表現されてました。ブランチに所属しているのが有職ですかね。
実際に無職の私には刺さりますね。みんなに避けられ、無職中に詰んだ実績も職に就かなければ消える…。

おわりに

間違ったことをやっているかもしれませんので、おかしいところがあったらご指摘下さい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?