1

今までは、「git pull origin master」を実行していましたが、マージするものがあるとエラーが発生し、「git mergetool」(p4mergeをロード)を使用してファイルをマージできました。

これで、早送りを書き込んでファイルを自動マージします。

 * branch            master     -> FETCH_HEAD
Updating 508eb2e..b93d761
Fast-forward
 protected/controllers/AlbumController.php      |   14 +-
 protected/controllers/AlbumController.php.orig |  103 +++
 etc.

問題は、自動マージを許可するために特別なことは何もしていないということです。なぜこれが発生したのですか?どうすれば無効にできますか?

4

3 に答える 3

4

あなたはかなり混乱しているようです。「早送り」とは、マージされなかったことを意味します。これは、ローカルコミットがなかったことを意味するため、ブランチポインタをプルしたものの先端に転送しただけです。

于 2012-05-28T21:24:33.790 に答える
1

マージするものは何もありません。つまり、ブランチを更新して、マージしているブランチが指している場所を指すようにします。これで、ブランチが指す新しい場所を表すように作業ディレクトリが更新されます。これがファイルを「上書き」するものです。他の変更をマージした後、作業ディレクトリのファイルが上書きされないことを期待するのはなぜですか(早送りの状況であるかどうかに関係なく)。

--no-ffちなみに、分岐点を維持したい場合は、マージコマンドにオプションを追加することで、早送りのためにコミットが不要な場合でも、gitに新しいコミットを作成させることができます。

また、分岐とマージについては、progit.org/bookを読むことをお勧めします。これは仕様による動作です。

于 2012-05-28T21:50:01.550 に答える
1

「早送り」とは、リモートリポジトリにないコミットをローカルで行っていないことを意味します。

これは、マージするものがないことを意味します。あなたの地元のチェックアウトされた支店はちょうど最新のものになりました。

diff-statは、最後にプルしてからリモートで行われた変更を通知するためのものです。

于 2012-05-28T21:26:21.817 に答える