リーナストーバルス氏がGitで本当に目指した大事なものの勘所(6/6)


その5から続き

まとめ

  • gitは 自分のオレオレレポジトリを、自由にローカルに持てる
    • git上レポジトリ間は、直列の関係ではなく、並列の関係。
    • 運用上他のレポジトリにチームの正式版としてコミットするのはgit機能の話ではなく、自分たちで開発しやすいようにしているルールの話。
  • 作業は、現在のブランチによる指定したものをカレントのように扱い、コミット単位のスナップショットとして、全ファイル情報を実質保持している。
    • 実現方法は参照によるスナップショットのため、マージ、ブランチ等の作業も、コミット単位で素早く変更できる。
    • コミットについても、変わった分以外は参照ですむため、時間はかからなくスピーディである。そのため、気軽にブランチを切るなどして、試すことが可能。
    • ワーキングディレクトリ、インデックスともに、コミットされた カレントブランチ(さらにデフォルトでは最新のHEAD)を意識した運用が想定されている。
  • gitではステージング機能で、コミット内容を確認するユースケースが想定されている。
    • 変更については、数千万行の数千万のファイルがあったとしても、違いが把握されるように設計しているため、意図しない変更に気付きやすくしている。

 

よくある間違い

リモートと連携するのがワンセット

リモートがメインではなく、ローカルがメイン。リモートから持ってきているのは単なるあなたのプロジェクトの方針です。リモートに誰でも考えなしにpushできてしまうのでは、subversion以前の状態です。運用でテストやチェックをしているはず。

ローカルで自分な好きなところだけいじれるようになってます。

・ステージングが邪魔

開発したものを取り込むときに、たとえ1行でも確認は必須であり、間違いや認識外の情報がないかは必ずチェックしなければなりません。それらを確認するためにステージングはとても便利な機能です。

・履歴を綺麗にする(rebase,reset)

簡単に戻せるので、消すのは推奨できませんし、履歴が汚いとか気にする必要はありません。むしろ情報のロストのほうが致命的です。

rebase は推奨されない。サブ的なユースケース。綺麗だからと日常的にしない。

 

補足:自由な取り込みできる機能

 

好きなモノを取り入れられる仕組み、フォローやRSSなどの機能が git-hubにあります。gitの信頼したいレポジトリと関係性を持ちやすくするようなソーシャルな機能の強化がされています。

ソーシャル化するOSS開発者たち - @IT
http://www.atmarkit.co.jp/news/analysis/200904/14/git.html
GitHubには、SNSやTwitterなどで一般化したソーシャルな機能が数多く実装されている。気になる開発プロジェクトをウォッチできるだけでなく、特定の開発者を“フォロー”することで、その人がコミットしたり、ほかの人のコミットに対してコメントした内容がライフストリームとしてタイムラインに表示されるようになる。

補足:サブバージョンも意味のあるケースはある。

企業のウォーターフォールモデルも否定しているわけではない。

必ず中央で管理する必要はあると認識しています。

ソーシャル化するOSS開発者たち - @IT
http://www.atmarkit.co.jp/news/analysis/200904/14/git.html
リーナスも、svnのような集中管理型がうまくいくケースがあることは認めている。

 

 

Delicious にシェア
Digg にシェア
reddit にシェア
LinkedIn にシェア
LINEで送る
email this
Pocket

248 views.



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です