Jestem nowy w GitHub i ogólnie VCS. Od lat programuję w różnych językach, ale zawsze pracowałem solo nad niestandardowymi projektami (brak publikacji publicznych). Niedawno zacząłem używać widżetu interfejsu użytkownika jQuery, który pobrałem z GitHub w projekcie, nad którym pracuję. Repo nie jest już utrzymywane przez pierwotnego autora. Kolejny widelec zawiera niektóre z pierwotnych żądań ściągnięcia. To z tego rozwidliłem.
Znalazłem kilka błędów i wymyśliłem dla nich poprawki. Chciałbym wprowadzić te poprawki, ale mam też wiele innych zmian, które chcę wprowadzić na własny użytek, które zepsują niektóre z istniejących funkcji. Dodatkowo chciałbym wprowadzić pomysł z innego widelca.
Wciąż uczę się GIT i GitHub i staram się znaleźć najlepszy sposób na wszystko. Dużo przeczytałem (tutaj, SO, strony pomocy GitHub, Pro Git) o różnych koncepcjach / zadaniach: przepływach pracy, scalaniu, żądaniach ściągania, wybieranie wiśni, rebasing, rozgałęzianie. Moja szara materia płynie i muszę zacząć robić, aby lepiej zrozumieć to, co przeczytałem.
Główne kwestie:
Wydaje mi się, że przeczytałem (gdzieś), że możesz mieć tylko jedno żądanie ściągania na gałęzi na raz. Czy to oznacza, że powinienem mieć osobną gałąź dla każdego błędu, a następnie osobne żądanie ściągania dla każdego?
Chcę usunąć problemy z białymi znakami i wydaje mi się, że pamiętam, że najlepiej to zrobić w osobnym zatwierdzeniu. Czy powinienem to zrobić w swoim master lub w oddzielnym oddziale? Nie chcę wysyłać żądania ściągnięcia dla czegoś tak trywialnego , ale jeśli wprowadzę zmiany białych znaków przed rozgałęzieniem, czy wpłynie to na żądanie ściągnięcia dla poprawek błędów? Niektóre widelce wyczyściły spacje i skutecznie sprawiły, że diff był całkiem bezużyteczny.
Myślałem o stworzeniu problemów przeciwko mojemu widelcowi jako sposobie dokumentowania błędów, mimo że już je naprawiłem. Czy to dobry pomysł? Jak przejść do łączenia ze sobą problemu, zatwierdzenia i scalania do opanowania? Jeśli złożę żądanie ściągnięcia w górę, czy mój problem pojawi się również w górę, czy też link do dokumentacji zostanie utracony? Nie mogę otworzyć problemu z repozytorium nadrzędnym (nie ma zakładki problemu).
Jaki jest najlepszy sposób, aby podziękować innemu autorowi widelca za pomysł, którego chcę użyć? Nie mogę dokładnie użyć jego kodu, zwłaszcza, że jego zmiana została zastosowana w stosunku do starszej wersji upstream i nie jest kompatybilna z moimi innymi zmianami. Ale chcę skorzystać z tego pomysłu i chcę przyznać kredyt tam, gdzie jest to należne. Czy powinienem po prostu link do jego repozytorium (lub profilu lub konkretnego zatwierdzenia) w mojej wiadomości zatwierdzenia?
Jaka jest etykieta dotycząca zmiany pliku readme i DocBlock u góry głównego pliku? Czy mogę wprowadzać zmiany, dodawać moje imię, dodawać linki do mojego repozytorium i wersji demo, usuwać linki do oryginalnej wersji demo (ponieważ mój widelec skończy się niezgodny z oryginałem)? Oczywiście pozostawię oryginalną nazwę autora i informacje o licencji. Dla przypomnienia, jest licencjonowany na licencji MIT.
Jako solowy programista, który nigdy nie korzystał z VCS, jestem przyzwyczajony do przepisywania historii . Jestem perfekcjonistą i lubię porządek i porządek. Idea zapisanej historii trochę mnie denerwuje i chcę to zrobić dobrze za pierwszym razem . Utworzyłem nowe repozytorium do gry / nauki, ale zależy mi na poprawieniu widgetu interfejsu użytkownika jQuery, aby móc kontynuować projekt.
źródło