2017-11-17 12 views
0

githubフォーク(GK)からクローン化されたgitリポジトリ(CGRと呼ぶ)は元のgithub repo(GR)をフォークします。私はCGRの変更を行い、ブランチBでコミットします。次に、GRからCGRにマスターブランチを引き出し、そのマスターブランチをBブランチにマージします。Gitは引き出し時にトランザクションを処理しますか?

この操作の後、一部のファイルは変更されません。私は再び引っ張ることができます、そしてgitは "大丈夫です、あなたのローカルブランチはGRブランチで最新です"と言う。

私のローカルリポジトリCGR(「pom.xml」と言う)内のファイルをチェックして、いくつかの変更がないことがわかりました。

私は実際に持っている質問があります:Gitはトランザクションを処理するときにトランザクションを処理し、Gitはトランザクションをどのように処理しますか?間違った時間にネットワーク障害が疑われるので、ローカルリポジトリが破損してしまいます。Gitがトランザクションメカニズムに穴を開けるか、トランザクションがまったくないと意味があります。

+0

あなたはこの問題をすべて横に見ています。この問題は、データベーストランザクションやACIDプロパティ(Gitが特有のバックドアトリックによって達成する)とは関係ありません。 'git merge'は、XMLやJSONや実際にソースコードに埋め込まれたデータ構造についての知識がなく、純粋にテキスト形式の行単位で動作します。このため、 'git merge' *が正しくマージされたと思っても、結果を検査する必要があります。 'git pull'を実行すると' git fetch'(アトミックなdatabase-yプロパティを持つ)と 'git merge'が続きます。後者は失敗します。 – torek

答えて

0

gitのプロトコルとデータ構造を網羅したオンラインリソースがあります。それは多くの情報です。その知識で、フェッチまたはプル後の整合性を保証するメカニズムを理解することはかなり簡単です。その知識がなければ、私の意見では分かりにくいように思えます。

実際ににはが分かります。ここでそれをすべて繰り返すことは意味がありません。(そして、私があなたの質問をドキュメント参照の要求として解釈した場合、回答するのではなく、オフトピックとして投票したと思います)。

私があなたに言うことができないのは、いいえ、あなたの仮説は理にかなっていません。あなたは、私がそれを信じるかどうかを選ぶことができます。彼らの間違った観察が決定的であることを確信して死んで初めてではありません。しかし、あなたのような穴が空いているかどうかは経験では分かりません。実際に誰かが実際にを使用するかどうかは、 gitです。

gitはのソース管理システムを設計によって設計していることに注意してください。

関連する問題