仮想環境とGitのエラー対処
私は最近、Mac(仮想環境:Anaconda)でDjangoを使ったWeb開発に挑戦しています。
覚えたてのGitも使って頑張っています。
ところが、今日は学校の授業でWindowsを使うので、Macを自宅に置いてきてしまいました。悲しい。
そこで、学校に持ってきてたWindows(仮想環境:venv)でgit cloneと仮想環境構築を試してみたのですが、問題が発生したので、明日の自分のために記録しておきます。
1. venvが作成したえぐい量のファイルをGitが追跡しそうになってる
# リモートリポジトリからクローン
C\:Users\username>$ git clone https://github.com/username/projectname.git
# 仮想環境を以下コマンドで構築
C\:Users\username\projectname>$ python -m venv myvenv
C\:Users\username\projectname>$ myvenv\Scripts\activate
無事に環境入れた~と思ったら、VSCodeのGit拡張機能にプッシュ通知が出て、プロジェクト内の変更が6000を超えたと言われてしまいました。
venv構築するときに自動で生成される大量のファイルですね。
これGitHubにpushしたらまずいんじゃないかと直感し、おぼろげな記憶を辿って.gitignoreを作ればいいじゃんと思いました。あの、追跡しないファイルを指定するやつ。ハッカソンの時にやってたから多分できる!
/myvenv
*.log
*.pyc
__pycache__/
とりあえず/myvenvに加えて、.logや_.pyc、pycacheを無視しとけば大丈夫な気がする。
sqlite(DB)はあとでいいや。という感じで作りました。
.gitignoreのおかげで、無事に追跡されなくなり、6000と出ていた変更は1まで減りました。
正常です。拍手👏
2. commitしようとしたら拒否された
二個目。普通にcommitしようとしたら、以下のように言われました。
C\:Users\username\projectname>$ git commit -m "first commit"
*** Please tell me who you are.
Run
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: no email was given and auto-detection is disabled
普段Windows PCの方でGitを使っていないからか、Gitにユーザ名とメアドを入力して設定しなければならないようです。よくわからん。VSCodeはGitHubのアカウントでログインしてるんだけど、それとは違うみたいですね。
C\:Users\username\projectname>$ git config user.email "you@example.com"
C\:Users\username\projectname>$ git config user.name "Your Name"
上記コマンドで無事解決。
Windowsからもpushすることができました。やったね。家より学校の方が捗るよね。
ちなみにユーザ名の設定に関する公式ドキュメントはこちらになります。
結論
勉強になってよかったけど、venvよりAnacondaのほうが楽な気がしました。
用途にもよりますが、AIも視野に入れてWeb開発をするのであれば、機械学習系が充実している(らしい)Anacondaが良いのではないでしょうか。
Discussion