Łączenie widełek w Githubie
Rozwidlałem repozytorium GitHub. Potem wcisnąłem kilka zmian do widelca. Następnie oryginalne repozytorium połączyło moje zmiany i kilka innych. Teraz chcę połączyć te zmiany, których mi brakuje. Próbowałem prostego pull, a następnie push, ale to daje moje commity w dwóch egzemplarzach. Jak najlepiej to zrobić?
2 answers
Prawdopodobnie masz "zdalne" dla każdego repozytorium. Musisz wyciągnąć z jednego pilota i popchnąć do drugiego.
Jeśli pierwotnie sklonowałeś z widelca, ten pilot będzie nazywany "origin". Jeśli jeszcze go nie dodałeś, musisz dodać repozytorium pierwszego faceta jako innego zdalnego:
git remote add firstguy git://github.com/firstguy/repo.git
Po tym wszystkim, powinieneś być w stanie
git pull firstguy master
git push origin
Pamiętaj, git pull
to nic innego jak makro, które wykonuje git fetch
i git merge
w tej kolejności. Musisz tylko Pobierz listę commitów z repozytorium pierwszego gościa, a następnie połącz jego gałąź z Twoim drzewem. Scalanie powinno działać poprawnie z commitami w obu gałęziach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-14 03:54:16
Więc zaakceptowana odpowiedź powyżej nie zadziałała dla mnie idealnie. Mianowicie, wydawało się, że stracił link do oryginalnego autora Githuba, gdy działał, a potem już nie działał. Myślę, że problem polegał na tym, że w odpowiedzi pominięto / pomiędzy nazwą zdalnego a gałęzią. Pobierze więc gałąź o nazwie master z pilota, ale wtedy nie będzie w stanie nic z nią zrobić. Nie wiem dlaczego.
Oto sposób github poleca z ich Strona .
Po sklonowaniu rozwidlonego repo, musisz dodać pilota wskazującego na oryginał, tak jak w poprzedniej odpowiedzi. Lubią to nazywać pod prąd, ale to nie ma znaczenia.
git remote add upstream git://github.com/octocat/Spoon-Knife.git
Potem pobierasz
git fetch upstream
I zobaczysz wersje dostępne do scalania
From git://github.com/octocat/Spoon-Knife.git
* [new branch] gh-pages -> upstream/gh-pages
* [new branch] master -> upstream/master
Następnie wystarczy wybrać gałąź, którą chcesz połączyć. Pamiętaj, że nie są to lokalne oddziały, są przechowywane pod pilotami. Ale pod warunkiem, że nie masz lokalnego oddziału o nazwie upstream / master (co jest dozwolone) powinno być dobrze łącząc się z linią poniżej:
git merge upstream/master
Alternatywnie możesz skrócić fetch/merge (przynajmniej po początkowym fetch) z tą linią:
git pull upstream/master
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-30 14:26:46