基本的なGit操作
使えないのは自分が苦しいので、本当に基礎的なものだけどこれだけあればとりあえず仕事はできる、というものを書いていく。
前提
- Gitはインストール済み
- プロジェクトでgit cloneした後の操作を想定。そのため本当に0からの作業ではないことに注意
ブランチ作成
git branch branch_name # 以下ならtestブランチ作成 git branch test
ブランチへ移動
git checkout branch_name # testブランチへ移動 git checkout test
編集したファイルをステージングする
git add file_name # index.htmlをaddする git add index.html # カレントディレクトリ配下のファイルで編集したもの全てをaddする git add .
ステージングしたものをcommitする
git commit -m "コメント"
pushする
git push
pushする際に
fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use
と怒られることがある。
これは今のブランチで、pushする先がわからないと言われている。
このエラーメッセージの下には
git push --set-upstream origin branch_name
と書かれている。これはpushする先をデフォルトでorigin branch_nameにする。
これにより「git push」とすると、origin branch_nameへpushするようになる。
ちなみにこれは「git pull」のときも同じように怒られることがある。
There is no tracking information for the current branch. Please specify which branch you want to merge with.
デフォルトの参照先がわからず、pullができないと言われている。
これを解消にするには
git branch --set-upstream-to=origin/branch_name branch_name
とすればよい。 test環境であれば
git branch --set-upstream-to=origin/test test
とする。
各ブランチのデフォルト参照先はどこかを調べるには
git branch -vv
とすると分かる。
参考
ブランチから最新のコードをもってきたい場合はpullをする
git pull
masterブランチへ別ブランチの変更点を取り込みたい時はmergeをする。
ここでは別ブランチをdevなどとする
# masterブランチへ移動する git checkout master # devブランチの内容をmasterへ取り込む git merge origin dev # コンフリクトがない場合、そのままpush git push # コンフリクトがある場合、衝突している箇所を手動修正→commit→push git commit -m"コンフリクトを解消" git push
CognitoでUserの一覧取得
認証情報とかは
を参考にする。
import * as AWS from "node_modules/aws-sdk get_users() { let user_index = [] const cognito_indentity_service_provider = new AWS.CognitoIdentityServiceProvider({region: "XXXXX"}) let data = await cognito_indentity_service_provider.listUsers({UserPoolId: "XXXX"}).promise() Array.prototype.push.apply(user_index, data.Users) While(data.PaginationToken) { data = cognito_indentity_service_provider.listUsers({UserPoolId: "XXXX", PagitinationToken: data.PagtinationToken}).promise() Array.prototype.push.apply(user_index, data.Users) if (data.Users === undefined || data.Pagitination === "") { break } } return user_index }
awsの知っているものをまとめる
自分がわかっているものだけをまとめる。
詳しいことは公式ドキュメント参照。
まとめないといつまでも忘れる。
IAM
ここでユーザーやグループを作って、どのユーザーはどんな権限を持つか確認したり、サービスへアクセスする際の認証情報出したりする。CodeCommit
aws上のgithub。
コードをここで管理する。
httpsで利用するにはIAMで認証情報からkeyを取得したり。S3
awsのストレージ。Lambda
バッジ。自分は主にS3関連したイベントを指定して関数を起動。CloudWatch
ログ。Cognito
認証絡み。
UserPoolでユーザーのサインアップ、サインイン機能を提供、 IDで特定ユーザーのawsのサービスへのアクセスを制御。Elastic BeansTalk
awsクラウド内でアプリケーションのデプロイ、実行、サービスの提供する。
提供するための環境を整えなくてもやってくれるもの、という所感。
コードを書いてデプロイして何も変わってなかったらデプロイ失敗しているため、ここと次のCodePipelineを確認する。CodePipeline
コードの最新化、および最新化されたコードの自動リリースを行う。
メモ
AWSのAPIを呼び出す際は、コールバック的な記述が多いがそういう風にかけない自分はハマった。
例えば、cognitoで管理者権限でユーザーを追加する場合
import * as AWS from "node_modules/aws-sdk" const cognito = new AWS.CognitoIdentityServiceProvider({region: 'XXXX'}) const result = await cognito.adminCreateUser({Username: XXXX, UserPoolId: XXXX}).promise()