2017-06-02 3 views
-1

私はきれいなローカルリポジトリを持っています。Gitがリモートからの変更をSCS地獄にマージしようとするのはなぜでしょうか?

フェッチを実行し、いくつかの新しいチェンジセットを表示します。

私はマスターにマージを実行します。このエラーは、いくつかのファイルを書き込むことができないと言っているので、私はマージを中止します。

この時点で私のローカルリポジトリは完全に混乱しています。なぜなら、私がマージを中止したにもかかわらず、Gitはそれを前の状態に戻すのに気を使わず、代わりに半分の荒れた荒れ地が合併して失敗しました。 Gitには、成功するか失敗するアトミック操作の概念はありませんか?

これで、マージを再試行した場合、マージがuntrackedファイル(最初のマージから残された混乱)を上書きしようとします。これを修正するには、元のマージが失敗した原因を解明しようとする前に、Gitが元のマージを実行して手動で削除しようとしたときに、最初の場所。

私はここで何か間違っているのでしょうか、Gitを使って作業するときのコースの最も簡単な問題を解決するためのこの種の手動介入ですか?

答えて

0

あなたはおそらく正しい、マスターからをマージする意味「をマスターするためにマージ」により、また、ちょうど

git reset --hard branchname 

、「半分行っマージのゴミ箱荒地」を削除するには?別のオプションは、フェッチされたリモートのブランチにブランチをリベースすることですが、依然としてコンフリクトを解決する必要があります。

+0

これは、新しくフェッチされたorigin/masterからmasterにマージすることを意味します。 'git reset -hard branchname'は非常に便利です。ありがとう。 – Neutrino

関連する問題