GitHubのGitのAndroidスマホのTermuxアプリを使った初期設定と通常の基本操作 結城永人 - 2020年1月10日 (金) AndroidスマホでGitHubが対応したサイトやアプリ開発のバージョン管理システムのGitを動かすにはターミナルエミュレーターでLinux環境アプリのTemuxを使えば大丈夫なんだ。 開始画面|Termux Playストアで無料でインストールして使える。最初に開くとパッケージの更新のためのダウンロードでデータ通信が行われてちょっと時間がかかる。待っているとLinuxや独自のコマンドを入力可能なターミナルエミュレーターの画面が現れる。 追記:Termuxは2020年11月からプログラムの問題でPlayストアでの更新を停止した。Androidバージョン7.0以降はTermux Applicationで示される別のAPIをダウンロードして使うことが推奨される。 目次TermuxアプリでGitを使う一般的な初期設定Git用の初期設定Gitの一般的な設定ユーザー設定GitHubのGitの基本操作リモートリポジトリの新規作成リモートリポジトリの三つの設定リモートリポジトリの更新リモートリポジトリの取得 TermuxアプリでGitを使う 一般的な初期設定 二回目以降で、もう既に実行済みならば繰り返す必要はない。 Androidのバージョン6.0以降はTermuxで扱うデバイスのストレージの許可を得る。 termux-setup-storage lsコマンドで確認すると; storagedcim(デジタルカメラ)downloads(ダウンロード)external-1(外部ストレージ)movies(動画)music(音楽)pictures(画像)shared(その他) Termuxのフォルダは種類毎に使い分けられる。 Gitでソースコードのためのディレクトリやファイルを追加するには「shared」が適していると思う。 参考サイトTermux-setup-storage Git用の初期設定 デバイスにGitを一回だけインストールする。 pkg install git Gitを削除する場合は「pkg uninstall git」になる。 参考サイトPackage Management Gitが更新されたかどうかを確認する。 apt update 更新可能なパッケージの一覧が表示される。 全てをアップデートするならば「apt upgrade」か「pkg upgrade」、Gitだけを更新するならばインストールと同じに「pkg install git」を打ち込む。 参考サイトApt Gitの一般的な設定 ここからはTermuxアプリにかぎらず、どんなデバイスのターミナルエミュレーターでも大差はない。 ユーザー設定 Gitのユーザー名とメールアドレスを登録する。これ自体はGitHubのユーザー設定と異なるGitの一般的なユーザー設定だ。しかしGitHubでもコミットに関してアカウントのメールアドレスが照合されてユーザー名が反映するかどうかに影響する。メールアドレスが違うとコミットの名前はGitのユーザー名、メールアドレスが同じだとGitHubのユーザー名で登録され、アカウントにアヴァター画像があれば使われもする。 git config --global user.name ユーザー名 帯文字は任意のユーザー名を入力する。コマンドだけ打ち込むとgitのユーザー名を確認することができる。 git config --global user.email メールアドレス 帯文字は任意のメールアドレスを入力する。コマンドだけ打ち込むとgitのメールアドレスを確認することができる。 注意点としてGitからコミットしたメールアドレスはGitHubから取り出される可能性があるらしい。公開せず、隠しておくためには代わりにGitHubのnoreplay(無返信)メールアドレスを用いなくてはならない。 メールアドレスをプライベートにしておきたいなら、GitHubが提供する no-reply メールアドレスをコミットメールアドレスとして使うことができます。 コマンドラインからプッシュするコミットに対してnoreplyメールアドレスを使いたい場合には、そのメールアドレスを Git のコミットメールアドレスの設定で使用してください。 Web ベースの Git 操作に noreply アドレスを使いたい場合には、GitHub でコミットメールアドレスの設定を行い、[Keep my email address private] を選択してください。 コミットメールアドレスを設定する|GitHub ヘルプ|GitHub GitHubのログインの「Settings」の「emails」で「Keep my email addresses private」(メールアドレスを私用にする)にチェックを付けると共に説明文に載っているGitHubのnoreplyメールアドレスを用いて登録することができる。 noreplayメールアドレスのタイプ 2017年7月19日以降のアカウントID+GitHubのユーザー名@users.noreply.github.com2017年7月18日以前のアカウントGitHubのユーザー名@users.noreply.github.com IDありのものは後からユーザー名を変更しても通用するけれどもIDなしものは通用しなくなるので、使う際には留意しておきたい。 参考サイトGit でのユーザ名を設定するコミットメールアドレスを設定する GitHubのGitの基本操作 デバイスのローカルリポジトリからウェブのリモートリポジトリを関連付けて更新する方法について載せる。 リモートリポジトリの新規作成 GitHubのプロフィールから「Repositories」へ行ってメニューリストの右横の「New」のボタンかリポジトリのページの最上段の右横の「+」のメニューから選ぶと「Create a new repository」(新しいリポジトリを作成する)のページに変わる。 入力/選択項目 リポジトリの新規作成|GitHub Owner_アカウントの選択Repository name_リポジトリの名称(必須)Description_説明文(未記入も可)公開設定Public_公開Private_非公開Initialize this repository with a README_このリポジトリのREADMEの初期化(READMEを追加するかどうかを決める)Add .gitignore_gitで管理しないファイルを指定するためのgitignoreファイルを追加できるAdd a license_ライセンス文書を追加できる 最後の「Create repository」のボタンを押すとGitHubのリモートリポジトリが作成される。 リモートリポジトリの三つの設定 リモートリポジトリの三つの設定|GitHub GitHubから提供されるHTTPSかSSHのリモートURLを使ってリモートリポジトリをGitのローカルリポジトリへ結び付けてファイルを追加できる。 またはブラウザからでも「creating a new file」(新しいファイルを作る)と「uploading a existing file」(現存のファイルをアップロードする)の二つのリンク先から同じようにファイルを追加できる。 GitHubのリモートリポジトリの新規作成でREADMEの初期化や.gitignoreやライセンスを選択しないと最初にGitへの三つの設定の仕方が表示される。 方法①Create a new repository on the command line コマンドラインから新しいリポジトリを作る。 echo "内容" >> README.md git init git add README.md git commit -m "コメント" git remote add origin リモートURL git push -u origin master デバイスのローカルリポジトリを置きたいディレクトリへcdコマンドで移動して必要ならばmkdirコマンドでGitHubのためのディレクトリを新しく作成してcdコマンドで入ってから所定のコマンドラインを実行する。 Termuxアプリならば「cd storage/shared」でstorageフォルダのsharedへ移動して必要ならば「mkdir Git」(Gitは任意のディレクトリ名)で新しく作成したGitHubのためのディレクトリにリモートリポジトリを置くと使い易いだろう。 コマンドの説明 echo "内容" >> README.md内容のREADME.mdへの上書きgit initローカルリポジトリの新規作成/再初期化git add README.mdREADME.mdの追加git commit -m "コメント"コメント付きでコミットgit remote add origin リモートURLリモートURLに由来するリモートリポジトリを取得git push -u origin masterリモートリポジトリへコミットをプッシュ オプションの「-m」はコミットにコメントを追加する。「-u」はプッシュで上流ブランチを指定する。 引数の「origin」はリモート名(リモートリポジトリ)、「master」はブランチ名(メインブランチ)に当たる。 git pushの直後にGitHubのユーザー名とトークンの入力を行って完遂する。 参考サイトリモートの追加 方法②Pushing an existing repository from the command line コマンドラインから現存のリポジトリをプッシュする。 git remote add origin リモートURL git push -u origin master デバイスのローカルリポジトリが作成済みの場合なので、すなわち方法①のechoからgit commitまでのコマンドが省略されてリモートリポジトリと結び付けるだけだ。 方法③Import code from another repository 他のリポジトリからコードをインポートする。 You can initialize this repository with code from a Subversion, Mercurial, or TFS project. サブヴァージョンとマーキュリアルとTFSからコードをインポートしてリポジトリを初期化することができる。 画面の「Import code」のボタンを押すと所定のバージョン管理システムからインポートするクローンURLの入力画面に変わる。 その他に「Change repository」からGitHubの古いリポジトリと入れ換えることもできる。 何れの場合も右下の「Begin import」のボタンでインポートを実行する。 参考サイト新しいリポジトリの作成 リモートリポジトリの更新 三つの設定の何れかによってローカルリポジトリと結び付けられたリモートリポジトリの更新は三つのコマンドで一般的に行われる。 git add ファイル名git commit -m "コメント"git push origin master 最初の二つはローカルリポジトリの更新で、最後の一つがリモートリポジトリの更新を果たす。 git commitはオプションの「-m」を使わず、コメントなしでも構わない。 git pushは最初の設定でオプションの「-u」によって上流ブランチが指定されていれば引数の「origin」や「master」がなくても同じになるけれども念のためにいつも両方とも付けて打ち込むのが無難だ。 参考サイトコミットをリモートリポジトリにプッシュする リモートリポジトリの取得 クローンURLの表示|GitHub GitHubの既存のリモートリポジトリをデバイスのローカルリポジトリに取得する方法もあってクローンといわれる。 ウェブのGitHubのリポジトリのページの「Clone or download」のボタンから「Clone with HTTPS」(HTTPSでクローン)か「Clone with SSH」(SSHでクローン)のクローンURLを取得して使う。 もう一つ「Download ZIP」があってこれはデバイスにリポジトリのファイルを圧縮ファイルのZIPでブラウザからダウンロードしてファイルマネージャーアプリで解凍してローカルリポジトリに追加したり、色々と使える。 git clone クローンURL 設定の方法①の場合と同様に先ずはデバイスのローカルリポジトリを置きたいディレクトリへcdコマンドで移動、そして必要ならばmkdirコマンドでディレクトリを作成してcdコマンドで入ってから所定のコマンドラインを実行する。 クローンで生じるローカルリポジトリの内容 repo と呼ばれる新たなフォルダが作成されるGit リポジトリとして初期化されるクローン元の URL を指す origin という名前のリモートが作成されるリポジトリのファイルとコミットすべてがそこにダウンロードされるデフォルトブランチ (通常 master と呼ばれる) がチェックアウトされる リモートリポジトリから変更を取得する|GitHub ヘルプ|GitHub ローカルリポジトリにリモートリポジトリのクローンが作成されるとリモートURLで設定したのと同様に当該のリモートリポジトリをローカルリポジトリから更新することができるようになる。 その他、GitHubのGitの基本操作として三つのコマンドを覚えておくと良いと思う。 git fetch originリモートリポジトリの変更(新しいリモート追跡ブランチとタグ)の情報をマージなしに取得するgit merge origin/masterローカルリポジトリの変更をリモートリポジトリに結合する。新しいリモート追跡ブランチ:origin/masterを古いローカルリポジトリのブランチ:masterへマージするために使われることが多いgit pull origin mastergit fetchとgit mergeの二つのコマンドを同時に実行する 引数の「origin」はリモート名(リモートリポジトリ)、「master」はブランチ名(メインブランチ)に当たる。 何れも打ち込むとGitHubのユーザー名とトークンの入力によって処理が完遂する。 pull は、取得された変更のマージを実行するため、pull コマンドの実行前にローカルの作業がコミットされていることを確認する必要があります。 解決できないマージコンフリクトが発生した場合、あるいはマージを中止したい場合は、git merge --abort を使用して、プルを行う前の状態にブランチを戻すことができます。 リモートリポジトリから変更を取得する|GitHub ヘルプGitHub 注意点としてリモートとローカルの二つのリポジトリで更新が打つかると問題が生じるので、作業の経過が曖昧ならば「git status」(状態)や「git log」(履歴)のコマンドで確認しながらやると良いと思う。 参考サイトスマホでGitGithubに新規リポジトリを追加AndroidでLinuxターミナル!Termuxの初期設定GitHub でダミーのメールアドレスを使用するGit - originとmasterとは何か(初心者向け)私の使うGitコマンドまとめ 基本コマンド編git fetchの理解からgit mergeとpullの役割 コメント 新しい投稿 前の投稿
コメント