2 つのローカル ブランチmaster
とdev
. どちらのブランチにも 3 つのフォルダーが含まれていました。
projectBeta
project
project_v1
projectBeta
保持して削除project
しproject_v1
、名前projectBeta
を として変更したかっただけproject
です。それが私が両方のブランチで別々に行ったことであり、進行中にコミットしました。ブランチを master にマージしようとするまではすべて問題ないように見えましたがdev
、これらの種類のエラーが山積みになりました。
CONFLICT (rename/delete): Rename projectBeta/test.c->project/test.c in dev and deleted in HEAD
CONFLICT (rename/delete): Rename project_v1/test.c->project/test.c in HEAD and deleted in dev
そのため、Git はさまざまなブランチでさまざまな方法で名前変更を追跡しているようです。
もし私がするならgit status
、私は得る
# On branch master
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# added by us: project/test.c
#
no changes added to commit (use "git add" and/or "git commit -a")
最初に理解できないのは、マージ レポートで名前が変更され、私たちと彼らの両方によって削除されたと表示されているのに、なぜステータスが「私たちによって追加された」と表示されるのかということです。
次に、test.c の dev ブランチ バージョン (それら) を使用したいのですが、試してみると
git co --theirs project/test.c
私は得る
error: path 'project/test.c' does not have their version
...マージで dev ブランチのコンテンツが確実に使用されるようにする方法がわかりません。
最後に、将来このような混乱を避けるためのベストプラクティスの方法はありますか? 基本的に、コンテンツが最初にマージする準備ができていないブランチでフォルダー構造を個別に変更します...