目次
ソースコードのバージョン管理をGitHub&Git for windowsで行う
仕事で開発するとき、ソースコードのバージョン管理は必須です。
個人でやる場合は仕事ほど恩恵はないかもしれませんが慣れておいて損はありません。
今回は、リモートリポジトリは、GitHub、クライアント側は「Git for windows」でやる前提で、最低限のバージョン管理で使うGITコマンドをまとめます 。
Gitインストールと環境設定
インストールと環境設定は、以下の記事を参考に行ってください。
かつ。
GitHubへの登録済で、GitHubにリポジトリを作成してある想定で始めます。
なお、以後の説明はGitBashを使ってコマンドラインから操作する方法です。
VSCode上でGit機能を使う時についてはこちらにあります.
しかし、GitHubとのやりとりはコマンドラインから行うほうが確実です。
GitHubからローカルPCにクローン
最初は、GitHubからcloneします。
まず、ローカルPCにワーク用のフォルダを作ります。
そこをカレントにして、右クリックメニューからGitBashを起動します。
GitBashで以下のコマンドを入力します。
URLの部分はGitHubのリポジトリページの「clone or download」で表示されたURLをコピー&ペーストします。
説明の都合上。
リポジトリ名は「bokurepo」にします。
git clone https://github.com/xxxxx/bokurepo.git
クローンできると、カレントフォルダ上に「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」のようなフォルダを作って、それらをフォルダ毎対象外に登録したりしてます。
書き方は、こちらがわかりやすいので、リンクだけはります。
作業結果を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されていないフォルダやファイルが残っている状態。
こちらがAddされてコミット可能になっている状態です。
git statusではこんな感じに表示されます。
これで「to be committed」のなっていれば、あとは「commit」です。
git commit -m "first commit from feature-boku20190815"
-mの後ろはコミットメッセージです。
今回のサンプルを実行するとこんな感じです。。
あとは、何か追加・変更・削除等がある都度、同じことを繰り返します。
Git for windowsからGitHubにpush
Commitしただけでは、GitHubのリポジトリには反映していません。
Commitしたものを、GitHubの「origin/master」に反映させます。
pushします。
git push origin master
Git for windowsからGitHubに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が更新できてます。
Tagをpushすると、GitHubの「release」タグで一覧できます。
上記のタグ名(例だと0.1.0)をクリックすると、そのバージョンのソースがダウンロードできます。
GitHub側での修正をローカルに反映
WebのGitHub側を先に更新してしまった時に、pullで変更を取り込みます。
git pull
git pullはリモートリポジトリの変更点をローカルリポジトリに取り込む機能です。
一人だと、知らぬ間にリモート側が更新されているということはないですが、複数人で共有している場合は、毎日、朝いちばんに「git pull」するのが普通です。
Git for windowsでコミット履歴をみる
コミットした履歴は
git log
でみることができます。
オプションが色々あります。
こちらに見やすいまとめがあったので、リンクを貼ります。
あと。
git tag
これでタグ名を調べて、それを指定してピンポイントで探す方法もあります。
git show 0.1.0
これでtag0.1.0をつけたログだけが確認できます。
こんなもんですね。
とりあえず、一人でやってる分にはこれで困りません。
ではでは。
おまけ
ブランチを切って「A successful Git branching model」に沿った運用をする場合の子マント一覧はこちらです。