1

したがって、問題は次のとおりです。

  1. リモート ブランチからプルを行ったところ、マージの競合が発生しました

  2. 以前git reset --hard <commit hash>のプルで行ったすべての変更を元に戻していました

問題は、プル中に競合したファイルが、git exportまたはarchive.

ファイルはローカル リポジトリにあります。GitHubなどで閲覧すれば見れますが、Gitエクスポートしたり、GitHubからレポジトリをZIPファイルでダウンロードしたりしても、pull時に衝突したファイルは含まれません。すべてのファイルを取得できる唯一の方法は、Git チェックアウトを行うことでした。

コミット、プッシュ、プルを試みたところUp to Date、ファイルはそこにあり、変更されていませんが、何らかの理由でGitエクスポートまたはアーカイブに含まれていません。

繰り返しになりますが、別のリモート リポジトリからのプル中に競合が発生したファイルだけに、この問題が発生します。アイデアがないので、どうすればこの問題を解決できますか?

4

1 に答える 1

1

git reset --hard競合を取り除くときは、プルダウンしたものを含め、マージ全体を取り除きます。次の 3 つの選択肢があります。

  1. サーバー上にあったものを拒否し、ブランチをリセットします(これはすでに行ったことです)
  2. あなたが持っているものを拒否し、サーバーが持っているものにブランチを更新するだけgit reset --hard origin/masterです(マスターブランチで作業していると仮定します)。
  3. 競合しているファイルを編集して、競合を解決します。そして。git add -A_git merge --continue

これでマスターには必要なものが含まれます。エクスポートするには、git archivetar を使用して出力をパイプできます。またはgit push master、サーバーに自分が行ったことを反映させることができます。--forceサーバーに含まれるものを拒否することを選択した場合は、オプションを追加します。

于 2012-08-19T18:05:56.440 に答える