Mam projekt przy użyciu Git, w którym rozgałęziłem master, aby zmienić nazwę katalogu.Git: Zmienianie nazwy katalogu w oddziale
Zmiana nazwy w oddziale działa zgodnie z oczekiwaniami. Kiedy przełączam się z powrotem do głównej gałęzi, katalog ma swoją oryginalną nazwę, ale jest też puste drzewo katalogów z nazwą, którą zmieniłem w gałęzi.
Czy to oczekiwane zachowanie? Czy brakuje mi kroku?
Czy po prostu trzeba usunąć te puste drzewa katalogów, które się pojawiają?
Wiem, że Git nie śledzi pustych katalogów i to może mieć tutaj znaczenie.
Mój obecny pracy jest:
# create and checkout a branch from master
/projects/demo (master)
$ git checkout -b rename_dir
# update paths in any affected files
# perform the rename
/projects/demo (rename_dir)
$ git mv old_dir new_dir
# add the modified files
/projects/demo (rename_dir)
$ git add -u
# commit the changes
/projects/demo (rename_dir)
$ git commit -m 'Rename old_dir to new_dir'
mogę dostać się do tego punktu i wszystko jest zgodnie z oczekiwaniami:
# old_dir has been renamed new_dir
/projects/demo (rename_dir)
$ ls
new_dir
Problem pojawia się, gdy mogę przełączyć z powrotem do Master:
/projects/demo (rename_dir)
$ git checkout master
# master contains old_dir as expected but it also
# includes the empty directory tree for new_dir
/projects/demo (master)
$ ls
old_dir new_dir
new_dir to puste drzewo katalogów, więc git go nie śledzi - ale jest brzydkie.
FWIW, nie dostaję takiego zachowania w wersji 1.6.3.1: new_dir zniknął po ostatecznej realizacji master. Jakiej wersji używasz? –
Używam msysgit 1.6.4 – jmohr
Czy są jakieś ukryte niepoprawione pliki. * W new_dir? –