0

本番コンテンツとまったく同じ新しいリポジトリを作成しました。このコンテンツをローカルの開発環境に置きたいです。そのため、リポジトリからそのコンテンツを取得する必要があります。私がしたことは、ローカルの master ブランチで:

  1. コンテンツを取得します (ブランチオリジン/マスターで)

    git フェッチ

  2. ローカル マスター ブランチをマージして上書きします (この質問Git: Merging but overwriting changesで説明されているように)。

    git merge -X 彼らの起源/マスター

  3. 変更をコミットする

    git commit -am 'merged overwriting form origin/master'

しかし、私がそうするとき

git diff origin/master

違いは見られないはずですが、まだ見られます。誰かが理由を知っていますか?

プル時に git 上書きファイルを強制する方法は他にもありますが、私が間違っていることを理解したいと思います。

4

2 に答える 2

0

あなたがするとき:

git diff origin/master

リモートリポジトリと比較しています

あなたはいくつかのコミットを行ったと言いましたが (ステップ 3)、それらをリモートにプッシュしませんでした。したがって、変更が表示されます。

ローカルをリモートと同じに変更したい場合。次に、次のようにします。

git reset origin/master

これにより、ローカルリポジトリがリモートと同じになるようにリセットされます。

ti はコミットされた変更を削除することに注意してください。

于 2013-07-29T11:00:03.237 に答える
0

「git merge -X theirs」は、競合することなく変更をマージしようとします。競合が発生した場合、競合があなたの競合を引き継ぐことで解決します。そのため、競合することなく上流からの変更をマージできた場合は、あなたのものと彼らのものを組み合わせたバージョンが表示されます。

master ブランチを origin/master の正確なコピーにするために、これを試してください:

git checkout master
git fetch origin
git pull origin master
git reset --hard origin/master

リセットは、オリジン/マスターにないマスター ブランチの変更をすべて破棄します。

于 2013-07-29T11:03:35.077 に答える