2012-07-29 17 views
13

Chciałbym uzyskać informację zwrotną dotyczącą mojego przepływu pracy git, ponieważ jest to moje pierwsze użycie i pomimo przeczytania różnych artykułów i pytań związanych z przepełnieniem stosu, nie jestem pewien, czy mój proces jest poprawny. To jest mój obecny przepływ pracy (pamiętaj, że korzystam z aplikacji Github dla systemu Windows dla wszystkich moich interakcji git):Przepływ pracy Github dla pojedynczego programisty

  1. Zdecyduj, jaka będzie następna funkcja, którą zamierzam wprowadzić.
  2. Utwórz gałąź o odpowiednio opisowej nazwie dla funkcji. Robię to, klikając przycisk oddziału w Github dla Windows i wpisując nową nazwę.
  3. Napisz kod.
  4. Zatwierdź zmiany w moim nowym oddziale.
  5. Napisz więcej kodu.
  6. Zatwierdź zmiany w moim nowym oddziale.
  7. Skończyłem wdrażanie funkcji, więc chcę scalić moje zmiany z powrotem do gałęzi głównej. Klikam więc przycisk "zarządzaj" poniżej nagłówka oddziału.
  8. Scal nowy oddział w gałęzi głównej.
  9. Usuń nowy oddział.

Jestem całkiem zadowolony z procesu aż do kroku 7, w którym to momencie jestem nieco zdezorientowany. Myślę, że moje zamieszanie polega na tym, że próbuję użyć aplikacji Github dla Windows, zamiast korzystać z wiersza poleceń. Aplikacja wydaje się ułatwiać, ale jest trochę rozłączenia w moim zrozumieniu między niektórymi poleceniami/instrukcjami, które widzę, a działaniami, które podejmiesz w aplikacji.

Pozwól mi zadać kilka konkretnych pytań:

  1. Czy mój workflow rzeczywiście poprawna? Jeśli nie, co jest z nim nie tak i jak mogę to poprawić?
  2. Czy powinienem "publikować" moje zmiany w nowym oddziale? Rozumiem, że jest to odpowiednik wykonywania git push w linii poleceń. Czy to prawda? Jeśli tak, to myślę, że chciałbym to zrobić tylko wtedy, gdy albo skończę implementację funkcji, albo będzie ona w przyzwoitym stanie?
  3. powinienem być usuwanie gałęzi, kiedy połączyły go do oddziału głównego lub należy pozostawić wokół wiecznie?
  4. Czy muszę opublikować główny oddział po zakończeniu scalania lub czy jest to domyślne?
  5. jestem czasami w stanie wykonać scalanie i ten komunikat o błędzie:

    Nie można połączyć

    Nie udało się połączyć „test” do „pana”. Może być konieczne otwarcie powłoki i debugowanie stanu tego repozytorium.

Gdy to nastąpiło, zanim udało mi się przejść do głównego oddziału i scalić nową gałąź do gałęzi głównej jednak, że już nie działa. Bez względu na to, w jakiej gałęzi się znajduję, nie mogę scalić dwóch gałęzi. Oba są zsynchronizowane i opublikowałem wszystkie zmiany z mojej gałęzi testowej. Co mam pisać w powłoce, aby dowiedzieć się, dlaczego nie mogę scalić oddziałów?

Dla porównania, to główne linki, które skłoniły mój proces:

  1. Scott Chacon on the workflow at Gitub
  2. Git workflow for a single developer on a local repository
  3. Git workflow for a single user

Odpowiedz

4

Co ty opisujesz brzmi jak wspólne rozgałęzień workflow że działa bardzo dobrze nawet dla wielu programistów na tej samej podstawie kodu. Jest całkowicie objęty przez git flow, który jest rozszerzeniem linii poleceń git, aby zautomatyzować niektóre kroki. Warto sprawdzić.

Nie jestem wielkim fanem narzędzi UI dla gita. Używam wiersza poleceń przez większość czasu. Więc nie mam doświadczenia z GitHub dla Windows. Założę się jednak, że twoje problemy pojawiają się, ponieważ twoje scalenia już nie są szybkie. Wymagałoby to ręcznego scalenia, którego nie obejmuje narzędzie (afaik).

Nie ma silnego powodu, aby utrzymywać gałęzie po scaleniu ich w upstream. Ale jednym jest śledzenie, jakie zatwierdzenia przeszły w pewną funkcję. Proponuję opublikować oddziały, jeśli zdecydujesz się je zachować. Nie jesteś zależny od kodu leżącego na twojej lokalnej maszynie. Utrzymanie oddziałów nie zwiększa rozmiaru twojego repozytorium, ale zanieczyszcza widok. Przez większość czasu zatwierdzenia są obecne w twojej gałęzi upstream.

Trzeba będzie publikować (Push) swój główny oddział po połączeniu w.

Aby zapoznać się z git narzędzia wiersza poleceń Proponuję zacząć z Introduction to Git and GitHub z chłopakami GitHub i śledzić ich referencje Więcej szczegółów pod odnośnikiem .

Mam nadzieję, że pomaga

+0

Dzięki - dobrze wiedzieć, że jestem na dobrej drodze! Nadal jestem trochę zdezorientowany przez gałęzie i wydaje mi się, że stąd bierze się mój silny ból głowy. Kiedy tworzę nowy oddział w Github dla Windows, czy powinienem oczekiwać, że utworzy on gdzieś nowy katalog? Bo jeśli tak nie jest, to po prostu edytuję kod znajdujący się w mojej głównej gałęzi? – Stu

+0

Git przechowuje wszystko w garści delt w folderze .git. Więc kiedy tworzysz nowy oddział, to tak jakbyś pracował nad kopią swojej głównej/klonowanej gałęzi. Ale wszystko znajduje się w tym samym folderze (zatwierdzaj zmiany i odwróć gałęzie i otwórz ponownie plik, aby zobaczyć). Miej oko na wydział, który wypisałeś, ponieważ łatwo jest zacząć pisać kilka rzeczy, zapominając, że nie zmieniłeś oddziałów, a skończysz na tym, by zobowiązać się do opanowania zamiast oddziału. To tam bardzo przydatne są skrytki. – yellottyellott

+0

Przepraszam, że nie zaakceptowałem tego jako odpowiedzi na moje pytanie wcześniej, niektórzy jakoś przegapili twój ostatni komentarz, który odpowiedział na wszystkie moje pytania. Dziękuję bardzo! – Stu

Powiązane problemy