Niedawno przeszliśmy z SVN na Git i jednocześnie wprowadziliśmy nasze systemy na żywo do kontroli wersji (zamiast lokalnego pobierania i kopiowania plików do życia).
W projekcie, do którego jestem przydzielony, wszyscy uzyskujemy dostęp do tego samego repozytorium i aby wprowadzić zmiany na żywo, właśnie git pull
tam jesteśmy . Powoduje to problemy, ponieważ nasi projektanci pchają zmiany w VCS, które nie powinny być jeszcze aktywne, ale powinny znajdować się w środowisku testowania sieci.
Kiedy jeden z programistów włącza się teraz na żywo, otrzymuje wszystkie (prawdopodobnie niedokończone) zmiany.
Myślałem o przejściu na żywo do dodatkowej gałęzi i po prostu scaliłem to, co się zmieniło, ale z powodu braku wiedzy na temat git nie mam pojęcia, jak to zrobić.
Mój pomysł to:
- Utwórz nowy oddział w live (
git branch live
). - Za każdym razem, gdy coś musi się pojawić
- Wyciągnij zmiany w wzorcu (jak
git checkout master; git pull; git checkout live
:) git merge master
- Wyciągnij zmiany w wzorcu (jak
Problem polega na tym, że przejście na master lub wciągnięcie wszystkiego bezpośrednio do systemu na żywo spowodowałoby problemy, więc wolałbym tego uniknąć.
Czy jest na to jakiś sposób lub istnieje lepszy sposób zarządzania systemem Live (z wyjątkiem szkolenia webbiesów, aby nie wypychały niedokończonych rzeczy).
git checkout -f
zignoruj problem - ale wykonaj kopię zapasową!
git pull --all
domyślnie nie uruchomi master na żywo, przeciągnie master i scali go z master, i (jeśli istnieje na serwerze) pull na żywo, aby połączyć się z live. Próbowałeś?