Ответ 1
В представлении Git Staging
есть возможность отменить rebase.
Я задал аналогичный вопрос несколько дней назад, но я не получил полезного ответа, поэтому хочу сделать все более точным.
У меня есть большой проект как частный репо на github. В настоящее время мой друг и я работаем над этим. Я импортировал весь репо в локальный репозиторий и в затмение, и все прошло хорошо, пока не возникли конфликты слияния. Каждый раз я получаю конфликт слияния (например, когда я забываю тянуть, прежде чем работать с часто используемыми классами), весь проект в моих рабочих пространствах eclipse переключается в состояние "Rebase w/merge":
Теперь я получаю знаки, возникшие конфликты слияния. Поэтому я открыл класс для объединения с инструментом слияния, отредактировал все, что мне нужно было изменить, и добавил класс для индексации снова.
Затем я совершил все слияния изменений и переместил все в верхний поток в master-ветку (мы пока используем только мастер, потому что у нас обоих нет большого опыта работы с git и vcs/svn).
Но теперь я не могу вернуться к мастер-ветке, ни отменить rebase, ни сделать что-нибудь еще.
Я пробовал:
Rightclick в папке проекта → Team → Switch To → master.
Это сообщение об ошибке.
Далее мне сказали отменить rebase в git Repositories View:
Но ни у моего локального репо, ни у удаленного нет никакого варианта, связанного с перезагрузкой.
Затем я попробовал "checkout" в меню локальной ветки. Тот же результат. Я также пытался подтолкнуть свою локальную ветвь к восходящему потоку:
Это мой пресет параметра слияния/переустановки, но обе эти опции приносят тот же результат:
Я просмотрел свое репо в github - все мои изменения, в том числе разрешение слияния, уже вставляются в главную ветку и готовы к их извлечению. Мой товарищ по команде может вытащить их и продолжить работу над проектом. Но я не могу избежать этого состояния Rebase w/merge. Каждый раз, когда это состояние возникало, мне приходилось удалять все ресурсы проекта, удалять локальный репозиторий, повторно импортировать все в eclipse и, наконец, мне приходилось выполнять каждую дополнительную конфигурацию снова и снова.
Итак: Как я могу избежать этой перестановки? И btw: В чем разница между rebase и слиянием?
В представлении Git Staging
есть возможность отменить rebase.
Использовать комманду Merge upstream для локальной ветки.
Rebase означает изменение старого мастера на новый мастер-код (т.е. изменение базы вашего ветки), а слияние означает, что ваши изменения были изменены.
Вы также можете попробовать использовать командную строку git для разрешения такого конфликта.
Использование git Процесс перерасчета/слияния Во время работы над вашим браком все файлы добавляются и помещаются на сервер
git add .
git commit -m "SSSS"
git push -u origin <BranchName>
git checkout master
git pull
[A] Мастер старше кода означает, что вы можете объединить свой код
git merge <your branch name>
git push
[B] Мастер имеет более новый код и показывает, что список файлов выгружается с сервера
$ git checkout your_branch Note: make sure you are working in your branch
$ git rebase master
Теперь вы получите сообщение о конфликтах, поэтому начните работу над каждым файлом снизу, чтобы разрешить конфликт теперь добавьте этот файл
$ git add <filename which you just updated>
$ git rebase --continue
Следуйте выше двух команд, пока не будут разрешены все конфликты. Теперь измененные мастера объединяются в вашу ветку и помещаются на сервер < ВАШ ФИЛИАЛ Теперь вам нужно обновить главную ветвь
$ git checkout master
$ git merge <YOUR_BRANCH>
$ git push
Проверка ПРИМЕЧАНИЕ. При перезагрузке, если ваши текущие изменения перезаписаны, и вы не хотите продолжать, запустите -
$git rebase --abort
При выполнении слияния/переадресации, если в окнах сообщений написано оператор фиксации, нет ЭТАПЫ... напишите что-нибудь, а затем сделайте следующее -
$git reset --hard HEAD~1
[Эта команда будет reset текущая команда фиксации до 1 уровня назад к тому, что произошло в последнем объединении, вернется]
Если у вас возникли проблемы с просмотром представления Git Staging, или в промежуточном представлении отображается неправильный репозиторий, просто нажмите треугольник рядом с значком переустановки на панели инструментов и нажмите "Отменить".