1

git branch testbranchこのチェックアウト後に を作ろうとしましたgit checkout testbranch。次に、「README」などのファイルを編集しました。

ここで、「マスター」ブランチに戻ろうとしましたが、mergeコミットされていないファイルがあると不平を言うだけでなく、常に

では、これはなぜですか?みたいなエラーになるかと思った…

エラー: "X" にローカルな変更があります。ブランチを切り替えることはできません。

長い間、すべての魚をありがとう。

4

2 に答える 2

0

変更に互換性がある場合(早送り)、gitは文句を言わず、変更されたバージョンを保持します。Gitは、ファイルを間違ったブランチで編集したと想定し、適切なブランチに戻りたいと考えています。

ただし、これはマージではありません。ファイルが両方とも変更された場合、gitは準拠します。

マージは、ファイルレベルではなく、コミットレベルでのみ実行できます。

于 2012-10-10T14:52:57.520 に答える
0

この問題は私に発生します。

実際、それは大したことではありません。

条件 1: git でエラーが発生する:

error: Your local changes to the following files would be overwritten by checkout:
    README
Please, commit your changes or stash them before you can switch branches.
Aborting

条件 2: git は次のように表示します。

M       README
Switched to branch 'master'

しかし、条件 1 はいつ発生するのでしょうか。または条件2?

条件 1: master ブランチと testbranch の間で README の変更の競合があります。

条件 2: master ブランチで README を変更しても問題ないため、変更は master ブランチで発生します。

したがって、条件 1 であっても 2 であっても、git は賢いので、git を使用しても問題ありません。

それが私のポイントです、私はあなたがそれを理解していることを知っています。

幸運を。

于 2012-10-10T16:39:26.840 に答える