2012-03-19 14 views
6

Na przykład:Dlaczego git scalania zmian, gdy dwie gałęzie są różne, ale bez nowych zatwierdzeń w obu oddziałach?

W moim głównym oddziale znajdują się rzeczy. Inna gałąź o nazwie other_branch ma w niej coś + więcej rzeczy. Każda gałąź nie ma nic do powiedzenia.

Jeśli spróbuję wymeldować się z master, spróbuj powiedzieć "już zaktualizowany". i nic się nie stało. dlaczego w tym przypadku nie będzie więcej łączenia w master? Czy w ten sposób zaprojektowano git?

UWAGA: other_branch został utworzony ze starszego zatwierdzenia master.

Odpowiedz

6

To bardzo proste. Jeśli git mówi "Już na czasie" oznacza to, że gałęzie nie rozeszły się. Dwie gałęzie rozdzieliły się, jeśli przynajmniej jedna z gałęzi zawiera zatwierdzenie, którego nie ma druga gałąź.

Nie jestem pewien, co masz na myśli, ponieważ ma rzeczy + więcej rzeczy w nim. Jeśli dodałeś nowe pliki do other_branch (lub zmieniłeś istniejące pliki) i użyłeś "git add" i "git commit", historia innego_branża rozdzieli się od gałęzi głównej. Ponieważ git mówi, że nie ma zmian w scalaniu, historia nie zmieniła się w tej gałęzi, tj. Nie popełniłeś żadnego.

+2

Och, rozumiem. Dla początkującego nie jest to zbyt oczywiste. other_branch zawiera te same zatwierdzenia co master, ponieważ zainicjowałem go ze starszego zatwierdzenia master. Byłem zdezorientowany, ponieważ kiedy kasowałem other_branch, widzę różne pliki, więc pomyślałem, że git merge połączy pliki w master. Rozumiem, jak to działa teraz. git merge opiera się na commitach, a nie na bieżącym drzewie pracy. – trusktr

2

Dzieje się tak tylko wtedy, gdy oddział, który próbujesz scalić, jest już zawarty w bieżącym oddziale.

Tak, wspomniany more_stuff jest już w gałęzi głównej.

Możesz użyć gitk, aby sprawdzić wizualne drzewo swoich oddziałów.

+0

gitk? nie jestem pewien co to jest –

+0

To domyślny GUI Git. [Więcej informacji tutaj.] (Https://git-scm.com/docs/gitk) –

Powiązane problemy