スキップしてメイン コンテンツに移動

GitHubのGitのAndroidスマホのTermuxアプリを使った初期設定と通常の基本操作

AndroidスマホでGitHubが対応したサイトやアプリ開発のバージョン管理システムのGitを動かすにはターミナルエミュレーターでLinux環境アプリのTemuxを使えば大丈夫なんだ。

Termuxアプリの開始画面
開始画面 via Termux

Playストアで無料でインストールして使える。最初に開くとパッケージの更新のためのダウンロードでデータ通信が行われてちょっと時間がかかる。待っているとLinuxや独自のコマンドを入力可能なターミナルエミュレーターの画面が現れる。

TermuxアプリでGitを使う

一般的な初期設定

二回目以降で、もう既に実行済みならば繰り返す必要はない。

Androidのバージョン6.0以降はTermuxで扱うデバイスのストレージの許可を得る。

termux-setup-storage

lsコマンドで確認すると;

  • storage
    • dcim(デジタルカメラ)
    • 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のログインの「Settings」の「emails」で「Keep my email addresses private」(メールアドレスを私用にする)にチェックを付けると共に説明文に載っているGitHubのnoreplyメールアドレスを用いて登録することができる。

noreplayメールアドレスのタイプ

2017年7月19日以降のアカウント
ID+GitHubのユーザー名@users.noreply.github.com
2017年7月18日以前のアカウント
GitHubのユーザー名@users.noreply.github.com

IDありのものは後からユーザー名を変更しても通用するけれどもIDなしものは通用しなくなるので、使う際には留意しておきたい。

参考:Git でのユーザ名を設定する  コミットメールアドレスを設定する

GitHubのGitの基本操作

デバイスのローカルリポジトリからウェブのリモートリポジトリを関連付けて更新する方法について載せる。

リモートリポジトリの新規作成

GitHubのプロフィールから「Repositories」へ行ってメニューリストの右横の「New」のボタンかリポジトリのページの最上段の右横の「+」のメニューから選ぶと「Create a new repository」(新しいリポジトリを作成する)のページに変わる。

入力/選択項目

GitHubのリポジトリの新規作成
リポジトリの新規作成 via 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のリモートリポジトリの三つの設定
リモートリポジトリの三つの設定 via 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.md
README.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」のボタンでインポートを実行する。

参考:新しいリポジトリの作成

リモートリポジトリの更新

三つの設定の何れかによってローカルリポジトリと結び付けられたリモートリポジトリの更新は三つのコマンドで一般的に行われる。

  1. git add ファイル名
  2. git commit -m "コメント"
  3. git push origin master

最初の二つはローカルリポジトリの更新で、最後の一つがリモートリポジトリの更新を果たす。

git commitはオプションの「-m」を使わず、コメントなしでも構わない。

git pushは最初の設定でオプションの「-u」によって上流ブランチが指定されていれば引数の「origin」や「master」がなくても同じになるけれども念のためにいつも両方とも付けて打ち込むのが無難だ。

参考:コミットをリモートリポジトリにプッシュする

リモートリポジトリの取得

GitHubのクローンURLの表示
クローンURLの表示 via 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 と呼ばれる) がチェックアウトされる

ローカルリポジトリにリモートリポジトリのクローンが作成されるとリモートURLで設定したのと同様に当該のリモートリポジトリをローカルリポジトリから更新することができるようになる。

その他、GitHubのGitの基本操作として三つのコマンドを覚えておくと良いと思う。

git fetch origin
リモートリポジトリの変更(新しいリモート追跡ブランチとタグ)の情報をマージなしに取得する
git merge origin/master
ローカルリポジトリの変更をリモートリポジトリに結合する。新しいリモート追跡ブランチ:origin/masterを古いローカルリポジトリのブランチ:masterへマージするために使われることが多い
git pull origin master
git fetchgit mergeの二つのコマンドを同時に実行する

引数の「origin」はリモート名(リモートリポジトリ)、「master」はブランチ名(メインブランチ)に当たる。

何れも打ち込むとGitHubのユーザー名とパスワードの入力によって処理が完遂する。

pull は、取得された変更のマージを実行するため、pull コマンドの実行前にローカルの作業がコミットされていることを確認する必要があります。 解決できないマージコンフリクトが発生した場合、あるいはマージを中止したい場合は、git merge --abort を使用して、プルを行う前の状態にブランチを戻すことができます。

リモートリポジトリから変更を取得する via GitHub ヘルプ

注意点としてリモートとローカルの二つのリポジトリで更新が打つかると問題が生じるので、作業の経過が曖昧ならば「git status」(状態)や「git log」(履歴)のコマンドで確認しながらやると良いと思う。

参考:スマホでGit Githubに新規リポジトリを追加 AndroidでLinuxターミナル!Termuxの初期設定 GitHub でダミーのメールアドレスを使用する Git - originとmasterとは何か(初心者向け) 私の使うGitコマンドまとめ 基本コマンド編 git fetchの理解からgit mergeとpullの役割

コメント

些細な日常の人気の投稿

早川愛の高校野球の夏の甲子園の大会歌の栄冠は君に輝くの独唱のソプラノの美声

イメージ

飽和脂肪酸の多いココナッツオイルの過剰摂取の危険性とその他の健康上の利点

イメージ

PlayストアでAndroidアプリのダウンロードが非常に遅い場合の打開策

イメージ