20210910のGitに関する記事は6件です。

環境毎でGit除外したいファイルは.git/info/excludeに追記する

環境毎でGit管理したくないファイルがある 管理したくない環境: サーバ側 $ ls -al . .. .git .gitignore README.md docker └default.conf ←管理したくないファイル docker-compose.yml src 方法: 各リポジトリの.git/info/excludeに追記 # git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ docker/default.conf ←追記 反映させる: $ git update-index --assume-unchanged docker/default.conf きっかけ: サーバ側だけdefault.confを変えたかったから。 詳細: ローカル環境のdefault.confは80番ポートのままで、サーバは常に443ポートにリダイレクトさせる為。 サーバのdefault.confはこれ server { server_name example.jp; listen 80; # 全てのリクエストをSSLサイトにリダイレクト location / { return 301 https://$host$request_uri; } } server { server_name example.jp; listen 443 ssl; ssl_certificate /etc/letsencrypt/live/example.jp/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.jp/privkey.pem; root /var/www/html/public; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; } ローカル環境のdefault.confはこれ server { listen 80; server_name localhost; root /var/www/html/public; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; } 結果 サーバでdefault.confを変更してもgit pushしなくて良くなった!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

環境毎でGit管理したくないファイルを.git/info/excludeに追記する

環境毎でGit管理したくないファイルがある 管理したくない環境: サーバ側 $ ls -al . .. .git .gitignore README.md docker └default.conf ←管理したくないファイル docker-compose.yml src 方法: 各リポジトリの.git/info/excludeに追記 # git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ docker/default.conf ←追記 反映させる: $ git update-index --assume-unchanged docker/default.conf きっかけ: サーバ側だけdefault.confを変えたかったから。 詳細: ローカル環境のdefault.confは80番ポートのままで、サーバは常に443ポートにリダイレクトさせる為。 サーバのdefault.confはこれ server { server_name example.jp; listen 80; # 全てのリクエストをSSLサイトにリダイレクト location / { return 301 https://$host$request_uri; } } server { server_name example.jp; listen 443 ssl; ssl_certificate /etc/letsencrypt/live/example.jp/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.jp/privkey.pem; root /var/www/html/public; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; } ローカル環境のdefault.confはこれ server { listen 80; server_name localhost; root /var/www/html/public; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; } 結果 サーバでdefault.confを変更してもgit pushしなくて良くなった!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

WSL2でVPNをつないでいる状態だとDockerコンテナからGit pull/pushができない (wsl2 + docker環境構築手順書付)

