39Si

プログラミング関連の勉強した内容を簡単にまとめておきます

Github を使う

前回に Git の最低限の使い方だけ覚えたので、次はGithubの使い方を覚えることにした。
これも前回と同様に難しいので必要最低限だけ覚えておくことにした。
(本当はしっかり理解したいけどね)

前回のGitに関する記事↓

Github とは

 簡単に言うと Github は Git で利用しているローカル環境の内容ををウェブ上で保存や公開を行うことができるサービスの事です。
 詳しくは他の方のページを見た方がいいと思います。

GitHubを使ってみよう!導入と簡単な流れ、よく使うコマンドなど。 - YATのBLOG

「そもそもGitって何?」、「GitとGitHubは何が違うの?」にシンプルに答えるよ - Six Apart ブログ

基本は pull と push

 Git のローカルリポジトリGithubリポジトリとの連携を取るために必要なコマンドが pull と push でしょう。 pull は Githubリポジトリの変更点をローカルリポジトリに統合し、push は逆のようです。

  pull : Github → ローカル
  push : ローカル → Github

・ push する ([user] と [repository] は変更が必要。)

$ git push https://github.com/[user]/[repository].git

・pull する ([user] と [repository] は変更が必要。)

$ git pull https://github.com/[user]/[repository].git

一連の流れ(よく使いそうな流れだけメモしておく)

Githubで新しくリポジトリを作成してローカルからpushする。 [user] と [repository] は変更が必要。

$ git init
$ git add .
$ git commit -m "hoge"
$ git remote add origin https://github.com/[user]/[repository].git
$ git push -u origin master

Github のソースを利用し、ローカルで編集した後にpushする。 このパターンがもっとも利用すると思う。

$ git clone https://github.com/[user]/repository].git
$ git add .
$ git commit -m "hoge"
$ git push origin master

README.md を作成する。

 README.md ファイルは、 Github で公開する際に他者にツールの使い方やインストールの方法などを説明するために重要なものです。
また、自分で作成したソースの説明などを簡単に書いておくことで自分にとっても便利なものになります。
メモ帳で作成すればいいのですが、Markdown 記法を使うのでよく使うものだけメモしておく。

改行:半角スペース二つ  
見出し:# を入れる  
段落:空行を開ける  
リンク:<>でURLを囲む  
コード:バッククォーテーションで囲む  

わかりやすいREADME.mdを書く | SOTA

エラー:ローカルリポジトリGithub の公開リポジトリを変更した際に連携がうまく取れない

 Github を利用する際に pull もしくは push をするときにローカルリポジトリと公開リポジトリの両方を変更した際にエラーが出るのは目に見えている。実際に試してみると確かにエラーが出た。
以下は Githubからローカル環境にpull しようとしたが、ローカルリポジトリの README.md を変更し、push していなかったためでエラーが出ている。

$ git pull origin master
error: Your local changes to the following files would be overwritten by merge:
    README.md
Please, commit your changes or stash them before you can merge.
Aborting

 このエラーに関して賢い解決方法は不明だが、自分なりに解決方法を考えた。
ローカルの変更は無視してGithubの内容を pull したい時を想定すると、
マージする際に書き換える元のファイルが前のバージョンと異なっていることが原因であるので、 一度ローカルリポジトリのバージョンを落とすのがいいと思う。
実際にやるとうまくいった。
他のやり方はまた時間のあるときにでも調べたいと思う。

$ git reset --hard [id/(HEAD)]

最後に

 今回は深入りすると大変そうなので、なるべく簡単なところだけを覚えて最低限使えるように意識した。もう少し理解したいが、本業でないし、複数人で開発を行ったりしないため時間があれば勉強しようと思う。また、push や pull をする際に ssh を利用している人が多いみたいだったが、その辺もそのうち覚えていこうと思う。