W zeszłym tygodniu utworzyłem repozytorium Github i zapomniałem wybrać licencję na repozytorium. Teraz są już 3 duże zatwierdzenia.
Zapytałem 3 współtwórców, czy wszystko jest w porządku, jeśli usunę repozytorium, a następnie utworzę je ponownie z tą samą nazwą i tym razem wybierając licencję podczas tworzenia repozytorium, i gdzie dobrze, co to.
Pytanie
Czy istnieje sposób, żebym mógł umieścić zatwierdzenia w nowym repozytorium (tym razem pierwszym zatwierdzeniem jest plik LICENCJA) i nadal zachować metadane dotyczące zmian?
Odpowiedzi:
Tak, dodając zdalne zatwierdzenie i wybierając najlepsze zmiany w pierwszej kolejności.
Pozostała część odpowiedzi dotyczy sytuacji, gdy nadal chcesz dodać LICENCJĘ do swojego poprzedniego repozytorium.
Tak. Możesz umieścić swoje zatwierdzenie LICENCJI jako pierwsze zatwierdzenie, zmieniając bazę.
Rebasing to gits sposób na przestawienie kolejności zatwierdzeń, przy jednoczesnym zachowaniu wszystkich autorów i dat zatwierdzeń w stanie nienaruszonym.
Podczas pracy nad udostępnionym repozytorium generalnie odradza się, chyba że cały zespół jest biegły git. W przypadku tych, które nie są, mogą po prostu sklonować nową kopię repozytorium.
Oto, jak uzyskać zatwierdzenie LICENCJI jako pierwsze zatwierdzenie.
1. Zaktualizuj i przebuduj swoją kopię lokalną
Sprawdź swój projekt i umieść plik LICENCJA w zatwierdzeniu NA GÓRZE aktualnego stosu 3 zatwierdzeń.
Następnie wykonaj interaktywną rebase na gałęzi głównej, aby ZMIENIĆ PRZEJŚCIA .
Otworzy się edytor. Przenieś dolną linię (twoje zatwierdzenie początkowe, ostatnie zatwierdzenie) na górę pliku. Następnie zapisz i zamknij edytor.
Jak tylko wyjdziesz z edytora, git zapisze zmiany w podanej właśnie kolejności.
Masz teraz zaktualizowaną lokalną kopię repozytorium. zrobić:
do weryfikacji.
2. Wymuś wypchnięcie nowego stanu repozytorium na github
Teraz, gdy twoja kopia jest zaktualizowana, musisz wymusić wypchnięcie jej na github.
To powie githubowi, aby przenieść gałąź główną do nowej lokalizacji. Powinieneś wymusić nacisk tylko w rzadkich przypadkach, takich jak ta, gdy wszyscy pracujący z nim są świadomi nadchodzącej zmiany, w przeciwnym razie zmyli to twoich współpracowników.
3. Zsynchronizuj współpracowników z github
Na koniec wszyscy współpracownicy będą musieli zsynchronizować się z tym repozytorium.
Najpierw muszą mieć czyste repozytoria, ponieważ następujące polecenie może być destrukcyjne, jeśli istnieją niezapisane zmiany.
Otóż to. Wszyscy powinni być teraz zsynchronizowani.
źródło
Miałem podobny problem, gdy zapomniałem rozwidlić repozytorium na moim githubie i dodałem kilka zatwierdzeń, zanim zdałem sobie sprawę z mojego błędu.
Znalazłem całkiem proste rozwiązanie.
Najpierw usuń pilota do oryginalnego repozytorium
git remote remove origin
Po drugie dodaj pilota do nowego widelca na moim githubie
git remote add origin <my repo URL>
Następnie pchnąłem do mistrza pochodzenia i wszystkie moje zmiany pojawiły się na moim githubie.
źródło
git push --set-upstream origin master
, ale Git uświadamia o tym.SourceGit = UrlS
Teraz miejsce docelowe będzie miało te same dane co źródło (możesz również użyć pochodzenia zamiast pochodzenia2)
źródło
Zastosowałem następujące podejście:
Sklonuj repozytorium źródłowe do folderu takiego jak / c / SrcRepo
Sklonuj repozytorium docelowe do folderu takiego jak / c / DstRepo i przejdź do gałęzi docelowej
W folderze głównym repozytorium docelowego uruchom polecenie:
git pull / c / SrcRepo srcBranch --allow-unrelated-histories
Nie ma potrzeby tworzenia dodatkowego zdalnego odniesienia
źródło