Git&GitHub - Masanoriのメモ帳

Git&GitHub


GitとGitHubについてのメモ

GitHub

Gitを使ったリポジトリホスティングサービスであり、
”ソーシャルコーディング”の発祥の地といえるサイト。
https://github.com/
リポジトリ容量は無制限。公開リポジトリは、いくつでも作成可能&何人でも開発可です。

 Pull Requestについて

プログラマがGitHubとどう関わっているのか垣間見て感じたこと
Pull Requestを送るのに確認を取る必要はないということ...。
勝手にForkしてPull Requestしたらいい。その気軽さがGitHubの文化だそうです。

GitHub直伝Pull Request活用の3つのコツ:海外テック情報局
GitHub自身のプロジェクトでPull Requestをどのように使いこなしているか、触れられています:

 コミットログについて

基本的に英語文化です。なのでコミットログも英語がベスト。


コミットログで使える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 を翻訳しました - 鉄板ですね。
私もこれを少し簡素にした感じで運用しています。

GitHubクローン

GitHubでは、プライベートリポジトリは有料サービスとなっています。
そのため、無料で同様の機能を使いたいという開発者(オープンソースにできないプロジェクトの開発者)によって、GitHubクローンが開発されています。

中でも、GitLabが割と使いやすい感じです。
(※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で二段階認証を設定している場合には
認証パスワードとして、別途ランダムで発行しておいた文字列を入力する必要がでてきます。
そのパスワードを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では、他人のリポジトリへ直接プッシュすることはできない。以下の手順のようになる。




スポンサード リンク



メニュー


未整理

Linux

プログラミングx

Android

サービス

製品

執筆中


筆者のサイト


スポンサード リンク