Macでターミナルからgit commitしてもVisual Studio Codeが立ち上がらないWhy&How Do I do その2
gitがわからん自分のためのメモです。
前回
やりたいこと
デスクトップに新規作成したフォルダ内に、VS Codeで新規作成したマークダウンファイル(mdファイル)を格納してある。このmdファイルを、ターミナルからgitコマンドを打ち、最終的にGitHubにてプルリクしてレビューを受けたい。
困っていること
イニシャルコミットの際にVS Codeを開いてコミットメッセージを書きたいのだが、VS Codeが開かない。
試してみたこと
vscodeを開いてコマンドパレット( ⌘ + ⇧ + p ) にて
Shell Command:...を入力、インストール。
前回の時にも何度もやったはずなんですが、もう一度やってみました。
再試行
もう一度、新規ファイルの状態から、改めてやってみます。
ターミナルの立ち上げ
まずは、フォルダを右クリックし、ターミナルタブを開きます。(いきなりターミナル立ち上げてcdで移動してもいいけど、ノンプログラマにはやや敷居が高いと思われる)
ls -a コマンドによるディレクトリ内の状況確認
ls -a で、フォルダ(ディレクトリ)内にmdファイルしかないことを確認。
git status で何もリポジトリが無いことも確認。
リポジトリ作成 git init
まずはリポジトリを作成。
git init [ディレクトリ名] ※ディレクトリ名を省略するとカレントディレクトリにリポジトリを作成.
そんで、git status で確認してみます。
リポジトリが作成され、まだコミットされてないよ〜って状態になりました。
ls -a でディレクトリを確認すると、gitが新たに追加されたことがわかります。DS_Storeについては後回しにします。
GUIでフォルダの中身を見ると、gitは隠しファイルになっているで、
「command」+「shift」+「.」の同時押下で表示できます。
イニシャルコミット
リポジトリという入れ物ができたので、そこに更新内容を初めてコミットする=イニシャルコミットをしていきます。
問題の箇所はここでした。
前回、ここで git add .したあと、git commit でVS Codeが立ち上がって欲しいところが立ち上がらず、謎画面(のちに、それはviエディタ(UNIXの標準的なエディタ)というものだとわかった)に行ってしまうのでした。
とりあえず git commit -m "title" として凌いでいました。
ステージング git add
ステージングしてコミットしたいので、まずは
git add .
します。
「.」はカレントディレトクリを表すため、現在のディレクトリにあるファイルをリポジトリに入れるぜ、とここで宣言、意思表示してる感じでしょうか。
git add . した後に git status で状況を見てみます。
緑色の文字で、新規ファイルが待機状態であることがわかります。
イニシャルコミット git commit
いよいよ問題の箇所です。
まずは素直に
git commit
を打ってみます。
あっれ〜〜〜〜上手くいってる???
いや、いいんだけど、それでいいんですけど、あっれ〜〜〜???
なんなの、やっぱちゃんと寝てからやらないとなの??
日を置いて実施したこと、これを書きながらやったことで、だいぶ、どの手順で何をしているのかの理解を深められたのはよかったかな…
気を取り直して、コミットメッセージ入れていきましょうか……
ターミナルの方で
「Waiting for your editor to close the file...」
と言っているので、
メッセージ入れたら、保存して閉じます。
そうすると、ターミナルがバーっとメッセージを返してくれる。
git config --global user.name "Your Name"
git config --global user.email you@example.com
この辺りが気になりますが、一旦後回しにして、git statusで状況確認。
cleanです。
このままGitHubまでいきたいところですが、復習を兼ねて、作業用ブランチ作ってマージまでやってみましょう。
ブランチを作成する git branch
git branch [ブランチ名] でブランチを作って、
git branch で現在のブランチを表示してみます。
現在は、
a03 という名前のブランチと
master という名前のブランチがあります。
そして、アスタリスク*により、masterのブランチにいることがわかりました。
ブランチ切り替え git checkout
master から a03に移動してみます。
注意として、 上図のように check out としてスペースを入れてしまうと無効なコマンドとして認識されます。
git checkout した後、git branch でまた現在地を確認します。
git status でも、a03のブランチ上では、現在、コミットできるものがないことがわかります。
ブランチ上で作業
code . でエディタを開き、ちょろっと作業して保存してみます。
その後、git statusとこうなりました。
git add .
git commit
していきます。
co
commitした後にstatusを確認します。
cleanになっています。
マージ
git checkout master
git merge ブランチ名
git log --oneline
作業用のブランチa03をメインのmasterに統合=マージしていきます。
git statusで現在の状況を確認、
git checkout masterでマスタのブランチに移動
git branch で現在どのブランチにいるか確認
git merge ブランチ名 で、現在いるブランチに、コマンドで指定したブランチをマージ
git log --oneline で履歴確認
ローカルでの作業がこれで終わったので、あとはGitHubにプルリクです。
で、何で前回はcommitでVS Codeが立ち上がらなかったのか?
前回はかなり疲弊しかつ混乱してたのですが、状況としては
VS Codeが立ち上がって欲しいのにviが立ち上がっていた、でした。
code . では VS Codeが立ち上がるのに、git commitだとviになる、でした。
試したのは、下記でした。
Mac再起動
VS Codeのアンインストール、再インストール
vscodeを開いてコマンドパレット( ⌘ + ⇧ + p ) にて
Shell Command:...を入力、インストール。一晩寝る(というかしばらく仕事もあって放っておいた)
git config --global core.editor "code --wait"
これを試す前に解決してしまった…
また、うなむにさんやおーさきさんには、下記の通りコメントを頂戴しました。いつもありがとうございます!!!!
関連URL
https://qiita.com/grca3/items/0771099a6750840721b1
https://codechacha.com/ja/git-commit-msg-editor/
https://maku77.github.io/git/settings/editor.html
いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!