2012-03-02 11 views
7

To jest kontynuacja pytania this.Przełączanie gałęzi Git nie zmienia plików folderów kodu

Sklonowałem folder projektu zdalnego za pomocą polecenia git clone [email protected]:TEST. z katalogu głównego Git, wykonałem polecenie cd Test, aby przejść do tego folderu. Następnie utworzyłem gałąź przy użyciu git checkout -b myBranch. Teraz na gitarze pokazuje, że jestem w nowym oddziale. Stworzyłem plik test.txt w folderze Test, a następnie przełączyłem gałąź do mastera. Nadal widzę plik tekstowy. Czy Git nie powinien pokazywać pliku test.txt, ponieważ nie jest on częścią wzorca? Czy muszę dokonać zmian w oddziale, jeśli tak się stanie?

Początkowo myślałem, że to się stało, ponieważ nie jest częścią mojego projektu .net (który mam w master i branch). Ale tak samo było, gdy próbowałem dodać plik do mojej gałęzi. Kiedy przełączam swój master, wciąż widzę zmienioną ikonę folderów w systemie fie.

Czego mi brakuje? Dziękuję za twoją pomoc, ponieważ spędziłem dużo czasu próbując rozgryźć Gita. Za każdym razem, kiedy myślę, że mam to, zawsze jest coś.

+1

Haha +1 dla "Za każdym razem, kiedy myślę, że mam to, zawsze jest coś" To jest GIT dla ciebie! –

Odpowiedz

14

Nie jest częścią twojego oddziału master, ale nie jest też częścią myBranch. To jest nieodkryte, ponieważ nigdy nie zatwierdziłeś pliku. Uruchamianie git status zobaczysz, że jest wymienione jako nieśledzone. Ponieważ Git nie był nigdy wystawiony ani zaangażowany, nie może (i nie może) zarządzać jego istnieniem, więc pozostaje tam niezależnie.

Co więcej, zmodyfikowane pliki pozostają między gałęziami, jeśli tylko mogą. Else Git spowoduje błąd podczas przełączania gałęzi na brudne drzewo robocze. Dzieje się tak, ponieważ Git nie ma wewnętrznej kopii tych zmian, istnieją one tylko w twoim systemie plików, a nie w Git, dopóki nie zostaną zatwierdzone.

+2

+1 Git wie o plikach, gdy tylko "git add" je (umieszcza je w swoim * indeksie *), ale nie są częścią gałęzi * dopóki nie zostaną umieszczone w 'commit' – Gareth

Powiązane problemy