Git&GitHubの変更点 - Masanoriのメモ帳

Git&GitHubの変更点

GitとGitHubについてのメモ
!!!GitHub
Gitを使ったリポジトリホスティングサービスであり、
”ソーシャルコーディング”の発祥の地といえるサイト。
https://github.com/
リポジトリ容量は無制限。公開リポジトリは、いくつでも作成可能&何人でも開発可です。
!!Pull Requestについて
[プログラマがGitHubとどう関わっているのか垣間見て感じたこと|http://hiroki.jp/2012/06/24/4477/]
Pull Requestを送るのに確認を取る必要はないということ...。
勝手にForkしてPull Requestしたらいい。その気軽さがGitHubの文化だそうです。

[GitHub直伝Pull Request活用の3つのコツ:海外テック情報局|http://gihyo.jp/dev/clip/01/tech_information/vol69/0001]
GitHub自身のプロジェクトでPull Requestをどのように使いこなしているか、触れられています:
!!コミットログについて
基本的に英語文化です。なのでコミットログも英語がベスト。
*[git commit するまえに考えるべき10のこと|http://hiroki.jp/2012/09/05/5523/]
*[ChangeLog を支える英語|https://gist.github.com/3938098] - よく使われる書き方のまとめ。コミットログを書くにも参考になります。

!コミットログで使えるIssue連携文字列
    fixes #24
    fixed #24
    fix #24
    closes #24
    close #24
    closed #24
    resolve #24
    resolved #24
    bugfix #24
    bugfixed #24
(引用: http://sue445.hatenablog.com/entry/2012/12/02/000132)
!!プロジェクトのライセンスについて
ライセンスについて特に規定はありません。
現に、GitHub上にはライセンスが明記されていないプロジェクトも少なからず見かけられます。
(ただし個人的には、READMEやLICENSEファイルなどにきちんと明記しておくことを推奨します。
ちなみに、MITやGPLがやはり多いですね。)
!!ブランチの運用について
[見えないチカラ: A successful Git branching model を翻訳しました|http://keijinsonyaban.blogspot.jp/2010/10/successful-git-branching-model.html] - 鉄板ですね。
私もこれを少し簡素にした感じで運用しています。
!GitHubクローン
GitHubでは、プライベートリポジトリは有料サービスとなっています。
そのため、無料で同様の機能を使いたいという開発者(オープンソースにできないプロジェクトの開発者)によって、GitHubクローンが開発されています。

中でも、[GitLab|http://gitlabhq.com/]が割と使いやすい感じです。
(※GitHub自体はオープンソースではないため、クローンといっても第三者によるフルスクラッチです。その為、細かい機能は色々と違います。またGitHubのほうが個人的には使い勝手が上だと思います。)
!!!gist
GitHubによる(Gitを使った)コードスニペット管理サービス。
https://gist.github.com/
ディレクトリは作成できないですが、単一または複数ファイルを管理できます。
(公開・非公開が選択でき、いずれも無料。)
ブログなどにコードシンタックスハイライトされたコードを表示できるHTMLコードも生成できます。
!!gistコマンド
公式ではないようですが、Gistをコマンドラインから操作できるコマンド。
スクリプトをサッと書いてアップできるわけです。
https://github.com/defunkt/gist

元々のバージョンのgistコマンドでは、GitHubのID/パスワードをローカルの設定ファイルに記述する必要があるのですが、ForkされたバージョンでOAuth2でアクセスできるものがありました: https://github.com/dr4g0nnn/gist

また、関係ないのですが、VimやSublime Textなどのエディタからサクっと操作できる同様のプラグインもあります。
!!二段階認証を設定している場合にGistをcloneするには
Gistは通常HTTPSでcloneしますが、GitHubで二段階認証を設定している場合には
認証パスワードとして、別途発行されたランダムな文字列のパスワードを入力する必要がでてきます。
GistはふつうHTTPSでcloneしますが、GitHubで二段階認証を設定している場合には
認証パスワードとして、別途ランダムで発行しておいた文字列を入力する必要がでてきます。
そのパスワードをPC上に記憶させておくこともできますが、
それよりも、SSHでcloneする(公開鍵認証を使う)ことを推奨します。

拙作ですが、GistをSSHでCloneするためのスクリプトがありますので、よければご利用ください。
https://gist.github.com/mugifly/7147811
(これがなくとも手動でもできますが、少し面倒です。)

このスクリプトをパスが通るディレクトリへ入れておくと...
 $ sudo cd git-clone-ssh.pl /usr/local/bin/gist-clone-ssh
次のように、楽にGistをSSHでcloneできます。
 $ gist-clone-ssh https://gist.github.com/mugifly/7147811

----
!!!Git
VCSの一つ。Linuxを管理するプロジェクトにも使われている(...というか元々その為に開発された)。
!!すべてのリモートブランチをローカルに取得する
https://gist.github.com/mnogu/3844699
リモートのリポジトリサービスを移行する場合にも、これを応用すれば丸ごと移行が可能です。
!!簡単な用語
自分用まとめです。間違っている可能性もあります。ご了承を。
!ワーキングツリー / working tree
作業場所
!インデックス / index
コミットされるファイルを管理する領域
!クローン / clone
リモートリポジトリからローカルリポジトリを作成すること (複製)
(Subversionのチェックアウトと異なるのは、リポジトリの履歴なども含めてまるごとを「複製」することである。)
!コミット / commit
インデックスに登録された内容をローカルリポジトリに反映すること。(SVNのコミットに近い)
!プッシュ / push
ローカルリポジトリからリモートリポジトリへ変更を送信すること。
!プルリクエスト / pull request
他人のリポジトリへ差分パッチを送ること。
githubでは、他人のリポジトリへ直接プッシュすることはできない。以下の手順のようになる。
* 他人リポジトリをcloneすることで、自分用ローカルリポジトリを作る
* 自分用ローカルリポジトリへコミットしていく...
* 他人リポジトリをforkすることで、自分用リモートリポジトリをGithubに作る。
* 自分用ローカルリポジトリから自分用リモートリポジトリへプッシュする。
* 自分用リモートリポジトリから、他人リポジトリにへ"プルリクエスト"を送る
* 他人リポジトリのオーナーが、受け取ったプルリクエストをマージすることで他人リポジトリに反映される。
----
{{category CategoryIndex,Git,プログラミング,nolink}}


メニュー


未整理

Linux

プログラミングx

Android

サービス

製品

執筆中


筆者のサイト


スポンサード リンク