20220119のGitに関する記事は5件です。

GitLab のリモートリポジトリにプッシュしてみました

概要 「GitOps」ということで、ローカルリポジトリにある Terraform定義ファイル等を GitLab に用意されたリモートリポジトリにプッシュしてみます。簡単な流れは以下となります。 GitLabのプロジェクト(リモートリポジトリ)のクローン作成 ローカルリポジトリからリモートリポジトリへのプッシュ ローカル環境 macOS Monterey 12.1 Azure CLI 2.28.0 terraform v1.0.11 git 2.34.1 前提条件 GitLab環境上にアカウント(Owner)が用意されていること ローカル環境に「azure cli」がインストールされていること ローカル環境に「terraform」環境が構成されていること ローカル環境に「git」がインストールされていること 事前準備 GitLab で パーソナルアクセストークン を発行してみました でアクセストークンを入手していること GitLab上で新規プロジェクトを作成していること(今回は、このプロジェクト を利用します) .gitignore をサクッと作成してみましたの環境が準備できていること GitLabのプロジェクト(リモートリポジトリ)のクローン作成 プロジェクトのURLの情報の入手 GitLab へサインインし、該当プロジェクトを選択します。 新しく法事される画面の右側にある「クローン」リストボタンを押し、「HTTPSでクローン」のURLをどこかにコピーしておきます。 ローカル環境でのクローン作成 1. ローカル環境にて gitの設定を行います。 ## gitの設定 $ git config --global user.name "<GitLabに接続するユーザ名>" $ git config --global user.email <GitLabに接続するユーザのメールアドレス> ## gitの設定内容の確認 $ git config --list 2. 「git clone」を実行します。 ## クローン作成 $ git clone <該当プロジェクトのURL> Cloning into 'basic'... remote: HTTP Basic: Access denied fatal: Authentication failed for '<該当プロジェクトのURL>' ## 上記エラーが帰って場合、以下のコマンドを実行 $ git config --system --unset credential.helper ## 再度クローンを作成 $ git clone <該当プロジェクトのURL> Cloning into 'basic'... Username for 'https://gitlab.xxxxxxxx': <GitLabに接続するユーザ名> Password for 'https://itsuruzono@gitlab.xxxxxxxx': <上記ユーザ名のアクセストークン> remote: Enumerating objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3 Receiving objects: 100% (3/3), done. ## クローン結果の確認 $ ls -l total 0 drwxr-xr-x 3 ituru staff 96 1 19 15:53 ./ drwxr-xr-x 4 ituru staff 128 1 18 17:00 ../ drwxr-xr-x 4 ituru staff 128 1 19 15:54 basic/ $ cd basic $ ls -l total 8 drwxr-xr-x 4 ituru staff 128 1 19 15:54 ./ drwxr-xr-x 3 ituru staff 96 1 19 15:53 ../ drwxr-xr-x 13 ituru staff 416 1 19 15:54 .git/ -rw-r--r-- 1 ituru staff 50 1 19 15:54 README.md 3. 「.gitignore」の作成 ## .zshrc に定義した Function をコール $ GitIgnore $ ls -l drwxr-xr-x 5 ituru staff 160 1 19 16:10 ./ drwxr-xr-x 3 ituru staff 96 1 19 15:53 ../ drwxr-xr-x 13 ituru staff 416 1 19 15:54 .git/ -rw-r--r-- 1 ituru staff 4327 1 19 16:10 .gitignore -rw-r--r-- 1 ituru staff 50 1 19 15:54 README.md ローカルリポジトリからリモートリポジトリへのプッシュ ローカルリポジトリへのコミット 1. Terraform定義ファイルを作成します。また、内容に合わせ「README.md」を編集します。 ## 作業ディレクトリでの上記実行後の構成 $ ls -l total 24 drwxr-xr-x 6 ituru staff 192 1 19 16:21 ./ drwxr-xr-x 3 ituru staff 96 1 19 15:53 ../ drwxr-xr-x 13 ituru staff 416 1 19 15:54 .git/ -rw-r--r-- 1 ituru staff 4327 1 19 16:10 .gitignore drwxr-xr-x 8 ituru staff 256 1 19 16:21 Base/ -rw-r--r-- 1 ituru staff 143 1 19 16:25 README.md $ tree -a . ├── .git │   ├── FETCH_HEAD │   ├── HEAD │   ├── config │   ├── description │   ├── hooks │   │   ├── applypatch-msg.sample │   │   ├── commit-msg.sample │   │   ├── fsmonitor-watchman.sample │   │   ├── post-update.sample │   │   ├── pre-applypatch.sample │   │   ├── pre-commit.sample │   │   ├── pre-merge-commit.sample │   │   ├── pre-push.sample │   │   ├── pre-rebase.sample │   │   ├── pre-receive.sample │   │   ├── prepare-commit-msg.sample │   │   ├── push-to-checkout.sample │   │   └── update.sample │   ├── index │   ├── info │   │   └── exclude │   ├── logs │   │   ├── HEAD │   │   └── refs │   │   ├── heads │   │   │   └── main │   │   └── remotes │   │   └── origin │   │   └── HEAD │   ├── objects │   │   ├── info │   │   └── pack │   │   ├── pack-fa6ffae153cd2baabdfa742a8b2137b1c794b1e3.idx │   │   └── pack-fa6ffae153cd2baabdfa742a8b2137b1c794b1e3.pack │   ├── packed-refs │   └── refs │   ├── heads │   │   └── main │   ├── remotes │   │   └── origin │   │   └── HEAD │   └── tags ├── .gitignore ├── Base │   ├── .terraform │   │   ├── providers │   │   │   └── registry.terraform.io │   │   │   └── hashicorp │   │   │   └── azurerm │   │   │   └── 2.92.0 │   │   │   └── darwin_amd64 │   │   │   └── terraform-provider-azurerm_v2.92.0_x5 │   │   └── terraform.tfstate │   ├── .terraform.lock.hcl │   ├── main.tf │   ├── terraform.tfvars │   ├── terraform_AzureBase.md │   └── variables.tf └── README.md 24 directories, 36 files 2 ローカルリポジトリへコミットします。 ## 作業ディレクトリ内の変更をステージング領域に追加 $ git add -A ## ステージングされたスナップショットをローカルリポジトリに登録(コミット) $ git commit -m "First Commit" [main xxxxxxx] First Commit 6 files changed, 663 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 Base/.terraform.lock.hcl create mode 100644 Base/main.tf create mode 100644 Base/terraform_AzureBase.md create mode 100644 Base/variables.tf 3. リモートリポジトリへプッシュします。 ## ローカルリポジトリからリモートリポジトリへのプッシュ $ git push Username for 'https://gitlab.xxxxxxxx': <GitLabに接続するユーザ名> Password for 'https://itsuruzono@gitlab.xxxxxxxx': <上記ユーザ名のアクセストークン> Enumerating objects: 11, done. Counting objects: 100% (11/11), done. Delta compression using up to 16 threads Compressing objects: 100% (9/9), done. Writing objects: 100% (9/9), 7.99 KiB | 7.99 MiB/s, done. Total 9 (delta 0), reused 0 (delta 0), pack-reused 0 To https://gitlab.xxxxxxxx/terraformdeazure_01/basic.git 21ce6e4..937fe5c main -> main GitLabでプッシュの結果を確認します。.gitignoreで定義されている不要ファイル・ディレクトリはなく、必要なもののみ存在を確認できます。また、 README.md ファイルも変更されています。 まとめ これで ローカルリポジトリにある情報を リモートリポジトリである GitLab のプロジェクトへ問題なくプッシュできることを確認できました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

