Я уже зафиксировал файл в Gerrit (выдвинул его), но, думаю, я, к сожалению, локально удалил ту ветку, из которой я зафиксировал. Как это исправить? Пожалуйста, помогите.
Я пытался
git branch --contains 31436fd7200566967f85bfb1ee5425f9b599b908
но это показывает
error: no such commit 31436fd7200566967f85bfb1ee5425f9b599b908
Редактировать: Да, я установил git локально и работал над веткой локально.
Я получил коммит с сайта Gerrit, я зафиксировал.
Хорошо, два дня назад сначала возникла проблема, когда я попытался зафиксировать изменение, скажем А. Я попытался отправить его, используя «./logerrit submit master», но все, что я получил, было:
Counting objects: 32, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (32/32), done.
Writing objects: 100% (32/32), 100.46 KiB | 0 bytes/s, done.
Total 32 (delta 22), reused 0 (delta 0)
remote: Resolving deltas: 100% (22/22)
remote: Counting objects: 79789, done
remote: Processing changes: refs: 1, done
To ssh://logerrit/core
! [remote rejected] HEAD -> refs/for/master (change
https://gerrit.libreoffice.org/54112 closed)
error: failed to push some refs to 'ssh://logerrit/core'
Итак, в нем говорится, что изменение идентификатора одинаково для двух коммитов - патча, который я фиксирую, и патча, который я уже зафиксировал несколько дней назад и теперь объединен. Я пытался сделать все возможное, что упомянуто о переполнении стека или любых других блогах - я пытался изменить идентификатор, чтобы при следующем «git commit --amend» git автоматически менял идентификатор, он был бесполезен, как и я Получив ту же ошибку, я также попытался исправить конфликты, удалив строки <<<<<<<<<<< =========== и >>>>>>>>>> > но правильно ли я с этим? Это правильный способ решить это? Затем я попытался "git rebase master", а затем я получил сообщение об ошибке:
First, rewinding head to replay your work on top of it...
Applying: smartart : test documents
Using index info to reconstruct a base tree...
M sd/qa/unit/import-tests-smartart.cxx
Falling back to patching base and 3-way merge...
Auto-merging sd/qa/unit/import-tests-smartart.cxx
CONFLICT (content): Merge conflict in sd/qa/unit/import-tests-
smartart.cxx
error: Failed to merge in the changes.
Patch failed at 0001 smartart : test documents
The copy of the patch that failed is found in: .git/rebase-
apply/patch
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
Я попытался изменить ветку, а затем снова попытался переназначить изменения с помощью мастера, так как они уже были обновлены, но это было бесполезно. Затем я удалил дополнительные ветки, созданные «локально», и по ошибке мог удалить одну из веток, из которых я зафиксировал Gerrit.
Теперь мой вопрос:
- Могу ли я снова восстановить удаленную ветку в моей локальной системе? Возможно ли это?
- Как решить проблемы слияния или ошибку, которую вы увидели после перебазировки. У меня есть сильное сомнение, я могу что-то не так делать Пожалуйста, помогите и, пожалуйста, дайте мне знать, если я ничего не освещал.
И первый, и второй вопросы относятся к разным файлам / ветвям, но могут быть связаны друг с другом.