проблемы с созданием пиара от разветвленного репо до основного репо - PullRequest
0 голосов
/ 27 ноября 2018

Я впервые участвую в проекте с открытым исходным кодом, и у меня возникла эта проблема с git.Первоначально я разветвлял репо, затем удалил его, а затем снова раздвоил.Я извлек ветку dev от моего разветвленного мастера и проделал некоторую работу, и теперь я хочу создать PR для основного репо.Но там написаны совершенно разные истории коммитов.

Я попробовал описанные ниже шаги, но не помог мне

git remote add upstream https://github.com/some_user/some_repo
git fetch upstream
git checkout master
git reset --hard upstream/master  
git push origin master --force

Любая помощь по этому вопросу будет оценена

git log -n10 upstream/master returns below snapshot

enter image description here

git log -n10 origin/dev returns below snapshot

enter image description here

git log -n10 origin/master returns below snapshot

enter image description here

1 Ответ

0 голосов
/ 27 ноября 2018

На основании второго скриншота, который вы опубликовали, кажется, что вы выполнили следующие шаги:

Когда вы переходите к форку или к исходному репозиторию GitHub, затем скачиваете zip-архив, вы вносите изменения,an, который сделал git init, и принудительно протолкнул это на ваш форк.

В основном произошло то, что в процессе этого вы копировали только файлы на свой форк, а не полную историю.

Поскольку теперь мы знаем, что произошло, мы можем приступить к устранению проблемы, и, поскольку исходный репозиторий не очень загружен трафиком, теперь его легче исправить.

Поскольку мы хотим сохранитьИсходные файлы, но слить историю обратно, нам нужно сделать следующие шаги:

  1. Сделать резервную копию исходного каталога (всегда полезно делать резервные копии в любое время)
  2. Создайте новый проект с исходными файлами и историей: git clone https://github.com/your_name/your_fork
  3. Скопируйте файлы обратно из резервной копии и переместите их в новый проект, исключив исключение .git directory.
  4. Запустить git status, здесь должны отображаться только файлы, которые вы изменили в зависимости от базового состояния 1
  5. Если все правильно, нам нужно "загрузить "файлы сейчас"
  6. Добавить измененные файлы в git: git add .
  7. Передать изменения: git commit -m "Adding my feature" (я предлагаю использовать more описательное сообщение коммита)
  8. Нажмите изменения на вашем форке: git push

Теперь перейдите в original GitHub репозиторий и попробуйте сделать там пиартеперь все должно быть в порядке.

1. Если в состоянии git не отображаются какие-либо файлы, это может быть связано с тем, что вы случайно скопировали каталог .git из резервной копии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...