Подтвердить что ты не робот

Egit - Невозможно проверить сейчас - застрял в состоянии rebase

Я задал аналогичный вопрос несколько дней назад, но я не получил полезного ответа, поэтому хочу сделать все более точным.

У меня есть большой проект как частный репо на github. В настоящее время мой друг и я работаем над этим. Я импортировал весь репо в локальный репозиторий и в затмение, и все прошло хорошо, пока не возникли конфликты слияния. Каждый раз я получаю конфликт слияния (например, когда я забываю тянуть, прежде чем работать с часто используемыми классами), весь проект в моих рабочих пространствах eclipse переключается в состояние "Rebase w/merge":

Rebase w/merge state of project

Теперь я получаю знаки, возникшие конфликты слияния. Поэтому я открыл класс для объединения с инструментом слияния, отредактировал все, что мне нужно было изменить, и добавил класс для индексации снова.

Затем я совершил все слияния изменений и переместил все в верхний поток в master-ветку (мы пока используем только мастер, потому что у нас обоих нет большого опыта работы с git и vcs/svn).

Но теперь я не могу вернуться к мастер-ветке, ни отменить rebase, ни сделать что-нибудь еще.

Я пробовал:

Rightclick в папке проекта → Team → Switch To → master. Checkout fail

Это сообщение об ошибке.

Далее мне сказали отменить rebase в git Repositories View:

Git Repo View

Но ни у моего локального репо, ни у удаленного нет никакого варианта, связанного с перезагрузкой.

Затем я попробовал "checkout" в меню локальной ветки. Тот же результат. Я также пытался подтолкнуть свою локальную ветвь к восходящему потоку:

введите описание изображения здесь

Это мой пресет параметра слияния/переустановки, но обе эти опции приносят тот же результат:

введите описание изображения здесь

Я просмотрел свое репо в github - все мои изменения, в том числе разрешение слияния, уже вставляются в главную ветку и готовы к их извлечению. Мой товарищ по команде может вытащить их и продолжить работу над проектом. Но я не могу избежать этого состояния Rebase w/merge. Каждый раз, когда это состояние возникало, мне приходилось удалять все ресурсы проекта, удалять локальный репозиторий, повторно импортировать все в eclipse и, наконец, мне приходилось выполнять каждую дополнительную конфигурацию снова и снова.

Итак: Как я могу избежать этой перестановки? И btw: В чем разница между rebase и слиянием?

4b9b3361

Ответ 1

В представлении Git Staging есть возможность отменить rebase.

введите описание изображения здесь

Ответ 2

Использовать комманду 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 уровня назад к тому, что произошло в последнем объединении, вернется]

Ответ 3

Если у вас возникли проблемы с просмотром представления Git Staging, или в промежуточном представлении отображается неправильный репозиторий, просто нажмите треугольник рядом с значком переустановки на панели инструментов и нажмите "Отменить".

Нажмите здесь