Я хочу получить изменения из ветки вышестоящего репо. Я установил исходное репо, используя:
git remote add upstream http://URL-of-master-repo.git
а затем я попытался вытащить изменения, используя
git checkout my-local-branch
git fetch upstream remote-branch
git merge upstream/remote-branch
но файлы по-прежнему не появляются на моем диске, но возникает конфликт:
Auto-merging minimal-build-config.cmake
CONFLICT (content): Merge conflict in minimal-build-config.cmake
Automatic merge failed; fix conflicts and then commit the result.
Как правильно разрешить конфликт, чтобы получить файлы из восходящей ветки?
@TimBiegeleisen Я разрешил конфликт и зафиксировал изменения, но все еще не получил нужные файлы, я переделал git merge upstream/remote-branch
, но получил только Already up-to-date
Изменения / контент, которые вы могли ожидать, иногда могут быть удалены во время слияния Git.
@TimBiegeleisen, это была пара новых файлов, добавленных в ветку восходящего потока ... я не вижу причин, по которым их следует удалять во время слияния
Хорошая практика - иметь такую структуру, которая выглядит так же, как и вы, но ее хорошо объяснить в целях пояснения:
origin https://github.com/your-username/forked-repository.git (fetch)
origin https://github.com/your-username/forked-repository.git (push)
upstream https://github.com/original-owner-username/original-repository.git (fetch)
upstream https://github.com/original-owner-username/original-repository.git (push)
Итак, origin
- это ваш форк, а upstream
- исходный репозиторий.
Затем используйте
git fetch upstream
И вы получите этот вывод
From https://github.com/original-owner-username/original-repository
* [new branch] master -> upstream/master
где у вас теперь есть ветка под названием upstream/master
, которая отслеживает исходное репо.
Затем перейдите в свою локальную ветвь вилки и слейте
git checkout master
git merge upstream/master
Если у вас есть конфликты (а кажется, что они есть), исправьте их и зафиксируйте изменения.
Я разрешил конфликт и зафиксировал изменения, но все еще не получил нужные файлы, я переделал git merge upstream/remote-branch
, но получил только Already up-to-date
сделайте git fetch
и git status
в ветке upstream/master
и посмотрите, что у вас получится.
Если вы получаете конфликт слияния, вам следует разрешить его и зафиксировать, прежде чем пытаться оценить, было ли это слияние успешным.