Git-update-operation
Git-更新操作
既存の機能を変更
トムはクローン操作を実行し、新しいファイルstring.cを見つけます。 彼は誰がこのファイルをリポジトリに追加したか、どのような目的で追加したかを知りたいので、 git log コマンドを実行します。
上記のコマンドは、次の結果を生成します-
クローン操作により、現在の作業ディレクトリ内に新しいディレクトリが作成されます。 彼はディレクトリを新しく作成したディレクトリに変更し、 git log コマンドを実行します。
上記のコマンドは、次の結果を生成します-
ログを観察した後、彼はファイルstring.cが基本的な文字列操作を実装するためにJerryによって追加されたことに気付きました。 彼はジェリーのコードに興味があります。 そこで、彼はstring.cをテキストエディターで開き、すぐにバグを見つけます。 my_strlen関数では、Jerryは定数ポインターを使用していません。 そこで、彼はジェリーのコードを変更することにしました。 変更後、コードは次のようになります-
上記のコマンドは、次の結果を生成します-
テスト後、彼は変更をコミットします。
上記のコマンドは、次の結果を生成します-
トムはgit pushコマンドを使用して変更をプッシュします。
上記のコマンドは、次の結果を生成します-
新しい機能を追加
一方、Jerryは string compare 機能を実装することにしました。 そこで彼はstring.cを変更します。 変更後、ファイルは次のようになります-
上記のコマンドは、次の結果を生成します-
テスト後、彼は変更をプッシュする準備ができています。
プッシュ操作の前に、ログメッセージを表示してコミットを確認します。
上記のコマンドは、次の結果を生成します-
ジェリーは変更に満足しており、変更をプッシュしたいと考えています。
上記のコマンドは、次の結果を生成します-
しかし、GitはJerryが変更をプッシュすることを許可していません。 Gitは、リモートリポジトリとJerryのローカルリポジトリが同期していないと判断したためです。 このため、彼はプロジェクトの歴史を失う可能性があります。 この混乱を避けるため、Gitはこの操作に失敗しました。 現在、ジェリーは最初にローカルリポジトリを更新する必要があり、その後のみ、自分の変更をプッシュできます。
最新の変更を取得する
Jerryはgit pullコマンドを実行して、ローカルリポジトリをリモートリポジトリと同期します。
上記のコマンドは、次の結果を生成します-
プル操作の後、ジェリーはログメッセージをチェックし、コミットID cea2c000f53ba99508c5959e3e12fff493ba6f69 を持つトムのコミットの詳細を見つけます。
上記のコマンドは、次の結果を生成します-
現在、Jerryのローカルリポジトリはリモートリポジトリと完全に同期されています。 したがって、彼は変更を安全にプッシュできます。
上記のコマンドは、次の結果を生成します-