GitHubを利用した開発の簡単な練習方法
GitHubは、Gitというバージョン管理ソフトを使って複数人で共通のファイルの開発を行えるサービスです。
GitHubで開発を行う簡単な練習方法を書きます。
何のファイルの開発を練習題材にするかは自由ですが、私の場合はこのホームページのソースファイルを複数のデバイスで変更する可能性があるので、GitHubで管理して開発していきたいと思います。
Windows環境でGitBashを使うことを想定しています。 GitHubアカウントは事前に作成しておいてください。
Gitインストール~GitHubへのssh接続
Git for Windowsを下記のサイトからダウンロードして、表示される指示に従ってインストールします。
GitBashを起動します。
GitHubにssh接続するために必要な鍵の生成を行います。
ssh-keygen -t rsa
鍵を保存するフォルダとパスフレーズを聞かれますので入力するか、そのままエンターを押します。
生成された公開鍵id_rsa.pub
をテキストエディタで開きコピーします。
下記のサイトに行き、Add SSH key
のボタンを押し、Keyの欄に貼り付けます。TitleはPC名などを適当に記入し、Add key
を押します。
GitBashに下記のコマンドを打ってGitHubとの接続を確認します。
ssh -T git@github.com
GitHubでの開発を行う際の考え方
開発する際に下記の図のような枠組みを意識する必要があります。 大きくは、リモートリポジトリとローカルリポジトリに分けられます。リモートリポジトリがGitHubで公開されているリポジトリです。ローカルリポジトリ以下は手元のPC内の枠組みです。リモートリポジトリにファイルの更新をアップロードする時にpushを行い、リモートリポジトリからファイルの更新をダウンロードする時にpullを行います。また、リモートリポジトリの環境を手元のPCに丸々コピーし、ローカルリポジトリを作成する際にcloneを使います。
また、作業用ディレクトリからpushするまでには、ステージング、ローカルリポジトリに以降する必要があります。 作業用ディレクトリで変更したファイルに関して必要な変更履歴に関してのみaddし、ステージングエリアに格納していきます。また、ステージングエリアに格納された変更履歴をcommitしローカルリポジトリを更新する必要があります。あまり複雑なことをしないのであれば全ての変更履歴をaddし、commitしていけば良いのかと思います。
(練習1)ローカルリポジトリを作成し、ファイルをリモートリポジトリへPush
まず、GitHub上でリモートリポジトリを作成しておきます。
ブラウザのGitHubのマイページから右上の+マーク
>New repository
>Public or Privateを選択、Initialize this repository with a READMEを空欄
>Create repository
の手中で作成できます。
何のファイルも入っていないリモートリポジトリが作成されます。
次に、GitBashからローカルリポジトリを作成し、README.mdというファイルを作成し、リモートリポジトリにアップロードしていきます。任意のディレクトリに移動し、下記のコマンドを打ちます。 (gitなどの名前のフォルダを作って移動しておくのがお勧めです。)
echo "# hogehoge" >> README.md
git init
git add README.md
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git commit -m "first commit"
git remote add origin https://github.com/XXXXXX/XXXXXX.git
git push -u origin master
git init
: ローカルリポジトリを作成する。
git commit -m "comment"
: -m のオプションでコメント付きでcommitします。
git remote add [A] [URL]
:[URL]を[A]に紐づけます。
git push -u origin master
: -uで一度リモートリポジトリ名、ブランチ名を指定すると、次回以降git pushのみでpush可能になる。また、git clone [URL]でファイルをダウンロードした場合は既にorigin=[URL]と紐づいている。
GitHubのリモートリポジトリのページを更新し、README.mdに正しくhogehogeと表示されれば成功です。
(練習2)リモートリポジトリとローカルリポジトリの同期
複数人で開発を行うことを想定し、ブラウザからリモートリポジトリのファイルを変更し、ローカルリポジトリで変更したファイルをpullすることで、リモートリポジトリとローカルリポジトリが同期できるか確認します。
ブラウザでGitHubのリモートリポジトリのページを開きUpload file
を選択し、任意のファイルをアップロードします。
(私の場合はこのホームページのソースコードをアップしてみています。)
Commit changes
を押して、リモートリポジトリへのファイルの追加が完了です。
ローカルリポジトリはこれらのファイルの変更を知らないため、pullをして同期していきます。
git pull origin master
ブラウザからアップロードしたファイルが、現在のディレクトリにダウンロードされれば成功です。 下記のコマンドでコミットの履歴を見ることもできます。
git log
(練習3)ファイルを変更し、再度Push
先ほどダウンロードしたファイルを変更して再度Pushしていきたいと思います。 ダウンロードしたファイルを任意に変更します。 (私の場合はこのホームページのファイルをダウンロードしていて、ファイルを更新していきます。) 更新後、以下のコマンドでどのファイルが更新されたか確認できます。
git status
git add .
git commit -m "update homepage"
git push origin master
git add .
: 全ての更新をaddします。