:
git init resolving-rename-conflicts
cd resolving-rename-conflicts
echo "this file we will rename" > will-be-renamed.txt
git add -A
git commit -m "initial commit"
git checkout -b branch1
git rename will-be-renamed.txt new-name-1.txt
git commit -a -m "renamed a file on branch1"
git checkout -b branch2 master
git rename will-be-renamed.txt new-name-2.txt
git commit -a -m "renamed a file on branch2"
git checkout master
Sonra branch1 ve Branch2 birleştirme
git merge --no-ff branch1
git merge --no-ff branch2
Verim:
CONFLICT (rename/rename): Rename "will-be-renamed.txt"->"new-name-1.txt" in branch "HEAD" rename "will-be-renamed.txt"->"new-name-2.txt" in "branch2"
Automatic merge failed; fix conflicts and then commit the result.
git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
Unmerged paths:
(use "git add/rm <file>..." as appropriate to mark resolution)
added by us: new-name-1.txt
added by them: new-name-2.txt
both deleted: will-be-renamed.txt
no changes added to commit (use "git add" and/or "git commit -a")
birini tutmak istiyorsanız dosya, söyle new-name-2.txt
:
Tabii
git add new-name-2.txt
git rm new-name-1.txt will-be-renamed.txt
git commit
bir dosya veya diğer chosing, sen by-name bu dosyayı referans dosyalara yapmak diğer değişiklikleri olabilir. Ayrıca, dosyada başka yeniden adlandırılmayan değişiklikler varsa, dallarda önceden veya sonra yeniden adlandırın, el ile ayırmanız ve bunları sakladığınız dosyada saklamak için bunları birleştirmeniz gerekir.
yerine iki dosyayı tutmak isterseniz:
git add new-name-1.txt new-name-2.txt
git rm will-be-renamed.txt
git commit
bu dosyaların hangi verilen dosyaların kalması gerektiğini ve diğeri ne yapacağını seç? Veya içeriklerini elle birleştirin, ardından sonucu ekleyin ve birleştirme işlemini gerçekleştirin. – millimoose
http://stackoverflow.com/questions/4679901/git-divergent-renaming burada yardımcı olabilir. – VonC