非常に独断的な人々の中には、おそらく 冷静な 、分裂はあると主張するかもしれません。それにもかかわらず、参照は何もありません。 「これらの問題をつぶやく私たち全員がスキャンダラスです」と彼らはおそらくつぶやくかもしれません、「Gitのドキュメントでさえスキャンダラスです」 さらに、それらの問題をつぶやきます。 いいえ、申し訳ありませんが、それはもはや言語の仕組みではありません。 正直な靴は事実上ジャワ料理のチャーハンであると個人が主張する場合、かまぼことか、足にスニーカーをぶら下げるとかいう人は、言葉を失ったり、誤解を与えたりしますが、その人はただの馬鹿です.
動機の人々はこれをつぶやきます、切断はGit アプリケーションがそうではないことです枝の正式なイラストを掛けます。 概念的には、分割があります。 git の指示は単にそれを理解していません。 基本的に、概念モデルと Git アプリケーションが実際に行うこととの最も注意を引く不一致は次のとおりです。
一般にアプリケーション モデルが機能しない場合t はそのドメインに多少一致しますが、気落ちするのはアプリケーションであることを認めます。 私たちは、「アプリケーションはその考えが成功したことを意味しない」または「アプリケーションがそれを処理する方法はさまざまなハックです」とつぶやきます。 私たちはそれを特別な専門用語で呼んでいます。それは「漏れやすい抽象化」です。 「リーキーな抽象化」とは、基礎となる実装を無視する手法として すべき に遭遇した場合です。 、それにもかかわらず、実装ではモデルが十分に成功しているとは見なされないため、選択するように見えるよりも大きな寓話を取り入れたい. 漏れやすい抽象化がある場合、アプリケーションの気の毒なモデルが実際には正しく、地球上の各人が言葉を失っていると偽ろうとすることはほとんどありません。 では、ここで起こっていることを単に認めないのはなぜでしょうか? 私たちは皆、寓話的なブランチを取り上げてブランチについて議論しますが、Git にはブランチの抽象化に漏れがあり、ブランチにうまく対処できません。 それだけで、不規則なことは何もありません。 場合によっては、アプリケーションが常に実際に適切であるとは限りません。何らかの手段で事務。 一部の命令では、ほとんど手腕が必要とされません。 git log dev
を作成して の履歴をインターネットに記録する必要があります) dev 部門、Git は という名前のコミットから始まりますdev そして、母または父が母または父ごとに、祖先コミットの合計に有利に働きます。 履歴ログの場合、それはまさにあなたが望むものです! とはいえ、Git は分割を単一のエンティティとして寓話化する必要はありません。 一度に 1 つのコミットを考えているだけです。 )git-merge, 2 つのブランチをマージしていると思われるかもしれませんが、やはり Git は問題の哲学を巧みに操ることができます。 Git は、マージ スナイドを特定するために履歴のほんの一部を調べる必要がありますが、その後、2 つのブランチをマージすることはほとんどなく、2 つの変更セットをマージすることになります。 まったく異なる状況で、Git は ref を実行して finish をギフトにします 分割のポイント (「先端」と呼ばれる) であり、コンテキストから開始ポイントをある程度推測します。 たとえば、分割をプッシュする場合、アプリケーションに ref を与えて分割の先端点を与えると、アプリケーションは開始点を推測します。つまり、遠く離れたところにまだハングしていない主要なコミットです。 部門をリベースするとき、アプリケーションに部門の先端点を与える参照を与えると、アプリケーションは開始点を推測します。これは、開始点とリベースしている上流のコミットのマージスナイドです。 場合によっては、この推論がうまくいかず、アプリケーションがおそらく考えているよりもはるかに大きなリベースを試みます。リベースしている分割についての Git の考えは、実際には常に期待どおりになるとは限りません。 それはそれが正しいことを意味するものではなく、さらにあなたはスキャンダラスです。 そしてすぐに、実際にはミスマッチが常に成功裏に偽装されるとは限りません。 以前は master にマージされていた部門にあったコミットを注視している場合 かなりのアドバンテージですね。 参照が削除されていた場合、取得するテクニックはありません。 (コミット メッセージ内に明確な文を残す可能性もありますが、概念的には、モニターに公開することとまったく同じです。) 私が発明できる立場にある最も注目を集めるのは、真新しい マスター でイニシエートし、私が私になるまで、歴史の中で自分のやり方で有利に働いてください。マージポイントを取得し、同じサブジェクト部門にある可能性のあるまったく異なるコミットを調査して、クロステストを調査して、何が起こっていたかを把握します。 先週、一部のサブジェクト区分を マスター にマージしたら、まったく別の作業になりましたその後上陸し、今私は分野をアンマージするために探していますか? 申し訳ありませんが、Git はそれを発明していません。 そして、なぜもうないのですか? アプリケーションが、私たちがおそらく尊敬する方法で分岐を繰り返し認識しないという説明について。 もはや、尋ねることは親切な意味を持たないという説明ではなく、アプリケーションが私たちが望むものを繰り返し発明するわけではないという説明だけです. だからええ、アプリケーションは、実際には、私たちが考えるほど正直であるとは限りません. アプリケーションとは何ですか? それにもかかわらず、アプリケーション が 正しく、合計の欠陥が実際の利益にあると偽ることは、ちょっとクレイジー。 正直なところ、Git はブランチを参照として実装し、さらに主張ごとに変化するあいまいな暗黙のセクションを実装しています。 とはいえ、それは残念な実装の詳細であり、もはや私たちが常に冷静に取り組む必要があるものではありません. [Other articles in category /prog/git] 永遠のハイパーリンク