🐣

仮想環境とGitのエラー対処

2023/11/27に公開

私は最近、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を作ればいいじゃんと思いました。あの、追跡しないファイルを指定するやつ。ハッカソンの時にやってたから多分できる!

projectname\.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