比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。
コメント: Migrated to Confluence 5.3
情報

これは cybozu.com インフラ開発チームが社内で使用しているマニュアルを一部修正したものです。 のインフラ開発チームが社内で使用しているマニュアルを一部修正したものです。
一般的に Git や GitHub の使い方を指南するものではありません。

文中の GitHub はほとんどの場合、サイボウズ社内で利用している GitHub Enterprise のことを指しています。
操作例については Ubuntu 12.04 での動作を前提としています。 での動作を前提としています。フィードバックはこちらにお願いします。

目次
minLevel2

Git とは

Git は分散バージョン管理システムと呼ばれるものの一つです。Subversion と比較すると、高機能だが複雑で難しいと言えます。「分散」とついているのは Subversion のように中央レポジトリがあるのではなく、各個人が手元に所有する分散したレポジトリを同期して使うモデルを採用しているためです。とはいえ、現実的にはほとんどのチームで GitHub でホストする共有の中央レポジトリを持つことになるでしょう。こうした場合 git の最大の特徴は後述するブランチとマージの管理が優れていることです。例えば、特定の不具合の修正を他のブランチに取り込むといったことが簡単にできます。

...

origin に masterINFRA-1000 と stable に master ブランチがあることがわかります。
origin/master に対してなにかフィーチャーを実装することにしたとしましょう。次にやることは、ローカルブランチを origin/master から分岐して作ることです。

書式設定済み
$ git checkout -b INFRA-1001 origin/master
INFRA-1001
$ git branch
* INFRA-1001
  master
$ git remote show origin
* remote origin
  Fetch URL: github:hazama/infra
  Push  URL: github:hazama/infra
  HEAD branch: master
  Remote branches:
    INFRA-1000        tracked
    master            tracked
  Local branches configured for 'git pull':
    INFRA-1001 merges with remote master
    master     merges with remote master
  Local refs configured for 'git push':
    master     pushes to master

...

アーカイブ

情報

GitHub Enterprise 11.10.300 でアーカイブダウンロード機能が搭載されました。
以下の情報は古いものです。 (2013/02/01 追記) 

レポジトリではなく、ファイルだけを取得する git archive 機能は GitHub では提供されていません。クローンしてください。では提供されていません。クローンしてください。

毎日のビルドにつかうなら、こんな感じ。svn export よりむしろ高速です。

...

  1. レポジトリは小分けにする
    GitHub では誰でも自由にレポジトリを作れるので、関連性の薄いモジュールをひとつのレポジトリで管理する必要はありません。
    小分けにしている方が、フォークやクローンが速くて良いです。
  2. 共有レポジトリの変更は PULL リクエストで
    いきなり master に PUSH するのは止しましょう。
    ブランチから PULL リクエストを投げて、レビューを受けるようにしてください。
  3. むやみに共有レポジトリをフォークしない
    リソースがもったいないので、大きなレポジトリはむやみにフォークしてはいけません。
    PUSH 権限がない別のチームのレポジトリに PULL リクエストを投げるようなときに、フォークしましょう。

...

Tips

共有レポジトリの変更(PULLリクエストとか)を追いたい

...