Category Archives: git

GitHubの任意のバージョンを取得する方法

1
Filed under git
Tagged as ,

GitHubで公開されているプロジェクトの、最新版ではない特定バージョンの取得方法をまとめました。

今回取得するのは、appiraterというライブラリの2012年夏のバージョンです。
具体的には、このページにある “Aug 30, 2012” のバージョンを取得します。

まずはclone

まず、通常通り次のようなcloneコマンドで最新リポジトリを取得します。

1
$ git clone git://github.com/arashpayan/appirater.git

checkoutコマンド

で、次に、git cloneしたディレクトリ内で、checkoutコマンドを実行することで指定バージョンにすることが出来ます。
そのcheckoutコマンドに渡す引数ですが、GitHubで表示されているハッシュ値を指定します。
今回作業対象としている “Aug 30, 2012” のバージョンでしたら、そのページにあるこの16進数文字列になります。

github_sha_string

この文字列をコピーした後、ターミナルでgit cloneしたディレクトリの中に入って、下記のようにコマンドをペーストすることでそのバージョンに設定されます。

1
$ git checkout fe6c9a2aee8ccdf78b3f3713e29e6468080fe4ab

[AD]

↓いろんな書籍がKindleで出ていますね!git本もあった!

カテゴリ:


↓やっぱり欲しいKindle Paper White★★★

Kindle Paperwhite Wi-Fi (第5世代)

Kindle Paperwhite Wi-Fi (第5世代)

定価:¥ 7,980

カテゴリ:エレクトロニクス

発売日:2012-11-19


GitHubでPull Requestしてみた

0
Filed under git
Tagged as , ,

オープンソースで公開されているソースを修正し、本体に取り込んでもらうこと、これをソーシャルコーディングと言います。
GitHubでは、Pull Requestを送ることがそれにあたります。
ちょっと試しに使っていたライブラリにバグを見つけ、簡単に直せたので、トライしてみました。

今回の作業対象は次のリポジトリです。

1. Fork

まず、ベースとなるライブラリをForkします。
GitHubウェブサイトで行います。
元になるライブラリのページを開き、右上にある『Fork』ボタンを押します。
github-fork
しばらくすると、Forkが完了します。
github-fork-done

2. clone

次に、Forkしたリポジトリをcloneします。
ターミナルで下記のように、自分側のリポジトリをcloneします。

1
$ git clone git@github.com:HiromichiYamada/JSBadgeView.git

3. branch

作業用にブランチを切りますが、その前に、まずは下記のコマンドで一旦現状を確認してみます。

1
2
3
4
5
6
$ cd JSBadgeView/
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master

作業用ブランチは”work”と名付けて、下記のコマンドでブランチを切ります。

1
2
3
4
5
6
7
8
$ git checkout -b work master
Switched to a new branch 'work'
$ git branch -a              
  master
* work
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master

すぐに作業しているブランチが切り替わった(workに*が付いている)のが分かります。

4. コード修正

切り替えたブランチ”work”で、コードを修正します。
つまり【Forkしたリポジトリの、作業用ブランチでコードを修正】するということですね。
動作確認もしておきましょう。

5. 修正確認

修正が完了したら、ターミナル上でもコードの変更点を確認しておきます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ git diff
WARNING: terminal is not fully functional
diff --git a/JSBadgeView/JSBadgeView.m b/JSBadgeView/JSBadgeView.m
index a0c5348..76c60f7 100644
--- a/JSBadgeView/JSBadgeView.m
+++ b/JSBadgeView/JSBadgeView.m
@@ -145,8 +145,8 @@
             newFrame.origin.y = (superviewHeight - viewHeight) / 2.0f;
             break;
         case JSBadgeViewAlignmentBottomLeft:
-            newFrame.origin.x = -textWidth / 2.0f;
-            newFrame.origin.y = (superviewHeight - viewHeight) / 2.0f;
+            newFrame.origin.x = -viewWidth / 2.0f;
+            newFrame.origin.y = superviewHeight - (viewHeight / 2.0f);
             break;
         case JSBadgeViewAlignmentBottomRight:
             newFrame.origin.x = superviewWidth - (viewWidth / 2.0f);

