Z zawodu nie jestem programistą, ale trochę koduję i trochę użyłem github. Natknąłem się na zaskakującą sytuację. Bardzo dobrze znam git.
Jest projekt, w którym znalazłem (mały) błąd, który miał na mnie wpływ. Popołudnie spędziłem na znajdowaniu i naprawianiu. Rozwidliłem repozytorium, zatwierdziłem zmianę i wysłałem żądanie ściągnięcia. Po zobaczeniu, że został zamknięty jako „Scalony w gałąź rozwoju”, pomyślałem, że wszystko jest w porządku.
Przeglądałem dzisiaj repozytorium, przygotowując się do usunięcia mojego oddziału, i nie mogę w ogóle znaleźć, gdzie zatwierdzenie zostało scalone z repozytorium opiekuna. Po pewnym czasie zdaję sobie sprawę, że został dodany jako zatwierdzenie, ale autor nie jest już mną.
O ile mogę powiedzieć, jedynym sposobem, aby to zrobić, byłoby w szczególności użycie bazy, zmiany lub innego przepisania historii w celu usunięcia oryginalnego autora.
Wydaje mi się to bardzo złe. W najlepszym razie jest to mylące, w najgorszym przypadku autor tego repozytorium uznaje zasługi wszystkich, a następnie historia pierwotnego autora jest tracona. Znowu jest to mały błąd, nie używam tego do mojego CV, po prostu wydaje się nieuczciwy.
Czy to normalne? Czy powinienem coś o tym powiedzieć?
Edycja: Wydaje się, że powinienem zapytać, więc zrobię to właśnie dziś rano.
Zgodnie z żądaniem poniżej. Sprawdziłem, a mój kod istnieje i został zastosowany dokładnie tak, jak go napisałem (łącznie z komentarzem). Zweryfikowałem, że zarówno autor, jak i autor zostały zmienione. Dodano także jedną dodatkową zmianę w tym samym czasie, co moje zmiany. Jest to pojedynczy wiersz, który wpływałby na łatkę, a także na inny kod przed nią. IE dodanie jednego wiersza nie jest związane z naprawionym błędem.
Aktualizacja Wydaje się, że odpowiedzią było, że autor utrzymuje gałąź rozwoju i nie chce się z nią połączyć. Ponownie napisał moje zobowiązanie, aby uniknąć połączenia. Nie martwiłem się o to, że oryginalny oddział b / c git jest potężny do wybierania, zmiany bazy i łączenia zatwierdzeń w razie potrzeby.
Czy to typowe na github?
Czy powinienem skontaktować się z opiekunem projektu, aby zapytać, do którego oddziału zastosować poprawki?
Odpowiedzi:
Nie, nie powinni, jeśli można tego uniknąć. Jest to problem, który z mojego doświadczenia zdarza się zbyt często. Uważam jednak, że bardziej dotyczy to niewiedzy o tym, jak prawidłowo używać git, niż kogoś, kto chce ukraść kredyt.
git rebase master
. Jeśli występują konflikty, mogą albo samodzielnie rozwiązać konflikty (bez zmiany autora), albo dać ci szansę na ich naprawienie.Myślę, że Github mógłby i powinien szukać tego rodzaju przypadkowej kradzieży kredytów i w razie potrzeby edukować opiekunów najlepszych praktyk.
źródło
W tym miejscu pominięto niektóre kluczowe szczegóły.
Jeśli sposób, w jaki „naprawiłeś” błąd, nie spodobał się opiekunom, a nawet był niepoprawny, ponieważ wprowadził własne błędy, to opiekun mógł musieć edytować twoją pracę przed zatwierdzeniem. W takim przypadku zrozumiałe jest, aby zmienić autora.
Jak inni wspomniano, autor jest zupełnie inny od committer . Jak być może już wiesz, to autor jest tym, który faktycznie stworzył zatwierdzenie, podczas gdy osoba zatwierdzająca byłaby tą, która go zastosuje.
Powinieneś dokładnie przyjrzeć się zatwierdzeniu i zaktualizować swoje pytanie swoimi ustaleniami.
źródło
Wydaje się, że odpowiedzią było, że autor utrzymuje gałąź rozwoju i nie chce się z nią połączyć. Ponownie napisał moje zobowiązanie, aby uniknąć połączenia.
źródło
git cherry-pick
.Aby odpowiedzieć na zaktualizowane pytanie:
Trudno powiedzieć, co jest typowe dla github, poza stwierdzeniem, że zazwyczaj każdy projekt jest inny i każdy ma swój preferowany przepływ pracy. Zasadniczo najlepszym podejściem przed wysłaniem żądania ściągnięcia jest zapytanie o jego przepływ pracy lub sprawdzenie, czy można stwierdzić na podstawie wcześniejszych zamkniętych żądań ściągnięcia.
Moje osobiste doświadczenia były takie, że jeśli nie poprosisz, zazwyczaj zamkną one żądanie ściągnięcia bez komentarza (gorszy przypadek) lub najlepiej zostawią komentarz wyjaśniający, jaka jest procedura z prośbą o zaktualizowanie twojego żądania ściągnięcia. Powiem, że sposób, w jaki opiekun w twoim przypadku poradził sobie z tym, wydaje się dziwny, ale mogła to być dla nich ścieżka najmniejszego oporu. Wątpię jednak, by celowo miał na celu kradzież kredytu.
Sugeruję, abyś poprosił opiekuna o dodanie dokumentacji wyjaśniającej, w jaki sposób chcieliby otrzymywać żądania ściągania i przeciwko jakiej gałęzi, aby uniknąć zamieszania i braku uznania w przyszłości. Chciałbym, aby więcej projektów zawierało tę dokumentację, ponieważ uważam, że zwiększyłoby to skłonność ludzi do uczestnictwa w projekcie.
źródło