githubフォーク(GK)からクローン化されたgitリポジトリ(CGRと呼ぶ)は元のgithub repo(GR)をフォークします。私はCGRの変更を行い、ブランチBでコミットします。次に、GRからCGRにマスターブランチを引き出し、そのマスターブランチをBブランチにマージします。Gitは引き出し時にトランザクションを処理しますか?
この操作の後、一部のファイルは変更されません。私は再び引っ張ることができます、そしてgitは "大丈夫です、あなたのローカルブランチはGRブランチで最新です"と言う。
私のローカルリポジトリCGR(「pom.xml」と言う)内のファイルをチェックして、いくつかの変更がないことがわかりました。
私は実際に持っている質問があります:Gitはトランザクションを処理するときにトランザクションを処理し、Gitはトランザクションをどのように処理しますか?間違った時間にネットワーク障害が疑われるので、ローカルリポジトリが破損してしまいます。Gitがトランザクションメカニズムに穴を開けるか、トランザクションがまったくないと意味があります。
あなたはこの問題をすべて横に見ています。この問題は、データベーストランザクションやACIDプロパティ(Gitが特有のバックドアトリックによって達成する)とは関係ありません。 'git merge'は、XMLやJSONや実際にソースコードに埋め込まれたデータ構造についての知識がなく、純粋にテキスト形式の行単位で動作します。このため、 'git merge' *が正しくマージされたと思っても、結果を検査する必要があります。 'git pull'を実行すると' git fetch'(アトミックなdatabase-yプロパティを持つ)と 'git merge'が続きます。後者は失敗します。 – torek