.gitignore をサクッと作成してみました

概要 Gitを利用するときに、「.gitignore」へ不必要なファイル・ディレクトリを指定することにより、リポジトリの管理対象から除外することができます。その「.gitignore」のサクッとした作成方法となります。 ローカル環境 macOS Monterey 12.1 zsh 5.8 Azure CLI 2.28.0 terraform v1.0.11 git 2.34.1 GitHub管理の .gitignore テンプレート Githubチーム(?)が管理している .gitignore テンプレートが公開されています。いろいろなプログラミング言語、フレームワーク、エディタ、ツール、OS等を網羅されているように思います。 ルートフォルダには、一般的なプログラミング言語とツール等のテンプレート Global には、各種エディター、ツール、およびオペレーティングシステム等のテンプレート community には、現在主流のテンプレートに属していない言語、ツール、環境等のテンプレート .gitignore の作成方法 この公開されているテンプレート利用して、自分に必要な .gitifnore ファイルを作成します。 ## 実行したディレクトリに毎回新規に .gitignore を作成します。 $ curl -sS https://raw.githubusercontent.com/github/gitignore/master/{\ Java.gitignore,\ Terraform.gitignore,\ Python.gitignore,\ Global\/macOS.gitignore,\ Global\/Linux.gitignore,\ Global\/Windows.gitignore\ } > .gitignore ## 実行したディレクトリに存在する .gitignore に追記されます。 ## 実行したディレクトリに .gitignore が存在しなければ、新規に作成されます。 $ curl -sS https://raw.githubusercontent.com/github/gitignore/master/{\ C.gitignore,\ C++.gitignore\ } >> .gitignore .gitignore の運用方法(案) git init / git clone を実行した(する)ディレクトリで .gitignore を作成するために ~/.zshrc に「function GitIgnore()」を追記しておきます。 function GitIgnore() { curl -sS https://raw.githubusercontent.com/github/gitignore/master/{\ Java.gitignore,\ Terraform.gitignore,\ Python.gitignore,\ Global\/macOS.gitignore\ } > .gitignore } .gitignore を必要とするとき、該当ディレクトリで「GitIgnore」を実行します。 $ GitIgnore $ ls -l total 16 drwxr-xr-x 3 ituru staff 96 1 19 09:47 ./ drwxr-xr-x 4 ituru staff 128 1 18 14:00 ../ -rw-r--r-- 1 ituru staff 4327 1 19 14:32 .gitignore まとめ 公開されている .gitignoreテンプレートから必要なテンプレートを指定するだけで、サクッと .gitignore を作成することができます。 参考記事 以下の記事を参考にさせていただきました。感謝申し上げます。 より良い .gitignore を一瞬で手に入れる
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