6. commit

この変更点を下記のようなコマンドでコミットします。

1
2
3
4
$ git add JSBadgeView/JSBadgeView.m
$ git commit -m "Fix layout bug for JSBadgeViewAlignmentBottomLeft"
[work b099562] Fix layout bug for JSBadgeViewAlignmentBottomLeft
 1 file changed, 2 insertions(+), 2 deletions(-)

7. push

リモート(GitHub側)にPUSHします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ git push origin work
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 411 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
To git@github.com:HiromichiYamada/JSBadgeView.git
 * [new branch]      work -> work
yamadambp:JSBadgeView Hiromichi$ git branch -a
  master
* work
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master
  remotes/origin/work

これでPUSH完了です。
リモート側にも、remotes/origin/work が作成されていることが分かります。

8. Pull Request

GitHubの該当リポジトリページで確認してみると、確かに”work”ブランチが増えている事がわかります。
github-branch-work
この中身を見ると、実際にソースも修正されています。
今の状態は【Forkしたリポジトリの、作業用ブランチでコードを修正】が出来た、ということですね。
この状態をFork元に、Pull Requestします。
“work”ブランチであることを再確認し、ページ上部の『Pull Request』ボタンを押します。
github-pullrequest-button
送信先と、送信元を確認したら(グラフィックが多用されていて分かりやすいですね!)コメントを記入し、下部にある『Send pull request』ボタンを押します
github-pullrequest-send
これでPull Request完了です!

9. merged

あとは修正側でやることはありません。元リポジトリのコミッタの対応を待つだけです。
今回の場合、直ぐに本体側でmergeしていただけました。
github-merged

参考ページ


[AD]

↓今回とてもお世話になった雑誌。Pull Requestについて詳しく書かれています!

WEB+DB PRESS Vol.69

著者/訳者:大塚 弘記 渡辺 修司 堤 智代 森田 創 中島 聡 A-Listers はまちや2 川添 貴生 井上 誠一郎 近藤 宇智朗 ヒノケン 後藤 秀宣 佐藤 鉄平 mala 奥野 幹也 伊藤 智章

出版社:技術評論社( 2012-06-23 )

定価:

大型本 ( 192 ページ )

ISBN-10 : 4774151041

ISBN-13 : 9784774151045


↓Chapter 12にGitHubの使い方があるようですよ!

アリスとボブのGit入門レッスン

著者/訳者:川野辺 正博

出版社:秀和システム( 2012-09-18 )

定価:

Amazon価格:¥ 18,725

単行本 ( 288 ページ )

ISBN-10 : 4798035009

ISBN-13 : 9784798035000


GitHubからPermission deniedと言われたら

0
Filed under git
Tagged as ,

何度もハマっているので、メモしておきます。

Permission denied!

久しぶりにGitHubを使うと、言われるのが、Permission denied (publickey)

1
2
yamadambp:~ Hiromichi$ ssh -T git@github.com
Permission denied (publickey).

octocat: permission denied
こう言われた時には、下記のようにしてSSH鍵への設定を設定を追加すればOKです。(私の場合。。)

まず、現状を確認。

1
2
yamadambp:~ Hiromichi$ ssh-add -l
2048 aa:aa:99:9e:a5:7f:eb:d9:0d:1d:bf:1e:1f:1b:aa:aa /path/to/other_id_rsa (RSA)

↑本当はここにGitHub用の鍵ファイルも表示されて欲しいけど、見当たらないのが問題です。

次のようにして追加します。

1
2
3
yamadambp:github Hiromichi$ ssh-add /path/to/github_id_rsa
Enter passphrase for github_id_rsa: <パスワードを入れます>
Identity added: github_id_rsa (github_id_rsa)

上記設定後に再確認。

