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


git-min

gitの仕組みについてはこちら

【Git】そろそろGitをしっかり理解しておきたい時向けの勘所を狙って説明してみるチャレンジ

【VisualStudioCode】使えるコマンドや機能例ショートカットから拡張機能まで【大まとめメモ】

はじめに

Git という ソースなどで使う管理システムは、いろいろなところで説明されていますが、全体像よりも局所的な構成や使い方が多いです。gitの話なのですが、cvsなどの概念をベースにしたものもあり、軸が違うため内容が理解し難いことがよくある気がしています。

例えば、ステージングを省く方法がかなり主要なところに記載されていたり、ブランチの考え方など肝心な部分が抑えられていないような気がしてます。正しく、本質を捉えていないのではないか。subversionとの違いがごっちゃになっていないか?私からみるとうまく設計されているように見えるけど、コアな部分について非難があるのは本質の流れが見えていないのでは?

そこで、もうちょっと 設計思想やデータの軸が見えてくれば、みんなの混乱が減り理解しやすくなると思うので、頭のなかにモヤッと理解していたものを、説明できるように明文化してみました。

 

なのでこのページでは

Gitの勘所と 中心の軸や 大枠のフレームを説明してみたいと思います。

(わかっている人には当たり前かもしれませんが)

一番大事な理念

想定している使用ケースも含めて考えます。

git全体を流れている設計思想の軸となる、一番肝心なことは、みんながそれぞれ自分が管理できていている別のレポジトリを持ち、バラバラで自由である。ということです。

自由にいじれ、正しく取り込めるようにするのが主目的です。

 

またリモートが主で、ローカルが従な関係でもありません。ローカルだけで独立しています。リモートは連携するため、よりソーシャルな関係で開発するための、サブ機能です。

git init

これはローカルにひとつのレポジトリを作るコマンドです。たったこれだけです。

このコマンドがスタート地点で、このシンプルなコマンドに全てその考えが含まれているように聞こえます。

複数プロジェクトを行う場合、 レポジトリ=ディレクトリ=プロジェクトと 1対1対1の関係がすっきりすると思うので、別のプロジェクトでのレポジトリは、別のディレクトリを作り git initするのでよいかと思います。

気兼ねなくいじるためには、編集時点を気軽に行ったり来たり、戻せたりできる必要があります。また、その作業に時間がかかるようでは、億劫になってしまいます。

また、取り入れるものの差分と現在の取り込み先の状態に変化があるのか、差分はあるのか、前回コミットしたものと同じなのか、正しい目的にあったパッチとなっているのかを気軽に確認できる必要があります。

つまり大事な点を実現するためにこの2つのことが必要になりますので、次にそれを説明したいと思いますが、

まず先になぜこれが一番重要か経緯を話します。(トバしてもよいです)

 

 その2へ続く

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

477 views.



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

  1. 2016/10/21 at 08:32

    リーナストーバルス氏がGitで本当に目指した大事なものの勘所(1/6) https://t.co/qcS1ppD2Hd @naturalluckyさんから

コメントを残す

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