初心者が1からプログラミング(Python)を学んでみた Part8 - git command
今回の話はPythonのスクリプト上に書いて実行するものではなく、ターミナル上で行ってPythonの環境をより良く設定するものです。Part3 ではPythonを始める前に知っておくべきターミナル上のコマンドをほんの一部まとめました。⏬⏬
同じ様な形でこちらもターミナル上で行います。私はPythonを始めて1年以上経ちますが、今日の話はもっと早く知りたかった!!!と思うくらい便利だと感じたものです。
Git はなぜ便利
Git(ギット)はファイルをシステム上で管理し、全ての変更場所の履歴を残したり、他の人とファイルを共有して他の人の活動を見たり、自分の履歴を他の人にシェアしたりが簡単に管理できるシステムです。GitHubと呼ばれる他の人と共有できるシステムは今回は触れずに、また次回の機会にしたいと思います。今回は自分の活動記録を残し、自分で後から振り返れるシステムだけまとめます。
Python含め、プログラミング言語は一回で完成することはなく、トライアルとエラーを重ね完成に向けていくものです。プログラミングではエラーを1つずつ潰していってもまた違うエラーに当たったり、1回動いても変更したら動かなくなったり、戻って始めからやり直さないといけなかったりすることも非常に多いので、管理システムで一括で管理出来るととても便利です。私の場合、Gitのシステムを知ったのが非常に遅かったので今もまだ使い慣れていませんが、何度も1度は確かに動いた箇所まで戻りたいと思っても思い出せず戻れないことが多くありました。Gitを使っていたら何日も前のものでも復元が可能だそうです。
インストール
Gitのページを見つけました。⏬⏬
インストールのページを見つけましたが、GitをわざわざPC上に落とさなくても使えるそうなので、私は上記のページからのダウンロードはしてません。初期設定としてユーザー名とメールアドレスを登録してからGitを使い始めるのですが、ここでは割愛させて頂きます(私の時もエラーがあっていまいち分からなかったため、エンジニアの方に初期設定を手伝ってもらいました)。今回参考にしたGitの便利な機能一覧の参照元も英語で貼っておきます。⏬⏬
特によく使われる機能が見やすくまとめられたPDFのページもネットで拾ってきたので貼っておきます。⏬⏬
今回話すのはまとめられた機能一覧のほんの一部です。
git init: 初期化
まずGitを初期化します。ターミナル上でディレクトリを移動してから初期化するか、もしくは ”git init ディレクトリ名” でそのディレクトリ(もしくはフォルダ)内をGit上に記録します。他のフォルダ内は記録に残らないのでフォルダ毎にGitの環境をスタートさせてから使います。完了サイン後にさまざまなGit機能が使えるようになります。
git add ファイル名: ファイル追加
Git上に記録したいファイルを毎度追加します。新しくファイルを作ったらまずやっておくと、後々履歴が必要な時に便利になります。ターミナルにいれたら何も起こらずに静かに終わりますが、それでOKです。フォルダ内の全てのファイルを一気にGit上に追加する場合は、”git add . ”(ピリオドを最後に追加)で出来ます。ただし、Gitで管理出来るファイルには限りがあるので例えば ”.png”(画像ファイル)なんかは追加されても変更履歴が残りません。
git status: ファイル管理
フォルダ内のファイルのGit状況を確認するのに使えます。Gitに追加済みのファイルと未追加のファイルを一覧で示してくれます。
写真の前半、緑の部分が”git add”を使って個別にシステム上に追加されたファイルで、後半赤い部分が同じフォルダ内で(ディレクトリ内で)まだ追加されていないファイルを示しています。
git commit: システム上に記録
追加されたファイルをGit上に登録して変更履歴を追うシステムです。追加しただけではファイルが登録されただけで中身の登録はされていません。”git commit”の機能を使って、随時変更点を記録する必要があります。Pythonのスクリプトを動かして成功した都度”git commit”を行うことで成功したファイルが残されていくことになります。
”git commit”でエンターをした場合、前回からの変更点が一挙に出されます。一番下に好きなメッセージが入れられるので変更点等をメモしておくといいと思います。ただし、”git commit”の後は”:wq”または ”:wq!”でエディターを抜けて元のターミナルに戻るそうです。(よく分かっていません)
git commit -m “メッセージをここに入れます”: メッセージ付きで保存
私の場合、”git commit”をやってエディターから抜けられなくなるのが面倒なので、メッセージ付きの”commit”をすることでエディターを開かず省略して、保存するようにしています。” で挟まれた部分にメッセージ入力ができるので、前回のコミットからの変更点や今回のコミットの意味を入れると後々見やすくなります。
VSCode上でgit commit
よく使う”git commit”の機能がVSCode上でできることも確認しました。これで毎度ターミナルに行かなくても保存が簡単にできます。(下参照)
①:VSCode横のメニューから3つ目を選択。
②:全てのディレクトリ名が出されるので今保存したい場所を確認。メッセージボックスが出されていることを確認。
③:残したいメッセージを入れてチェックマークで完了。✅
④:ディレクトリ横の…ボタンでメニュー確認。今回は触れてませんが、”git commit”の種類によって段階的にcommitなど細かい指定も可能。
git rm ファイル名: ファイル削除
”git add”の逆でシステム上からいらないファイルの削除も可能です。システムのデータや容量に制限があるわけではないと思うので、必要はないと思いますが、他の人とシェアしたり共同でGitのシステムを使う場合は、必要かもしれません。
git log: 履歴確認
”git log”で”commit”した履歴を一覧で表示します。こちらに残るのはシステム上に残した”commit”済みのファイルです。追加しただけのファイルは表示されません。
”git log -p”(ハイフンとpを追加)で”commit”したファイルとともにその内容を一覧で確認できます。前回の”commit”時の変更点や、数日前の変更点を確認できます。
git diff ファイル名(1つ) / ファイルの数字(2つ): 違いを表示
”git diff” にファイル名を足すことで直前のファイルの変更点を見れます。新たに付け足された部分を’+’で削除したコードを’ー’で表しています。
”git log”で一覧を確認した際に、”commit”の後に英数列が表示されます。この英数列は全く同じでない限り重なることはなくそれぞれ独自の情報を保持したものになっています。こちらの”commit”毎の情報を使うことによって、”commit”から”commit”への変更点が確認できます。直前のものではなく、数日前や数ステップ前の”commit”内容と今回の内容などを比較したい場合は、”git diff”に比べたいファイル情報をコピペして並べます。(2つのファイルの間は1スペース空ける。)
今回の話は、Pythonではありませんでした。次回はPythonに戻りたいとおもいます。(不定期)
それでは。