GitHubの使い方について
GitHubのアカウントは以前から登録しており、
GitHubに関して学びたいと思っていたものの手つかずだったため
暇な時間を利用してのメモ。
GitHubのアカウント登録については端折ります。
GitHubとは
自分の書いたコードを全世界に公開するサービス。
また、ブランチの管理などをすることができる。
有料版であれば、非公開設定をすることができる。
用語
プログラムのソースコードなどのデータを保存しておく場所
- ローカルリポジトリ
自分のPC上のリポジトリ
- リモートリポジトリ
- インデックス
リポジトリにコミットする前の準備用のファイル。(直訳で目次)
コードをコミットする前に、インデックスに変更した内容を追加する必要がある。
- コミット
インデックスの内容を読み取り、変更点をローカルリポジトリに登録する。
コミットのコマンドを打たないと、クライアント環境で書いたコードなどは
ローカルリポジトリにも反映されない。
また、リモートリポジトリには反映されない。
- プッシュ(送信)
GitHubにコードを公開するまでの流れ
クライアント環境で書いたコードをGitHub上に公開するまでの
流れは以下のとおりになります。
1. インデックスに追加
クライアント上で変更した内容を、インデックスに追加する。
2. コミット
インデックスの内容を読み取り、ローカルリポジトリにコミットする。
3. プッシュ
ローカルリポジトリの内容をリモートリポジトリ(GitHub)にプッシュ(反映)する。
リモートリポジトリを作成する
まず、GitHub上にリモートリポジトリを作成します。
GitHubにログインし、アカウント画像の左側の+ボタンをクリックし、
[New repository]をクリックします。
リポジトリの名前(Repository name)、
説明文(Description)を入力します。
公開範囲は有料版を購入しないとPrivateに設定できないため
Publicに設定します。
【Initialize this repository with a README】は、リポジトリの中にあらかじめ
READMEファイルを作成しておく場合に、チェックします。
この設定はあとから設定できるため、任意の設定を実施ください。
私はひとまず、チェックを入れ、Add .gitignore:None、Add a licens: Noneと
設定しております。
設定後、[Create repository]をクリックし、リポジトリを作成します。
リポジトリが作成されると、以下のように表示されます。
リポジトリ名と、説明文(description)が表示されることを確認します。
リモートリポジトリとの連携方法
リモートリポジトリを作成後、クライアント環境のコマンドラインにて
リモートリポジトリを操作できるよう設定します。
以下の操作はCentOSで操作しています。
CentOSにgitのインストール
すでにインストールされている可能性があります。
# yum install git
Githubのリポジトリをclone
GitHubにあるリモートリポジトリをクライアント環境に
clone(複製)します。
GitHubよりClone用のURLを取得します。
緑色の[Clone or download]をクリックすると、
Clone用のURLが取得できます。
上記のURLを元に、CentOS上で以下のコマンドを実行します。
# git clone https://github.com/[ユーザーID]/[リポジトリ名].git
変更した内容をインデックスに反映
上記でリポジトリの複製後、リポジトリのファイルを変更し、
その変更情報をインデックスに反映させます。
今回、新たにtextファイルを追加し、インデックスに反映します。
//hoge.textを作成 # touch hoge.text //変更状況をインデックスに反映 # git add . //変更内容を確認 # git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: hoge.text
変更内容のコミット
git commit -m "<変更した内容を入力する>"
変更内容のpush(masterブランチに反映する)
# push -u origin master Username for 'https://github.com': [GitHubのユーザー名を入力] Password for 'https://username@github.com': [GitHubのパスワードを入力] //ユーザー名:パスワードを入力すると以下のようなメッセージが表示されます。 Counting objects: 3, done. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 265 bytes | 0 bytes/s, done. Total 2 (delta 0), reused 0 (delta 0) To https://github.com/[ユーザー名]/[リモートリポジトリ名].git a21171d..848282e master -> master Branch master set up to track remote branch master from origin.
以上を実施後、GitHubのリポジトリを確認すると以下のようになります。
※commitした内容、回数などが増えていることを確認してください。
以上が、リモートリポジトリにpushするまでの操作方法になります。
ブランチについて
Gitではブランチという概念があり、
ブランチという単位でソースコードを分岐して記録していくためのものです。
ブランチを操作する場合は、以下の操作を実施します。
ブランチの作成
//branch1という名前でブランチを作成します。 # git branch branch1 //ブランチの表示 //*がついている方が現在のブランチになります。 # git branch branch1 * master
ブランチの切り替え
ブランチを切り替える場合は、以下の操作を実施します。
//ブランチの切り替え # git checkout branch1 //ブランチの表示 //*が切り替え先のブランチになっていることを確認します。 # git branch * branch1 master
ブランチを切り替えた後、試しにファイルを作成し
リモートリポジトリにプッシュしてみます。
//huga.textを作成 # touch huga.text // インデックスに追加 # git add . //コミット # git commit -m "create huga.text" //リモートリポジトリにプッシュ # git push -u origin branch1
プッシュが完了すると、以下のように表示されます。
また画面上のbranchのプルダウンメニューよりブランチを切り替え
huga.textが表示されることを確認してください。
■おまけ
ブランチを元のブランチに切り替え、フォルダの中身を表示すると、
huga.textなどがないことを確認できます。
# git checkout master Switched to branch 'master' # ls hoge.text README.md
ブランチのマージ
分岐したブランチを一つのブランチに統合する場合は、以下の操作を実施します。
//統合する先のブランチに切り替える # git checkout master Switched to branch 'master' //統合する元のブランチを指定し、ブランチを統合する # git merge branch1 //マージされる内容が表示(huga.textの作成) Updating 61de984..2e1bee7 Fast-forward huga.text | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 huga.text //あとはいつもどおりpushする(commitなどは不要) # push -u origin master
以上の操作を実施すると、branch1で変更した内容が
masterブランチでも反映されます。