3

github からレポのコピーを作成しました。コードを少しいじって、ローカルで変更するブランチをコミットし、元のコードが更新されたので、フォークに対して行ったことをすべて削除し、アップストリームによって行われた変更を取得したいと考えています。

もしそうなら、私は衝突します

git fetch upstream
git merge upstream/master
#Automatic merge failed; fix conflicts and then commit the result.

そして、私がやったことのないいくつかの変更を示す2つのファイル名を与えます。

そこで、git status を実行して、新しいファイル名 (作成したことはありませんが、アップストリームによって作成されたもの) とマージされていないパスを取得しました。

#   (use "git add/rm <file>..." as appropriate to mark resolution)

2つのファイル用。

私はすべての新しい変更を望み、私のものを破壊します。考えられる解決策は何ですか? また、GIT が作成したことのないファイルを追加するように要求するのはなぜですか?

4

1 に答える 1

4

競合するマージを中止します。

git merge --abort

次に、ローカル リポジトリをアップストリームと同じコミットに設定し、ローカルの変更を破棄します。

git reset --hard upstream/master

あなたの質問について:

GIT が、作成したことのないファイルを追加するように要求するのはなぜですか?

そうではありません。変更したファイルの競合を解決し、次にgit add <file>それらのファイルで、編集済みのバージョンを解決済みとしてマークし、コミットしてもよいことを示しています。

于 2013-02-13T11:57:38.467 に答える