Próba pobrania plików z repozytorium Github: "odmowa scalania niepowiązanych historii"
Uczę się Gita i podążam za książką społeczności Gita.
Poprzednio (dawno temu) zrobiłem publiczne repozytorium na Githubie, z niektórymi plikami. Teraz skonfigurowałem lokalne repozytorium Gita na moim bieżącym komputerze i uruchomiłem kilka plików. Następnie dodałem remote wskazujący na moją stronę Github:
[root@osboxes c]# git remote add learnc https://github.com/michaelklachko/Learning-C
To wydawało się udane:
[root@osboxes c]# git remote show learnc
* remote learnc
Fetch URL: https://github.com/michaelklachko/Learning-C
Push URL: https://github.com/michaelklachko/Learning-C
HEAD branch: master
Remote branch:
master tracked
Local ref configured for 'git push':
master pushes to master (local out of date)
Teraz chcę pobrać pliki z mojego Github repo do mojego komputera. Zrobiłem to:
[root@osboxes c]# git fetch learnc
[root@osboxes c]# git merge learnc/master
warning: refname 'learnc/master' is ambiguous.
Already up-to-date.
Jednak nie widzę żadnych nowych pliki w moim lokalnym katalogu. Jak mogę je zdobyć?
Ja też próbowałem to zrobić:
[root@osboxes c]# git pull learnc master
From https://github.com/michaelklachko/Learning-C
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
BTW, lokalnie jestem na gałęzi master (nie ma innych gałęzi):
[root@osboxes c]# git status
On branch master
nothing to commit, working directory clean
5 answers
Try --allow-unrelated-histories
Jak max630 skomentował, lub jak wyjaśniono tutaj Git odmawia łączenia niepowiązanych historii
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
2017-05-23 11:47:28
git checkout master
git merge origin/master --allow-unrelated-histories
Rozwiąż konflikt, a następnie
git add -A .
git commit -m "Upload"
git push
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
2016-12-04 14:59:10
Chociaż jestem za odblokowaniem problemów z pracą ludzi, nie sądzę, aby "push --force" lub" --allow_unrelated_histories " były nauczane dla nowych użytkowników jako ogólne rozwiązania, ponieważ mogą one spowodować prawdziwe spustoszenie w repozytorium, gdy ktoś ich używa bez zrozumienia, dlaczego rzeczy nie działają w pierwszej kolejności.
Gdy masz taką sytuację, w której zaczynałeś od lokalnego repozytorium i chcesz zrobić zdalnego na Githubie, z którym możesz dzielić się swoją pracą, jest na co uważać za.
Podczas tworzenia nowego repozytorium online pojawia się opcja "Initialize this repozytorium with a README". Jeśli czytasz drobnym drukiem, napis " pomiń ten krok, jeśli importujesz istniejące repozytorium."
Być może zaznaczyłeś to pole. Lub podobnie, dokonałeś wpisu dodaj / commit online, zanim spróbowałeś pierwszego pchnięcia. Co się dzieje, to tworzysz unikalną historię zmian w każdym miejscu i nie można ich pogodzić bez specjalnego dodatku wymienionego w Nevermore ' s answer (bo git nie chce, żebyś tak działał). Możesz postępować zgodnie z niektórymi wskazówkami tutaj wymienionymi, lub po prostu po prostu nie zaznaczaj tej opcji następnym razem, gdy chcesz połączyć niektóre pliki lokalne z nowym pilotem; utrzymując pilota w czystości dla tego pierwszego push.
Odniesienie: moje pierwsze doświadczenie z git + hub polegało na napotkaniu tego samego problemu i nauczeniu się zrozumieć, co się stało i dlaczego.
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
2017-05-26 20:57:22
Jeśli nie ma znaczącej historii na jednym końcu (aka jeśli jest to tylko pojedynczy commit readme na końcu github), często łatwiej jest ręcznie skopiować readme do mojego lokalnego repo i zrobić git push -f
, aby moja wersja była nowym commitem głównym.
Uważam, że jest to nieco mniej skomplikowane, nie wymaga zapamiętywania niejasnej flagi i utrzymuje historię nieco czystszą.
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
2017-05-04 21:24:23
Na Twojej gałęzi-powiedz Mistrzu, ciągnij i Zezwalaj na niepowiązane historie
git pull origin master --allow-unrelated-histories
Zadziałało dla mnie.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-08-27 08:23:29