はじめに おそらくこの記事を見ている方はこの記事衝撃的だったかと思います。 Docker "Desktop" の商用利用は250名以上の社員かつ$10M/yearの売り上げがある組織では有料サブスクリプションが必要になり、遅くとも来年2022年1月末までに契約が必要 とのことで、仕事でDocker Desktopを利用している方で何か別のに乗り換える必要がでてきた方も多いのではないかと思います。 私はWSL2(Ubuntu20.04)にDockerをインストールすることで、Docker Desktopから卒業することにしました。 以下の手順で環境構築を行いました。 しかし、会社で利用するとVPN接続が必須になり、WSL2のコンテナ上からGit pull/pushができなくなってしまいました。 こんな感じのエラーが出ます。(引用) 140.82.121.4 port 22: Connection timed out fatal: Could not read from remote repository. ということで、まずはこの問題の解決方法を紹介した後に環境構築手順も載せたいと思います。 解決方法 まず、WSLの起動時にresolv.confを再生成されないようにするを参考に、wsl2の設定をしていきます。 Ubuntu20.04を開きます。 まずはwsl.confを編集していきます。 $ sudo vi /etc/wsl.conf そして以下の内容を下に追加します。 [network] generateResolvConf = false そのあと、コマンドプロンプトを起動してUbuntu20.04を再起動させます。 $ wslconfig /t Ubuntu-20.04 再度Ubuntu20.04を起動して、resolv.confを編集します。 $ vi /etc/resolv.conf resolv.confのすでに書かれている内容をすべて消して、以下を追加します。 nameserver 8.8.8.8 再度、コマンドプロンプトでUbuntu20.04を再起動します。 $ wslconfig /t Ubuntu-20.04 ここまでできたら、次はdockerのネットワーク設定をします。 今回なぜVPNにつながらないかというと、VPNとコンテナ内のmtuが異なっているからです。 コンテナ内のmtu $ ip addr show dev eth0 | grep mtu 147: eth0@if148: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1200 VPNのmtu (コマンドプロンプトで実行) C:\Users\jinwa>netsh interface ipv4 show interfaces Idx Met MTU 状態 名前 --- ---------- ---------- ------------ --------------------------- 63 25 1400 connected VPNの名前 コマンドの参考はこちらからしました コンテナ内はmtuが1500に対して、VPNは1400でした。 ですので、mtuをコンテナ内で1400以下に設定する必要があります。 そこで、docker-compose.ymlの一番下にネットワーク設定を加えます。 docker-compose.yml (省略) networks: default: driver: bridge driver_opts: com.docker.network.driver.mtu: 1200 docker runを使っている場合はオプションでmtuを設定できます。 ちなみにこの設定は/etc/sysconfig/docker-networkに書いても大丈夫だそうです。 docker コンテナのMTUを変更する - Changing container MTU on docker ここまでできたら、docker-compose upをします。 docker-composeでポートが使われているというエラーがでたら、docker-compose downしてから試してみてください。 Portが衝突したときにこちらを参考にしました また、Docker Desktopが動いているとエラーになるので終了しているかも確かめましょう。 これでコンテナ上からVPNを経由してGitに接続できるようになりました。 WSL2のDocker環境構築手順 今後、会社で環境構築を教えるたびに調べるのは面倒なのでまとめておきます。 まず、Ubuntu20.04をインストールします。 Windowsの検索窓からMicrosoft Storeを調べて、クリックします。 Microsoft Storeのページが表示されたら検索窓から、Ubuntu 20.04 LTSを検索します。 そのあと、インストールをクリックします。 終わったら起動をクリックします。 画面が開きましたら、ユーザー名とパスワードの設定を行います。 なんでもよいですが、注意としては設定中にこの画面を閉じないようにしてください。 Rootユーザーが作成されてしまい、ユーザー作成ができなくなります。 ユーザー名(ここではwatanabejin) パスワードを同じの2回入力(表示されないので注意) できると以下のような出力があります。 1 update can be applied immediately. To see these additional updates run: apt list --upgradable The list of available updates is more than a week old. To check for new updates run: sudo apt update This message is shown once a day. To disable it please create the /home/watanabejin/.hushlogin file. watanabejin@jinwa:~$ 次にdockerをインストールします。 $ sudo apt-get update # ここでパスワードを求められるので先ほど設定したのを入力 # Dockerのインストール (安定板) $ curl https://get.docker.com | sh # しばらく待つ dockerがインストールできたか確認します。 $ docker version Client: Docker Engine - Community Version: 20.10.8 API version: 1.41 Go version: go1.16.6 Git commit: 3967b7d Built: Fri Jul 30 19:54:27 2021 OS/Arch: linux/amd64 Context: default Experimental: true Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 出力されていればOKです。今回は20.10.8が入りました。 そのあと、dockerデーモンを起動します。 $ sudo service docker start # * Starting Docker: dockerとでればOK $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 動いていることが確認できました。 いまの状態ですと、dockerコマンドを実行する際に常に先頭にsudoを付ける必要があるのでつけなくてもいいように設定します。 $ sudo gpasswd -a $USER docker そしてウィンドウを消してUbuntu20.04を再起動させます。 再度Ubuntu20.04を起動して、dockerデーモンを起動します。 $ sudo service docker start # パスワードを入力 そのあとで、先ほどのコマンドをsudoなしで行います。 $ docker ps 実行できれば成功です。 次にdocker-composeをインストールします。 インストールはここを参考にしました $ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose インストールできたかを確認します。 $ docker-compose --version docker-compose version 1.26.0, build d4451659 docker-compose 1.26.0が入っておりました。 この環境Ubuntu20.04を起動するたびにdockerデーモンを起動する必要があるためそこを起動時に実行するように設定します。 $ sudo vi .bashrc 以下の内容を下に追加します。 sudo service docker start そして、Ubuntuのウィンドウを消して、再度起動します。 すると最初にパスワードを求められます。.bashrcでsudoコマンドを使っているためです。 パスワードを入力して、* Starting Docker: dockerと表示されれば成功です。 Gitもいれますが、既に入っています。入っていない場合は以下のコマンドで入れます。 $ git version # 入っていれば表示される $ sudo apt-get install git # なければインストール Gitを使うたびにユーザー名やパスワードを入れたくないので設定しておきます。 $ git config --local user.email メールアドレス $ git config --local user.name ユーザー名 $ config --local user.password パスワード 私はコンテナの中でgitを使うため以下をコンテナ内で行っています。 $ git config --global user.email メールアドレス $ git config --global user.name ユーザー名 $ config --global user.password パスワード $ cat ./git/config # 設定されたかの確認 では、dockerのファイルを用意してdocker-compose upをしてみます。 まずは作業用ディレクトリを用意しました $ cd /home/Ubunt20.04のユーザー名/ # 私の場合cd /home/watanabejin/ $ mkdir workspace # workspaceディレクトリを作成 (名前は自由) $ cd workspace 作成したディレクトリ内で試しにPython環境を作ります。 ここからはVSCodeで行います。まず拡張機能からremote wslをインストールします。 そして左メニューのディスプレイマークからリモート...の横のドロップダウンリストでWSL Targetsを選択します。 そして、Ubuntu-20.04の横にあるディレクトリマークをクリックします。 すると別ウィンドウが開きます。これがUbuntu20.04の中になります。 先ほど作成したディレクトリを開きます。 ctrl + k + oで上にディレクトリが表示されるので、先ほど作成したディレクトリを選択してOKを押します。 ここからはいつものVSCodeの使い方になります。 試しにPythonのDocker環境を作ります。 こちらを参考に作ります 以下のファイルを作成します。 /workspace ┣ Dockerfile ┣ docker-compose.yml FROM python:3 USER root RUN apt-get update docker-compose.yml version: '3' services: python3: restart: always build: . container_name: 'python3' working_dir: '/root/' tty: true そして以下のコマンドでコンテナを起動します。 $ docker-compose build $ docker-compose up -d # コンテナに入る $ docker exec -it python3 bash これで環境構築終了です。 コンテナ内でVPN接続を使う場合は上を参考にここから設定してみてください。 おわりに 需要がありそうということで、最近乗り換えたときの内容をそのまま記事にしてみました。 VPNの接続はたまたまできたというかんじなので設定が正しいかは各自判断お願いします。 参考 WSLの起動時にresolv.confを再生成されないようにする using nord vpn connection - unable to clone and push repositories to github from wsl2 #6018 docker コンテナのMTUを変更する - Changing container MTU on docker VPN 接続時に WSL2 の SSH がハングアップした場合の解決方法 docker コンテナのMTUを変更する - Changing container MTU on docker 【Docker】Rails+MySQLの環境をDockerで構築中「ポートの衝突」に遭遇してから解決するまで dockerで簡易にpython3の環境を作ってみる WSL2 内の Ubuntu 20.04 で VPN をつないだときだけ ssh できない WSLからDocker Desktop for Windowsを使う 待ってました CUDA on WSL 2 Dockerコマンドをsudoなしで実行する方法 Ubuntu 20.04へのDocker Composeのインストールおよび使用方法 UbuntuにGitをインストールする 1.6 使い始める - 最初のGitの構成
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

業務で使うようになったgitコマンド

最近よく使うコマンド達 ちょくちょく忘れるのでメモ git pull --rebase rebaseするときに使う 単純なpullよりも履歴が綺麗になるらしい(実感はなし) https://kray.jp/blog/git-pull-rebase/ git submodle update --init --recursive 別管理してるgitリポジトリをupdateするために使う(DBとか)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

業務で使うようになったコマンド集

最近よく使うコマンド達 ちょくちょく忘れるのでメモ git git pull --rebase rebaseするときに使う 単純なpullよりも履歴が綺麗になるらしい(実感はなし) https://kray.jp/blog/git-pull-rebase/ git submodle update --init --recursive 別管理してるgitリポジトリをupdateするために使う(DBとか) Docker docker-compose down コンテナを停止させる docker-compose up -d コンテナを起動させる -dオプションは、コンテナをバックグラウンドで起動し、実行し続けるために使う。 https://docs.docker.jp/compose/reference/up.html
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

自分用 Git Bash 2回目からのコマンド

二回目のpush $ git init $ git add . $ git commit -m ‘second commit’ $ git push 困ったら $ git status $ git log $ git show $ git remote
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む