Предполагается, что вы находитесь на ветке master
, а кто-то еще отправил из a.java
файла *1003* изменения пакета в master
и теперь вы делаете git rebase
на master
ветке после фиксации ваши изменения, давайте уточним, что именно это означает:
В этой ситуации git сбрасывает HEAD
вашей ветви master
на одну из удаленной ветви origin/master
. А затем git берет каждый из ваших коммитов и переписывает их поверх нового мастера HEAD
.
На самом деле они ваши коммиты, которые переписываются, но с точки зрения git они являются изменениями them , потому что они принадлежат ветви git, перебирающейся поверх вашего текущая ветвь (которая на самом деле не является вашими изменениями, но теперь она наша ветвь, поэтому наши изменения ).
В этом контексте, когда git сообщает вам deletedbyus
, это означает, что в коммите git переписывает, файл существует снова , потому что он уже удален в нашей ветке (нами), но что я (git) должен сделать с изменениями в файле, который больше не существует? Кто-то удалил его намеренно, и я (git) не могу создать файл снова без подтверждения (и это правильно, действительно).
Итак, что вы должны сделать, чтобы исправить эту ситуацию? На самом деле вы должны включить ваши изменения ( их с точки зрения git во время перебазирования) в место, где сейчас существует файл (в новом пакете, при условии, что вы хотите сохранить пакет менять). Как только вы это сделали, вы должны сделать
# Manually carry the changes you made to
# file/on/old/package/a.java
# to file/moved/to/new/package/a.java
git add file/moved/to/new/package/a.java # To confirm your changes
git rm file/on/old/package/a.java # To confirm deletion
git rebase --continue # To continue with your rebase
Но какие изменения вы внесли в файл? Вы можете увидеть это с git diff HEAD:file/moved/to/new/package/a.java file/on/old/package/a.java