いつも忘れてしまうので備忘録的に記載していきます。
今回の作業としては
・1 AndroidStudioでプロジェクト作成
・2 GitHubでリポジトリ作成
・3 リポジトリへコミット→プッシュ
・1 メインアカウント使用の場合
・2 サブアカウント使用の場合
以上をまとめていきます。
今回AndroidStudioでの工程ですが、
IntelliJ系であればほぼ共通して使えると思います。
Mac・Windowsどちらでもいけるはずです。
AndroidStudioでプロジェクト作成
特別なことはしません。
ようこそ画面から[Start a new Android Studio Project]を選択して好きな構成でプロジェクトを作成します。
GituHubリポジトリの作成
ビルドが完了して後、上部メニューにから
VCS→inport into Version Control→Share Project on GitHubを選択してリモートリポジトリの作成を行います。
リポジトリ名、アカウント名、プライベート設定するかのチェックなどがあるのでそちらを設定します。
コミット→プッシュまで
ここからが分かれます。
メインアカウントの場合
ここでのメインアカウントは[ユーザー名]/.gitconfigに記載されているアカウントとします。
[user]
name = {アカウント名}
email = {メールアドレス}
ここのアカウントがメインアカウントになります。
コミットやプッシュなどまずはここのアカウントを基準として行われます。
####確認できたらコミット→プッシュ
先ほど作成したリモートリポジトリのアカウントとメインアカウントが一致していれば
リモートリポジトリ作成後、すぐに最初のコミットするか求められるのでそのままコミットしてしまいます。
コミット成功したらそのままプッシュもいけるはずです。これで終わり。
サブアカウントの場合
やむを得ない事情でメインのアカウントとは別のサブアカウントを作成することがあると思います。
例えば
仕事用アカウントとプライベートのアカウントが分かれているけど
社用PCからプライベートのアカウントを使用したい…
そんな時の手順です。
コミットはキャンセル
リモートリポジトリ作成後の最初のコミットはキャンセルします。
そうでないとメインアカウントでコミットすることになってしまうためです。
プロジェクトにGithubのローカル設定を行う
ここを参考に行いました。
AndroidStudio内のターミナルから
git config --local user.name “{サブアカウント名}”
git config --local user.email “{サブアカメールアドレス}”
上記コマンドを実行します。
これでこのプロジェクトにおけるコミットはここで設定したアカウントで行われます。
[プロジェクト]/.git/configに.gitconfigと同じように記載がされているかと思いますので確認してみてください。
SSH鍵認証を導入する
多分鍵入れずともいけるのかもしれませんが確実なので認証して行う方法にします。
鍵を作成
ここを参考にしました。
ターミナルで
cd ~/.ssh
ssh-keygen -f {ファイル名} -t rsa -C “{メールアドレス}“
これでSSH鍵ファイルが作成されます。
~/.ssh内に{ファイル名}.pubファイルがあるかと思うのでそちらの中身をコピーします。
Windowsで~/.sshディレクトリがない場合は作ってしまいましょう
Githubに鍵を登録
GitHubログイン後右上メニューから
Settings→SSH and GPG Keys→New SSH Keyを選択して先ほどの中身を貼り付けます。
configに設定
ターミナルから
vi ~/.ssh/config
# {ユーザー名} github
Host github-{ユーザー名}
HostName github.com
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
IdentityFile ~/.ssh/{ファイル名}
Windowsでviコマンド使えない場合は直にファイル作って内容記載でもいけます。
configの設定の登録
ここからまたAndroidStudio内のターミナルから作業します。
git remote set-url origin git@github-{ユーザー名}:{サブアカウント名}/{リポジトリ名}.git
これで先ほどのconfigの設定が反映されました。
コミット→プッシュ
コミットは最初にキャンセルしてしまていると思うので左メニューのProjectのプルダウンをProjectに変えて適宜addしていきます。
その後でコミット→プッシュでサブアカウントでのコミットプッシュが通るかと思います。
お疲れ様でした。