1
2
3
yamadambp:github Hiromichi$ ssh-add -l           
2048 aa:aa:99:9e:a5:7f:eb:d9:0d:1d:bf:1e:1f:1b:aa:aa /path/to/other_id_rsa (RSA)
2048 aa:aa:99:1a:d0:7f:d7:a8:63:ba:11:d1:19:50:aa:aa github_id_rsa (RSA)

↑OKですね!

1
2
yamadambp:github Hiromichi$ ssh -T git@github.com
Hi HiromichiYamada! You've successfully authenticated, but GitHub does not provide shell access.

↑無事、GitHubへのアクセスも出来ました!


[AD]

↓GitHubを使うにあたり、参考にしています!

WEB+DB PRESS Vol.69

著者/訳者:大塚 弘記 渡辺 修司 堤 智代 森田 創 中島 聡 A-Listers はまちや2 川添 貴生 井上 誠一郎 近藤 宇智朗 ヒノケン 後藤 秀宣 佐藤 鉄平 mala 奥野 幹也 伊藤 智章

出版社:技術評論社( 2012-06-23 )

定価:

大型本 ( 192 ページ )

ISBN-10 : 4774151041

ISBN-13 : 9784774151045


↓会話形式で本文が書かれているので、分かりやすそう!

アリスとボブのGit入門レッスン

著者/訳者:川野辺 正博

出版社:秀和システム( 2012-09-18 )

定価:

Amazon価格:¥ 18,725

単行本 ( 288 ページ )

ISBN-10 : 4798035009

ISBN-13 : 9784798035000


cocos2dでメモリ情報を表示+カテゴリを公開!

0
Filed under git, Objective-C
Tagged as , , , ,

最近cocos2dを使い始めたのですが、メモリ使用量などの情報表示について調べたので、その結果をまとめておきます。

メモリ情報表示コード

ネット上でサクッと次の二つの情報を見つけることが出来ました。

こちらは、標準のフレームレートを表示しているデバッグ情報のところに残りメモリ量を表示する仕組みを実現しています!
素晴らしい!

こちらは前述のサイトをベースに、「残り量」ではなくて「使用量」を表示するようにしています。
様々な環境で利用可能メモリ量は違うので、こちらのほうが有益ですね。

カテゴリがいいんじゃない!?

さて、上記サイトの実装は素晴らしいのですが、こういう機能追加こそ、Objective-Cのカテゴリ機能を使うべきだと思ったので、カテゴリで実装しなおしてgithubにて公開してみました!
(カテゴリって?という方はこちらを御覧ください→「Objective-Cの既存のクラスを拡張する仕組み « TORQUES LABS」
octocat-mini

  • HiromichiYamada/CCDirector-MemoryStats · GitHub


使い方は簡単!
CCDirector+MemoryStats.h、CCDirector+MemoryStats.m の二つのファイルをプロジェクトに追加し、ビルドするだけで、こんな感じで表示されます。
CCDirector+MemoryStats
左下に表示しているものはshowStatsメソッドで指定しているので、必要に応じてソースを書き換えてください。


[AD]

↓今回githubにリポジトリを作るときに参考にしました!

WEB+DB PRESS Vol.69

著者/訳者:大塚 弘記 渡辺 修司 堤 智代 森田 創 中島 聡 A-Listers はまちや2 川添 貴生 井上 誠一郎 近藤 宇智朗 ヒノケン 後藤 秀宣 佐藤 鉄平 mala 奥野 幹也 伊藤 智章

出版社:技術評論社( 2012-06-23 )

定価:

大型本 ( 192 ページ )

ISBN-10 : 4774151041

ISBN-13 : 9784774151045


↓この書籍、購入済みなので、もうそろそろ届く頃です!

改訂2版 Objective-C逆引きハンドブック

著者/訳者:林 晃

出版社:シーアンドアール研究所( 2012-05-26 )

定価:

Amazon価格:¥ 4,104

単行本(ソフトカバー) ( 864 ページ )

ISBN-10 : 4863541058

ISBN-13 : 9784863541054