アクションに使用される単語の意味が見つからなかったため、gitを理解するのが難しいと思います。辞書で「ステージ」の意味を確認しましたが、ソース管理の概念に関連する意味はありませんでした。
gitのコンテキストで「ステージ」とはどういう意味ですか?
コメント
回答
ファイルをステージングするにはコミットのためにそれを細かく準備するだけです。 Gitは、そのインデックスを使用して、前回のコミット以降に行った変更の特定の部分のみをコミットできます。たとえば、2つの機能に取り組んでいます。1つは終了し、もう1つはまだ作業が必要です。コミットして家に帰りたい(5時、ついに!)が、まだ行われていない2番目の機能の部分をコミットしたくない。最初の機能に属することがわかっている部分をステージングする機能、およびコミット。これで、コミットは最初の機能が完了したプロジェクトであり、2番目の機能はまだ作業ディレクトリで進行中です。
コメント
- わかりやすい説明です。gitは配布されているため、明らかに両方の機能をコミットできます。コミットはローカルであるため(最初は)、それでも、変更を機能ごとに1つのコミットに分割することをお勧めします。また、ステージングが役立ちます。
- 私は’このためにステージングが必要な理由を理解していません。関連するファイルをコミットするだけで、HGまたはSVNでこれを行うことができます。この機能は主に、コマンドラインでの作業を主張する人々を支援するために設計されているようです’難しいt oコミットする内容のチェックボックス。
- @jiggy gitを使用すると、ファイルの一部をステージングできます。ファイルをステージングし、さらに変更を加えてから、ステージング時の状態をコミットすることもできます。 ‘サブバージョンではそれを行うことはできません。
- @jiggy SVNでは、コミットするファイル/ファイルの一部を選択する時間の間に何かがあります。コミットメッセージを書き終えると、コミットするために選択したファイル/パーツが記録されます。明示的に言及されることはなく、リポジトリの実際の部分ではなくSVNクライアントに実装されている可能性があります。メモリ内のいくつかのフラグである可能性がありますが、それはSVN ‘です。ステージ。 ‘ HGを見たことがありませんが、同じことをしていると思います。 gitとの違いは、gitがそれを認識し、ディスクに記録して、ユーザーが直接アクセスできるようにすることです。
- 2番目の矢印”図のステージファイル”は誤解を招く可能性があります。 “ステージハンク”の方が正確かもしれませんか?
回答
これまでのところ誰もが「正式な」方法で答えているので、比喩の力で学習を強化するための代替手段を使ってこれを行いましょう。
つまり、ステージング領域は次のようなものです。
- コミットするファイルのキャッシュ
- シリーズではありませんチューブの数ですが、実際にはダンプトラックで、ロードした作業をリポジトリに移動する準備ができています。
- 選択したファイルが魔法のように石に変わり、魔法のように気まぐれなリポジトリ
- ファイルがリポジトリにうまく移動する(または元に戻したい場合は落ちる)ための黄色いレンガの道
- ファイルが置かれている港の架空の場所セメントの靴を受け取った後、倉庫の海に投げ込まれます
- 図書館の受付で、図書館員が図書館に提出する準備をするためにファイルをそこに置きます
- ベッドの下に押し込む前に物を入れるボックス。ベッドは、以前に押し込んだボックスのリポジトリです。
- ファイルの読み込みベイは、ファイルがリポジトリウェアハウスに入る前にパワーローダー
- 電動ドリップコーヒーメーカーのフィルター。ファイルがコーヒーパウダーのようなものである場合、コミットされたファイルは淹れたてのコーヒーです。
- 金庫の隣にあるスクルージマクダックのオフィス。ファイルは次のようになります。彼の巨大なマネービンの金庫に入る前のコイン
- ペットショップ、ペットを家に持ち帰ると、あなたは「コミット」します
それは
魔法の!
コメント
- 類推が大好き;芽を出す方法^ _ ^
- 最後の例えが大好きです。
- この答えは”必死に” gitインデックス= gitステージングの形而上学を説明するための一般的な試みのスペースの中で必要です。率直に言って、私は’また、Linusがインデックス領域が必要だと判断したときに何を考えていたかを知りたいと思います。私はそれが好きですが、それがなぜ’あるのが良いのか、そしてそれを最も効果的に使用する方法をもっとよく理解したいと思います。
回答
ステージングは、gitでのコミットプロセスの前のステップです。つまり、gitでのコミットは、ステージングと実際のコミットの2つのステップで実行されます。
変更セットがステージング領域にある限り、gitでは必要に応じて編集できます(ステージングされたファイルをステージングされたファイルの他のバージョン、ステージングからの変更の削除など)。
壊れたメタファー時間:
引っ越し業者に電話して、古いアパートから新しいアパートに荷物を運ぶシナリオを考えてみましょう。それをする前に、あなたはあなたのものを通り抜け、あなたがあなたと一緒に持っていくものとあなたが捨てるものを決定し、それをバッグに詰めてそしてそれをメインの廊下に残します。引っ越し業者は単に来て、廊下から(すでに梱包された)バッグを取り出して輸送します。この例では、引っ越し業者があなたのものを手に入れるまでのすべてがステージングです:あなたは何がどこに行くか、それをどのように梱包するかなどを決定します(例えば、引っ越し業者がそこに着く前にあなたの物の半分が捨てられると決めるかもしれません-それ」 sステージングの一部)。
技術的な観点から、ステージングは、すべての操作を失敗する可能性のあるもの(ステージング)と失敗できないもの(コミット)に分割することにより、トランザクションコミットもサポートします。
ステージングが成功した後、gitのコミットはトランザクションで実装されます。ステージングのいくつかのステップが失敗する可能性があります(たとえば、コミットする必要がありますが、HDDが99.9999%いっぱいで、gitにコミットを実行します)。これはステージングに失敗し(部分的なコミットによってリポジトリが破損することはありません)、ステージングプロセスはコミット履歴に影響しません(エラーが発生した場合にリポジトリが破損することはありません)。
コメント
- …これまでのところ投票はほとんどありません。
回答
ファイルをステージングすることは、コミットの準備をすることです。 gitはこのアクションをユーザー管理に公開するため、部分的なコミットを作成したり、ファイルを変更してステージングしたり、再度変更したり、コミットするか元の変更に戻すことしかできません。
ステージングではバージョン管理にアプローチする正確な方法をより細かく制御します。
回答
他の優れた回答に追加するために、「ステージ」の名前の由来は次のとおりです。
ステージの意味について辞書を確認しましたが、ソース管理の概念に関連する意味はありませんでした。
英語では、「ステージングする」とは
主催して参加することを意味します(公開イベント): UDFサポーターソフィアでデモンストレーションを行いました
( http://oxforddictionaries.com/definition/stage )
git機能の「ステージング」という名前は、次の意味に由来しています。ステージングするときは、コミットを準備して整理します。もちろん、コミットはパフォーマンスとまったく同じではありませんが、 はVCSの重要なイベントです:-)。
コメント
- ‘ dは、ステージング投稿 liでの使用により近いと考えました。 >
- 同上。また、”プロセスまたは開発のポイント、期間、またはステップ。”
- また’ステージングサーバー’は、開発と開発の間の’サーバーを説明するために使用されるかなり一般的な用語です。
回答
「ステージ」は、チェックインプロセスの技術的に必要な中間ステップです。ファイル、つまりリポジトリに追加する変更を収集します。 Gitの作成者は、他のVCSがコミットプロセスの一時的な部分にする場合に、このステップを表示して永続的にすることを選択しました。それで、gitが提供するオプションにすぎません。そうすることができるのはなぜですか?
私の見方では、gitの「ステージ」が他のVCSに与えない主なことは、ファイルをチェックポイントするために使用できることです。これは事実上、名前のない、コメントのないローカルコミットであり、その間の中間ステップを提供します。すべての作業が完了し、それをリポジトリに永続的にコミットし、ローカルリポジトリに何も保存されません。
たとえば、機能が部分的に終了したとします。機能は安定した状態で、すべてのテストに合格し、本番環境に移行できますが、さらに作業が必要です。すべての変更をステージングしてから、機能の作業を続行できます。
後で、ステージングしたものをコミットする(そしてそのコミットをリモートリポジトリにプッシュする)か、追加するかを選択できます。ステージング領域に新しい変更を加えてからそれを一度にコミットするか、新しい変更だけを元に戻して、作業ディレクトリを変更をステージングしたときの状態に戻します。
完全に可能です。ステージング領域を実質的に完全にスキップし、ステージング領域が有用な概念でないと思われる場合は、-a
オプションをgit commit
に使用します。多くの人がステージングをスキップし、GUIツールも通常これを許可します。
コメント
- “その他のVCSはありません’ t ” -どうしてそう思いますか?PERFORCEの棚上げは行っているようですあなたが説明していること、そして追加のベルやホイッスルが少しでも
- @gnatはい、もちろんです他の多くのVCSは、ステージングのようなものを提供します。 “他のVCS “とは’ gitのようなものを持たない他のVCSを意味します’ステージ、それはOPが参照していたものだからです。
- この答えは、
は、ステージングが存在する理由を明確にする唯一のものであり(技術的に必要)、その起源の説明です( Git ‘の作成者は、このステップを表示して永続的にすることを選択しました)。私が個人的に見つけたものを追加しました(中間の、名前のない、コメントのないローカルコミット) 。ただし、ステージングの起源に関する声明の出典を引用し、’が技術的に必要な理由についてもう少し詳しく説明することで改善できると思います。 。 @OldPro
- gitがゼロから設計されていた場合、これは一般化された”ブランチ”の一部であった可能性があります。コンセプト、ローカルで、この場合は他の人には見えません。同様に、” stash “は、ブランチ。”これにより、”ステージングお好みです。
回答
他のほとんどのバージョン管理システムでは、次の2つの場所があります。データの保存:作業コピー(現在使用しているフォルダー/ファイル)とデータストア(バージョン管理によって変更のパックと保存の方法が決定されます)。 Gitには、3番目のオプションがあります。ステージング領域(またはインデックス)です。 これは基本的に、どの変更が出荷されるかを決定するための積み込みドックです。
出典: http://gitready.com/beginner/2009/01/18/the-staging-area.html
コメント
- これは’以前の6つの回答よりも実質的なものを追加していないようです
- インデックスについて言及しています。そして、非常に徹底的な記事への参照。賛成。ところで、上記のいくつかの答えは単なる冗談です。
回答
私の理解では、ログイン機能を開発していて、完了するには5つの連続した手順が必要だと思います。したがって、ここでのステージングは、
ステップ1で行われたようなステップで作業するのに役立ちます。
ステップ2で行われたので、ステップ1とステップ2の両方が正しいステージになります。
ステップ3で混乱します。問題のチェックアウト最新の段階的なステップであるステップ2
5つのステップすべてを完了したら、機能が完了したことを意味し、コミットを実行します。
コメント
- これは’以前に作成および説明されたポイントに実質的な何かを追加していないようです9つの答え
- そうです、私は説明をシンプルで甘いものにしようとしました
- そして、この概念を実際に使用したいと思うことを説明しようとしました
- ここでの議論を検討してください: 2番目のTL; DRの回答は受け入れられますか?(FWIWは以前の回答と比較して’私にはシンプルでも甘くも見えません)
- ありがとうございます、質問があります。私は多くの答えに出くわしましたが、それらのほとんどは複雑すぎます。そうです、それらは正しいですが、一度に消化するのは難しいです。’簡単な方法で何かを説明できない場合は、正しく学習していないか、’使用方法がわかりません。それで、要約または答える簡単な方法を置くのは今悪いですか??
git add file.ext
を実行するか、git add .
は、変更されたファイルと追跡されていないすべてのファイルに影響します。この方法で追加されたファイルは、”ステージング”と呼ばれ、次の commit “。コミットは、作成された作業のスナップショットです。git commit -m "I wrote something"
を使用します。