Çoktan Git'in iyi bir kavrayışını sandım ama şimdi şaşırdım. Dalların diğer şubelerden gelen değişiklikleri tecrit edeceğini düşündüm, bu yüzden yeni bir dalda büyük bir deneysel refactoring başlattım. Bu refactoring, birçok dosya taşıma ima etti. Master'a geçtiğimde yine de değişiklikleri görebiliyordum!Git: dallar değişiklikleri yalıtmalı mı, yoksa yapmamalı mı?
$ git branch crazy-refactoring
$ git checkout crazy-refactoring
$ rm README
$ git checkout master
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: README
#
no changes added to commit (use "git add" and/or "git commit -a")
$ ls README
ls: cannot access README: No such file or directory
Neden:
Sorunu çoğaltmak için benim sandbox deposuna gitti? Bir dal yaratmanın bütün noktası, bir şey deneyebilirim ve başarısız olsaydım onu atmaktı. Düşünceleriniz?
Silmeyi gerçekleştirmediniz. Sadece taahhüt edilen değişiklikler "izole edilmiş" dir. –
Haklısınız, README'yi işledikten sonra, çılgın refactoring şubesinde, ana dalda yeniden ortaya çıktı. Belki bir şeyi özlüyorum ama bana garip ve istenmeyen bir davranış gibi geliyor. – stivlo
bu da beni ilk başta attı, ama şimdi her zaman bir dalda bir değişiklik yaptığımda ve daha sonra da ayrı bir dalda atmayı tercih ettiğimde davranışa güveniyorum. – butter71