ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    スポンサーサイト

    このエントリーを含むはてなブックマーク はてなブックマーク - スポンサーサイト あとで読む
    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    Gitの3つのデータエリア

    このエントリーを含むはてなブックマーク はてなブックマーク - Gitの3つのデータエリア あとで読む
    Git(ギット)の仕組みが分かりづらいと思っていた。
    データの置き場と、それに対する操作の違いを理解することで、Gitのモヤモヤがスッキリと晴れた。

    (1) 作業エリア
     ↓↑
    (2) ステージングエリア
     ↓↑
    (3) リポジトリエリア

    ローカルPCでバージョン管理をしているとき、Gitはこの3つのエリア間でデータをやりとりしている。

    Gitの3つのデータ領域

    サイバーエージェントのGitHub活用 ~ 導入から運用体制、開発フロー、勉強会による現場への普及活動まで:CodeZine

    いつやるの?Git入門 v1.1.0 from Masakazu Matsushita


    「Git ステージング」でGoogle画像検索すると、いろいろ分かりやすい図解が出てくる。


    第4回 Gitの基本的なコマンドと使い方:ハックガールズと学ぼう!ゼロから学ぶGit講座|技術評論社

    まず,Gitの概念として,下記の3つの「場所」を把握しておく必要があります。

    ・ワーキングディレクトリ(作業ディレクトリ)
    ・ステージングエリア
    ・Gitディレクトリ(リポジトリ)

    ワーキングディレクトリとは,その名の通り,自分自身が作業を行うローカルディレクトリのことです。
    ステージングエリアとは,位置的にはワーキングディレクトリとGitディレクトリの中間の位置にあります。
    Gitディレクトリ(リポジトリ)とはファイルやディレクトリの状態を記録する場所のことです。



    ワーキングディレクトリ,ステージングエリア,リポジトリ


    Git - Gitの基本

    三つの状態
    Gitディレクトリ、作業ディレクトリ、ステージング・エリアの三つの主要な部分

    Gitディレクトリは、プロジェクトのためのメタデータ(訳者注:Gitが管理するファイルやディレクトリなどのオブジェクトの要約)とオブジェクトのデータベースがあるところです。
    これは、Gitの最も重要な部分で、他のコンピューターからリポジトリをクローン(訳者注:コピー元の情報を記録した状態で、Gitリポジトリをコピーすること)したときに、コピーされるものです。

    作業ディレクトリは、プロジェクトの一つのバージョンの単一チェックアウトです。
    これらのファイルはGitディレクトリの圧縮されたデータベースから引き出されて、利用するか修正するためにディスクに配置されます。

    ステージング・エリアは、普通はGitディレクトリに含まれる、次のコミットに何が含まれるかに関しての情報を蓄えた一つの単純なファイルです。
    ときどきインデックスのように引き合いにだされますが、ステージング・エリアとして呼ばれることが基本になりつつあります。

    基本的なGitのワークフローは、このような風に進みます:

    1.作業ディレクトリのファイルを修正します。
    2.修正されたファイルのスナップショットをステージング・エリアに追加して、ファイルをステージします。
    3.コミットします。(訳者注:Gitでは)これは、ステージング・エリアにあるファイルを取得し、永久不変に保持するスナップショットとしてGitディレクトリに格納することです。



    作業ディレクトリ、ステージング・エリア、Gitディレクトリ


    図解 Git

    上記4つのコマンドは、作業ディレクトリ、ステージ(インデックスとも呼ばれる)、および履歴(一連のコミット)間でファイルをコピーします。

    ・git add files は files (の現在の状態)をステージにコピーします。
    ・git commit は、ステージの内容をコミットとして保存します。
    ・git reset -- files は、files のステージングを取りやめます。つまり、filesを最新のコミットからステージへコピーします。これは、git add files を取り消すのに使えます。また、git reset として、すべてのステージングを取り消すこともできます。
    Use this
    ・git checkout -- files は、filesをステージから作業ディレクトリへコピーします。ローカルの変更をすべて破棄するには、このコマンドを使って下さい。



    図解 Git


    git - 株式会社ウサギィwiki

    Subversion等、他のバージョン管理システムとの違い
    ステージングエリアと呼ばれる1段階を挟んでいる。

    ローカルリポジトリまではローカルで完結できるので、オフライン状態でも作業できる。
    ローカルの間は多少の無茶も出来る。
    また、ステージングエリアまでに複数の変更を保存しておき、意味的な粒度でリポジトリにコミットできる。

    作業ツリーからステージングエリアに変更を格納することをステージングといい、
    ステージングエリアからローカルリポジトリに変更を格納することをコミット(commit)といい、
    ローカルリポジトリから上流リポジトリに変更を格納することをプッシュ(push)するという。



    git のイメージ


    【git】SourceTreeで解説!間違えたときのgitコマンドとやり方 | NullNote

    ピンチを救う、各種修正するコマンドたち



    ミスを修正するコマンド

    Git のおさらい : 今日も適当ダイアリー

    Git Extensionsからリポジトリを操作する:CodeZine

    Commands | アトリエのどか式 Git入門

    Gitの3つのデータエリアを意識して、データの保存場所と操作を理解できれば、Git自体は簡単に使えるだろう。

    ローカルとリモートでコンフリクト(衝突)したときの解決方法は、また別に学ぶ必要があるだろう。

    開発効率をUPする Git逆引き入門
    松下 雅和 / 船ヶ山 慶 / 平木 聡 / 土橋 林太郎 / 三上 丈晴
    シーアンドアール研究所
    2014-04-09
    ¥ 2,376


    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/1084-770a3133

    FC2Ad

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。