GitLab で 共同作業用のプロジェクト を作成してみました

概要 「GitOps」ということで、GitLab を用いて Terraform定義ファイルを共同で一元管理するために、共同作業可能なプロジェクトを作成してみます。簡単な流れは以下となります。 GitLabでのグループの作成 共同作業メンバーの登録 そのグループに対するプロジェクトの作成 ローカル環境 macOS Monterey 12.1 Azure CLI 2.28.0 terraform v1.0.11 git 2.34.1 前提条件 GitLab環境上にアカウント(Owner)が用意されていること ローカル環境に「azure cli」がインストールされていること ローカル環境に「terraform」環境が構成されていること ローカル環境に「git」がインストールされていること GitLab へのログイン Azure の IaaS 上に構築された GitLab へローカルPCのブラウザを使ってアクセスします。 今回のGitLabはAAD(AzureActiveDirectory)連携で構成されているため、サインインするために「AzureAD」を選択します。 新たに表示される「アカウント選択画面」で、該当のアカウントを選択し、サインインします。 グループの作成 共同で作業するために最初にグループを作成します。 サインイン後に表示されている画面から 「Create a group」を選択後、新たに表示される画面から「グループを作成」を選択します。 次に表示される「グループを作成」画面において、「グループ名」を入力し、「可視性レベル」で「内部」を選択し、画面下部の「グループを作成」ボタンを押します。 「グループ名」で定義したグループが新たに作成されます。 共同作成メンバーの登録 グループ表示画面の左側タブから該当するグループ名を選択し、画面上部に表示される「Invite your colleagues」ボタンを押します。 新たに表示される「Invite members」画面において、「GitLab members or email address」箇所にメンバーを入力し、「Select a role」箇所で「Developer」(メンバーの役割に合わせて)を選択し、画面下部の「Invite」ボタンを押します。 登録されたメンバーを確認するために、画面左側タブの「Group information」-「メンバー」を選択し、新たに表示される画面に先程追加したメンバーを確認します。 プロジェクトの作成 グループ表示画面の左側タブから該当するグループ名を選択し、画面右側に表示される「新規プロジェクト」ボタンを押します。 新たに表示される「Create new project」画面において、「Create blank project」を選択します。 次に表示される「Create blank project」画面において、「プロジェクト名」を入力し、「可視性レベル」で「内部」を選択し、画面下部の「プロジェクトを作成」ボタンを押します。 「プロジェクト名」で定義したプロジェクトが新たに作成されます。 まとめ これで GitLab上 に共同作業可能なプロジェクトを作成できたので、 これを利用し該当プロジェクトを一元的にバージョン管理できるようになりました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

