2016-01-21 32 views
5

Pracujemy przez studio visual 2015 z git. Mieliśmy centralne repozytorium (GitLab) z pojedynczą gałęzią "master". Dwie osoby sklonowały repozytorium.Git: scalanie ukrywa pewne zmiany

  1. Pierwszy facet dodał plik "test-new-file-v.txt" do rozwiązania. Zmieniono plik rozwiązania (.sln) i zmieniono ciąg "VisualStudioVersion = 14.0.23107.0". Następnie zatwierdza w lokalnym repozytorium, a następnie przekazuje to zatwierdzenie w centralnym repozytorium (GitLab). Po tym, że oglądałem ten popełnić w centralnym repozytorium (GitLab): enter image description here

  2. Drugi facet został dodany „testgit.txt” pliku w roztworze. Zmienił także plik rozwiązania (.sln), ale nie zmienił łańcucha VisualStudioVersion. Następnie chce pobrać centralne repozytorium (GitLab) przed naciśnięciem przycisku.

  3. Drugi facet miał konflikt. Połączył studio wizualne 2015 i zobaczył, że inny facet popełnił błąd, zmieniając "VisualStudioVersion = 14.0.24720.0" na "VisualStudioVersion = 14.0.23107.0". Drugi facet chce pozostawić ciąg "VisualStudioVersion = 14.0.24720.0" bez zmian. Wybrał stan lokalny "VisualStudioVersion = 14.0.24720.0" dla tego ciągu i dokonał scalenia commit. Następnie naciska te dwa zatwierdzenia w centralnym repozytorium (GitLab).
  4. Po tym, obserwował historii i zmian w centralnym repozytorium (GitLab) i widziałem, że zobowiązują się połączyć z drugim facetem: enter image description here

Widzimy, że w centralnym repozytorium (GitLab) plik roztwór zawiera ciąg "VisualStudioVersion = 14.0.24720.0" i jest to poprawne, ale nie widzimy, aby ten ciąg zastąpił ciąg "VisualStudioVersion = 14.0.23107.0", ponieważ commit od pierwszego faceta zawiera ten ciąg i jest przed zatwierdzeniem scalenia.

Moje pytania:

  1. czy to poprawne zachowanie? Spodziewam się, że podczas scalania zatwierdz ten ciąg "VisualStudioVersion = 14.0.23107.0" zmieniony na "VisualStudioVersion = 14.0.24720.0".
  2. Jak mogę osiągnąć zachowanie, w którym widzę wszystkie zmiany?

Odpowiedz

2
  1. jestem przy założeniu, że nie dostać zmiany przed jego popełnienia na gałęzi głównej, tak lokalnie może on nie ma zmian, które zostaną opóźnione. Zapobiega to cofnięciu kodu, jeśli twój oddział jest nieaktualny.

  2. Sugerowałbym nie zatwierdzanie zmian w master. Utwórz oddzielny oddział lokalny i użyj żądań przeciągnięcia do wzorca.

Zajrzyj do strategii rozgałęziania git, aby uporządkować swoje gałęzie.

Git Branching Model