"BOKU"のITな日常

62歳・文系システムエンジニアの”BOKU”は日々勉強を楽しんでます

GitHub&Git for windowsで一人(個人)バージョン管理する/GitBashで使う最低限のコマンド

個人的に趣味でやってるプログラムでも、GitHubでバージョン管理はしたいという時に使う最低限のGITコマンドだけまとめます。

f:id:arakan_no_boku:20190811144704p:plain 

 

今回の前提

 

趣味で作ってるプログラムなどをバージョン管理する想定です。

ブランチ切ったりとか、面倒なことはしません。

リモートリポジトリは、GitHub、クライアント側は「Git for windows」です。

インストールと環境設はしてある想定で書きます。

arakan-pgm-ai.hatenablog.com

かつ。

GitHubへの登録済で、GitHubリポジトリを作成してある想定で始めます。

github.co.jp

help.github.com

  

GitBash(Git for windows)でローカルPCにクローンして状態を確認

 

最初は、GitHubからcloneします。

まず、ローカルPCにワーク用のフォルダを作ります。

そこをカレントにして、右クリックメニューからGitBashを起動します。

f:id:arakan_no_boku:20200411230616p:plain

GitBashで以下のコマンドを入力します。

URLの部分はGitHubリポジトリページの「clone or download」で表示されたURLをコピー&ペーストします。

f:id:arakan_no_boku:20190811160024p:plain

説明の都合上。

リポジトリ名は「bokurepo」にします。

git clone https://github.com/xxxxx/bokurepo.git

f:id:arakan_no_boku:20190811171037p:plain

クローンできると、カレントフォルダ上に「bokurepo」というリポジトリ名のフォルダができます。

そのbokurepoフォルダをカレントにします。

cd bokurepo

 

最初だけする設定

 

しなくてもいいですが、余計なメッセージなどでストレスをためないために、最初だけやっておくことです。

 

メールアドレス等の登録

 

GitHubで登録したemailアドレスと、ユーザ名を「--global」で設定をしておく必要があります。

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

これをしておかないと、git commitした時に「 Please tell me who you are、」と怒られます。

 

 コミットメッセージ用エディタ

 

コミットメッセージ入力忘れで、エディタが立ち上がってくることがあります。

デフォルトはVIMです。

嫌な場合は変更しときます。

以下は、自分の設定(さくらエディタ)例です。  

git config --global core.editor "'C:/Program Files (x86)/sakura/sakura.exe' -CODE=4"

 

Git の管理に含めないファイルを指定

 

.gitignoreというファイルを作っておきます。

エディタの設定ファイルとか、バージョン管理対象にしたくないものを指定します。

GitHubリポジトリを作成するときに、Pythonを選んで自動生成させるのが楽です。

あとは適宜、それに追記します。

自分の場合は、テスト用データや出力結果などのサイズの大きいものをバージョン管理に含めたくないので「inputs」とか「outputs」のようなフォルダを作って、それらをフォルダ毎対象外に登録したりしてます。

書き方は、こちらがわかりやすいので、リンクだけはります。

qiita.com

 

作業結果をAddしてCommit

 

新規追加したフォルダやファイルは、そのままではGitは認識しません。

ファイルやディレクトリの追加を、Gitに認識させるのは、addです。

まず、1ファイル(仮に「logsample.py」という名前にしてます)をaddする方法。

git add logsample.py

ただ、面倒なので、たいていはまとめて、みんなaddするこちらの方法を使います。

git add -A

ファイルの削除は。

git rm [削除したいファイル]

フォルダの削除は。

git rm -r [削除したいディレクトリ]

ファイルの名称変更(リネーム)は。

git mv [変更前ファイル名] [変更後ファイル名]

というようにします。

 変更の場合は、ファイルを上書きするだけで、Gitは認識します。

その状態を確認するのは「git status」です。

addされていないフォルダやファイルが残っている状態。 

f:id:arakan_no_boku:20190815153637p:plain

こちらがAddされてコミット可能になっている状態です。

f:id:arakan_no_boku:20190815153834p:plain

git statusではこんな感じに表示されます。

f:id:arakan_no_boku:20190822221144p:plain

これで「to be committed」のなっていれば、あとは「commit」です。

git commit -m "first commit from feature-boku20190815"

 -mの後ろはコミットメッセージです。

今回のサンプルを実行するとこんな感じです。。

f:id:arakan_no_boku:20190815160241p:plain

あとは、何か追加・変更・削除等がある都度、同じことを繰り返します。

 

GitHubにpush

 

Commitしただけでは、GitHubリポジトリには反映していません。

Commitしたものを、GitHubの「origin/master」に反映させます。

pushします。 

git push origin master

 

tagをつけてpush

 

あとで管理しやすいよう、節目節目のバージョンでTagをつけておく手もあります。

その場合の手順です。

仮に「0.1.0」というTagにします。

git tag -a 0.1.0 -m "release version 0.1.0"

git push origin master

git push origin 0.1.0

git tag も、-mでメッセージを与えていないと、エディタが立ち上がってきます。

WEBで確認すると、masterが更新できてます。

f:id:arakan_no_boku:20190815175357p:plain

Tagをpushすると、GitHubの「release」タグで一覧できます。

f:id:arakan_no_boku:20190815185650p:plain


上記のタグ名(例だと0.1.0)をクリックすると、そのバージョンのソースがダウンロードできます。

 

GitHub側で修正をしたものをローカルに反映

 

WebのGitHub側を先に更新してしまった時に、pullで変更を取り込みます。

git pull

git pullはリモートリポジトリの変更点をローカルリポジトリに取り込む機能です。

一人だと、知らぬ間にリモート側が更新されているということはないですが、複数人で共有している場合は、毎日、朝いちばんに「git pull」するのが普通です。 

 

コミット履歴をみる

 

コミットした履歴は

git log

でみることができます。

オプションが色々あります。

こちらに見やすいまとめがあったので、リンクを貼ります。

qiita.com

あと。

git tag

f:id:arakan_no_boku:20190815185952p:plain

これでタグ名を調べて、それを指定してピンポイントで探す方法もあります。

git show 0.1.0

これでtag0.1.0をつけたログだけが確認できます。  

こんなもんですね。

とりあえず、一人でやってる分にはこれで困りません。

 

おまけ

 

ブランチを切って「A successful Git branching model」に沿った運用をする場合の子マント一覧はこちらです。

arakan-pgm-ai.hatenablog.com

VSCode上でGit機能を使う時についてはこちらです。

arakan-pgm-ai.hatenablog.com

今回はこんなところで。

ではでは。