GitLab で パーソナルアクセストークン を発行してみました

概要 「GitOps」ということで、GitLab を用いて Terraform定義ファイルを一元管理するために、まずは、GitLabで個人トークンを発行してみます。簡単な流れは以下となります。 GitLabでの個人設定 GitLabでのパーソナルアクセストークンの作成 ローカル環境 macOS Monterey 12.1 Azure CLI 2.28.0 terraform v1.0.11 git 2.34.1 前提条件 GitLab環境がすでに用意されていること ローカル環境に「azure cli」がインストールされていること ローカル環境に「terraform」環境が構成されていること ローカル環境に「git」がインストールされていること GitLabでの個人設定 GitLab へのログイン Azure の IaaS 上に構築された GitLab へローカルPCのブラウザを使ってアクセスします。 今回のGitLabは AAD(AzureActiveDirectory)連携で構成されているため、サインインするために「AzureAD」を選択します。 新たに表示される「アカウント選択画面」で、該当のアカウントを選択し、サインインします。 個人設定の実施 画面右上の サインイン・アイコンのリストから「Edit profile」を選択します。 画面左側タブから「Profile」を選択し、必要であれば、「Time setting」等を設定します。 画面左側タブから「Preferences」を選択し、必要であれば、「Localization」等を設定します。 GitLabでの個人トークンの発行 上記設定完了後、一度ブラウザを閉じ、再度GitLabにサインインします。 サインイン・アイコンのリストから「Edit profile」を選択し、画面左側タブから「アクセストークン」を選択します。 「Token name」欄に任意の名前を入力します。 「有効期限」にトークンの有効期限を設定します。入力を行わなければ、そのトークンは無期限となります。 「Select scope」欄で「api」を選択します。(api:なんでもできるスコープ) 上記3項目の設定後、「Create personal access token」ボタンを押します。 新しいパーソナルアクセストークンが作成され、そのトークンをどこかにコピーしておきます(画面を切り替えると二度と表示されません)。 まとめ これでアクセストークンを取得できたので、リモートリポジトリとして GitLab を使用することができる準備が整いました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

初回git push 時の「src refspec master does not match any」解決法

エラー内容 新規アプリを作成し、pushした際に以下のエラーが出力された。 $ git push error: src refspec master does not match any error: failed to push some refs to 'github.com:xxx/xxx.git' 2行目が赤文字になっていたため、2行目を中心に調べていると、 - pullしてからmerge - git pull --rebase という解決策が出てくる。 これはリモートとローカルでコミットが分かれていて、マージできなくてrejectedされている状態の時のエラーの解決法である。 確かにこのエラーでも 「error: failed to push some refs to 'github.com:xxx/xxx.git'」というエラーが出力されるため、2行目のエラー内容で調べると違うエラーの解決策にヒットしてしまう。 解決策 1行目の「error: src refspec master does not match any」で調べてみる。 $ git push origin main 以前までは「master」ブランチが自動で作成されていたのですが、2020/10以降、新規にレポジトリを作成すると、「main」ブランチが作成されるようだ。 参考
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む